Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
[ROZWIĄZANE] Operacja przy przeładowaniuPytanie
Temat rozp.
kfrds
, 30.11.2011 00:42
8 odpowiedzi w tym temacie
#1
Napisano 30.11.2011 00:42
Witam serdecznie. Mam krótkie pytanie.
Myślę, ściągam i sprawdzam różne pluginy i nie mogę dojść końca jak zrobić taką prostą funkcję, żeby przykładowo podczas przeładowania dowolnej broni przez gracza wykonana została jakaś komenda. Dla przykładu, podczas przeładowania wyświetlenie tekstu "Przeladowujesz", a po zakończeniu przeładowania "Przeladowanie ukonczone".
Poradziłby mi ktoś i ewentualnie podał jakiś taki przykład ?
Myślę, ściągam i sprawdzam różne pluginy i nie mogę dojść końca jak zrobić taką prostą funkcję, żeby przykładowo podczas przeładowania dowolnej broni przez gracza wykonana została jakaś komenda. Dla przykładu, podczas przeładowania wyświetlenie tekstu "Przeladowujesz", a po zakończeniu przeładowania "Przeladowanie ukonczone".
Poradziłby mi ktoś i ewentualnie podał jakiś taki przykład ?
#2
Napisano 01.12.2011 08:54
#include <amxmodx>
#include <engine>
#define START "...::: Przeladowujesz :::..."
#define STOP "...::: Przeladowanie ukonczone :::..."
new bool:przeladowanie[33] = false;
public plugin_init()
{
register_plugin("Przeladowywanie", "1.0", "lelek");
register_event("CurWeapon", "curweapon", "be");
}
public curweapon(id)
przeladowanie[id] = false;
public client_PreThink(id)
{
if(get_user_button(id) & IN_RELOAD && przeladowanie[id] == false)
{
start(id);
przeladowanie[id] = true;
}
return PLUGIN_CONTINUE;
}
public start(id)
{
new ammo, clip;
new weapon = get_user_weapon(id, clip, ammo);
if(ammo != 0)
{
switch(weapon)
{
case 1:
{
if(clip != 13)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 3:
{
if(clip != 10)
{
set_task(2.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 7:
{
if(clip != 30)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 8:
{
if(clip != 30)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 10:
{
if(clip != 30)
{
set_task(5.0,"NapisKoniec",id)
NapisPoczatek(id);
return PLUGIN_HANDLED
}
}
case 11:
{
if(clip != 20)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 12:
{
if(clip != 25)
{
set_task(4.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 13:
{
if(clip != 30)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 14:
{
if(clip != 35)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 15:
{
if(clip != 25)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 16:
{
if(clip != 12)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 17:
{
if(clip != 20)
{
set_task(2.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 18:
{
if(clip != 10)
{
set_task(2.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 19:
{
if(clip != 30)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 20:
{
if(clip != 100)
{
set_task(5.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 22:
{
if(clip != 30)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 23:
{
if(clip != 30)
{
set_task(2.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 24:
{
if(clip != 20)
{
set_task(4.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 26:
{
if(clip != 7)
{
set_task(2.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 27:
{
if(clip != 30)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 28:
{
if(clip != 30)
{
set_task(2.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
case 30:
{
if(clip != 50)
{
set_task(3.0,"NapisKoniec",id);
NapisPoczatek(id);
return PLUGIN_HANDLED;
}
}
}
}
przeladowanie[id] = false;
return PLUGIN_CONTINUE;
}
public NapisPoczatek(id)
client_print(id, print_chat, "%s", START);
public NapisKoniec(id)
{
przeladowanie[id] = false;
client_print(id, print_chat, "%s", STOP);
}
Użytkownik Lelek919 edytował ten post 01.12.2011 08:58
#3
Napisano 01.12.2011 14:57
Rozumiem, a co w tym zmienić żeby ten tekst nie pokazywał się jedynie temu graczowi który przeładowuje ale ogólnie wszystkim na czacie?
#4
Napisano 01.12.2011 16:10
ten kod wyżej jest tragiczny
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <fakemeta> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "DarkGL" const NOCLIP_WPN_BS = ((1<<2)|(1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4)) const SHOTGUNS_BS = ((1<<CSW_M3)|(1<<CSW_XM1014)) // weapons offsets const m_pPlayer = 41 const m_iId = 43 const m_fInReload = 54 const m_flNextAttack = 83 stock const Float:g_fDelay[CSW_P90+1] = { 0.00, 2.70, 0.00, 2.00, 0.00, 0.55, 0.00, 3.15, 3.30, 0.00, 4.50, 2.70, 3.50, 3.35, 2.45, 3.30, 2.70, 2.20, 2.50, 2.63, 4.70, 0.55, 3.05, 2.12, 3.50, 0.00, 2.20, 3.00, 2.45, 0.00, 3.40 } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) new szWeapon[17] for(new i = 1; i <= CSW_P90; i++) { if( get_weaponname(i, szWeapon, charsmax(szWeapon)) && RegisterHam(Ham_Item_Deploy,szWeapon,"weaponItemDeployPost",1) && !(NOCLIP_WPN_BS & (1<<i))) { if( !(SHOTGUNS_BS & (1<<i)) ) { RegisterHam(Ham_Weapon_Reload, szWeapon, "weaponReloadPost", 1) } } } } public weaponReloadPost(iEnt) { if( get_pdata_int(iEnt, m_fInReload, 4) ) { new id = get_pdata_cbase(iEnt, m_pPlayer, 4) new Float:fDelay = g_fDelay[get_pdata_int(iEnt, m_iId, 4)] remove_task(id); set_task(fDelay,"reloadEnd",id); } } public reloadEnd(id){ if(!is_user_alive(id)) return PLUGIN_CONTINUE; //reload skonczony return PLUGIN_CONTINUE; } public weaponItemDeployPost(iEnt){ remove_task(get_pdata_cbase(iEnt, m_pPlayer, 4)); }
#5
Napisano 05.12.2011 20:21
Wybaczcie że milczałem. DarkGL co to tego to mam krótkie pytanie:
Rozumiem, że w tej pętli przed set_taskiem mogę sobie dodać coś w stylu ShowSyncHudMsg i to będzie działało. Mam rację?
if( get_pdata_int(iEnt, m_fInReload, 4) ) { new id = get_pdata_cbase(iEnt, m_pPlayer, 4) new Float:fDelay = g_fDelay[get_pdata_int(iEnt, m_iId, 4)] remove_task(id); set_task(fDelay,"reloadEnd",id); }
Rozumiem, że w tej pętli przed set_taskiem mogę sobie dodać coś w stylu ShowSyncHudMsg i to będzie działało. Mam rację?
#6
Napisano 05.12.2011 23:57
Tam nie ma pętli.
#7
Napisano 06.12.2011 14:36
Oj Boże...
"Czy w tej instrukcji warunkowej przed komendą set_task wstawiając sobie np. ShowSyncHudMsg będzie wyświetlało komunikat gdy będzie przeładowanie?"
Liczyłem że się domyślisz o czym pisze. A więc będzie to działać czy nie będzie?
Nie mogę już edytować powyższego postu, ale zmiana planów.
Dałem sobie spokój z tym ShoSyncHudMsg, wziąłem kod lelka. Cóż nie działa jak należy bo komunikat pokazuje się gdy przeładowuję ręcznie broń ale można temat zamknąć.
"Czy w tej instrukcji warunkowej przed komendą set_task wstawiając sobie np. ShowSyncHudMsg będzie wyświetlało komunikat gdy będzie przeładowanie?"
Liczyłem że się domyślisz o czym pisze. A więc będzie to działać czy nie będzie?
Nie mogę już edytować powyższego postu, ale zmiana planów.
Dałem sobie spokój z tym ShoSyncHudMsg, wziąłem kod lelka. Cóż nie działa jak należy bo komunikat pokazuje się gdy przeładowuję ręcznie broń ale można temat zamknąć.
Użytkownik kfrds edytował ten post 06.12.2011 13:50
#8
Napisano 06.12.2011 15:13
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
#9
Napisano 06.12.2011 16:19
takw tej instrukcji warunkowej przed komendą set_task wstawiając sobie np. ShowSyncHudMsg będzie wyświetlało komunikat gdy będzie przeładowanie?
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych