Ta modyfikacja blokuje całkowicie użycie komend/klawiszy:
[Edytowane w silniku] C / useperk / radio3
[Edytowane dla każdej klasy osobno] E / +use
Edycja w silniku:
1.Otwieramy nasz silnik (QTM_CodMod.sma)
2. Szukamy
register_clcmd("useperk", "UzyjPerku"); register_clcmd("radio3", "UzyjPerku");
i zamieniamy na
register_clcmd("useperk", "cmdSprawdz"); register_clcmd("radio3", "cmdSprawdz");
3. Szukamy
public UzyjPerku(id) { if(!is_user_alive(id)) return PLUGIN_HANDLED; new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_used", FP_CELL); ExecuteForward(forward_handle, id, id); DestroyForward(forward_handle); return PLUGIN_HANDLED; }
usuwamy i w to miejsce wklejamy to:
public cmdSprawdz(id){ new Float:vfOrigin[3]; new name [32]; get_user_name(id, name, 31); pev(id, pev_origin, vfOrigin); if(czyDuzoMiejsca(vfOrigin, 135.0)) UzyjPerku(id); else client_print(id, print_chat, "Nie uzywamy tego w malych pomieszczeniach!"); } czyDuzoMiejsca(const Float:vfPunkt[3], Float:odleglosc){ new Float:vfStart[3], Float:vfEnd[3]; vfStart[0] = vfEnd[0] = vfPunkt[0]; vfStart[1] = vfEnd[1] = vfPunkt[1]; vfStart[2] = vfEnd[2] = vfPunkt[2]; //1 vfStart[0] += odleglosc; vfEnd[0] -= odleglosc; if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY && engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY) return 0; //2 vfStart[0] -= odleglosc; vfEnd[0] += odleglosc; vfStart[1] += odleglosc; vfEnd[1] -= odleglosc; if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY && engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY) return 0; return 1; } public UzyjPerku(id) { if(!is_user_alive(id)) return PLUGIN_HANDLED; new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_used", FP_CELL); ExecuteForward(forward_handle, id, id); DestroyForward(forward_handle); return PLUGIN_HANDLED; }
Edycja dla każdej klasy osobno
1. Otwieramy sma naszej klasy (dla przykładu saper)
2. Za #include <hamsandwich> dopisujemy:
#include <amxmisc> #include <fakemeta>
3. Zamieniamy (tylko nazwe) public cod_class_skill_used(id) na :
public stawianie(id)
4. Przed naszym aktualnym public ( public stawianie(id) ) dodajemy:
public cod_class_skill_used(id) { new Float:vfOrigin[3]; new name [32]; get_user_name(id, name, 31); pev(id, pev_origin, vfOrigin); if(czyDuzoMiejsca(vfOrigin, 135.0)) stawianie(id); else client_print(id, print_chat, "Nie uzywamy tego w malych pomieszczeniach!"); } czyDuzoMiejsca(const Float:vfPunkt[3], Float:odleglosc){ new Float:vfStart[3], Float:vfEnd[3]; vfStart[0] = vfEnd[0] = vfPunkt[0]; vfStart[1] = vfEnd[1] = vfPunkt[1]; vfStart[2] = vfEnd[2] = vfPunkt[2]; //1 vfStart[0] += odleglosc; vfEnd[0] -= odleglosc; if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY && engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY) return 0; //2 vfStart[0] -= odleglosc; vfEnd[0] += odleglosc; vfStart[1] += odleglosc; vfEnd[1] -= odleglosc; if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY && engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY) return 0; return 1; }
Gotowego sapera daje w załączniku
Zabraniam kopiowania poradnika na inne strony bez mojej wiedzy
Załączone pliki
Użytkownik MAthiasssMAt edytował ten post 29.01.2012 11:18