Blokada stawiania min itp w malych pomiesz...
MAthiasssMAt
22.01.2012
Zainspirowany http://amxx.pl/topic...miny-przejscia/ Tym tematem, przerobiłem go na nowego cod moda.
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
i zamieniamy na
3. Szukamy
usuwamy i w to miejsce wklejamy to:
Edycja dla każdej klasy osobno
1. Otwieramy sma naszej klasy (dla przykładu saper)
2. Za #include <hamsandwich> dopisujemy:
3. Zamieniamy (tylko nazwe) public cod_class_skill_used(id) na :
4. Przed naszym aktualnym public ( public stawianie(id) ) dodajemy:
Gotowego sapera daje w załączniku
Zabraniam kopiowania poradnika na inne strony bez mojej wiedzy
Użytkownik MAthiasssMAt edytował ten post 29.01.2012 11:18
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
M&M's
26.01.2012
To nie dziala do końca dobrze czyli można postawić miny jak jest skrzynia obok skrzyni
MAthiasssMAt
27.01.2012
Co do skrzyń to w rogach idzie, a konfigurować szczegółowo zasięg badanego terenu możemy dzięki:
if(czyDuzoMiejsca(vfOrigin, 135.0))
Ja osobiście mam ustawione na 150 i od tego czasu nie było żadnego bana za miny 1x1
------------------------------------------------------------------
DLA 2 PERKóW - Edycja w silniku:
1.Otwieramy nasz silnik (QTM_CodMod.sma)
2. Szukamy
i zamieniamy na
3. Szukamy
i zamineiamy na:
4. Szukamy
usuwamy i w to miejsce wklejamy to:
5. Szukamy
usuwamy i w to miejsce wklejamy to:
Użytkownik MAthiasssMAt edytował ten post 29.01.2012 11:25
if(czyDuzoMiejsca(vfOrigin, 135.0))
Ja osobiście mam ustawione na 150 i od tego czasu nie było żadnego bana za miny 1x1
------------------------------------------------------------------
DLA 2 PERKóW - 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
register_clcmd("useperk2", "UzyjPerku2"); register_clcmd("radio2", "UzyjPerku2");
i zamineiamy na:
register_clcmd("useperk2", "cmdSprawdz2"); register_clcmd("radio2", "cmdSprawdz2");
4. Szukamy
public UzyjPerku(id) return UzyjPerki(id, 0);
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) return UzyjPerki(id, 0);
5. Szukamy
public UzyjPerku2(id) return UzyjPerki(id, 1);
usuwamy i w to miejsce wklejamy to:
public cmdSprawdz2(id){ new Float:vfOrigin[3]; new name [32]; get_user_name(id, name, 31); pev(id, pev_origin, vfOrigin); if(czyDuzoMiejsca(vfOrigin, 135.0)) UzyjPerku2(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 UzyjPerku2(id) return UzyjPerki(id, 1);
Użytkownik MAthiasssMAt edytował ten post 29.01.2012 11:25
HaDeS From HELL
27.01.2012
Jak mam rozumieć to blokuję tylko miny, czy też rakietki i inne umiejętności perków typu apteczka itp ?
d0naciak
27.01.2012
jak dodasz w główne *.sma codmoda to wszystkich perków nie bedzie mozna uzyc w malych pomieszczeniach, jezeli w *.sma perku, to tylko dana klasa/perk nie mozna stawiac min w cisnych pomieszczeniach
MAthiasssMAt
27.01.2012
Dokładnie jak napisał Up.
Jednak lepiej dać w silnik cały, bo czasami na serwerach cod mod jest zakaz puszczania rakiet w przejściach (nie wiem poco).
Ale do perku można dać podobnie jak do klasy
Jednak lepiej dać w silnik cały, bo czasami na serwerach cod mod jest zakaz puszczania rakiet w przejściach (nie wiem poco).
Ale do perku można dać podobnie jak do klasy

d0naciak
28.01.2012
wg mnie juz lepiej dwa razy do klasy jak wszystkie perki blokowac
@Po co to ?
Jezeli wystarczy
zamienic na
@Po co to ?
register_clcmd("blabla321", "stawianie");
Jezeli wystarczy
client_cmd(id, "blabla321");
zamienic na
stawianie(id);
MAthiasssMAt
29.01.2012
W sumie masz racje. I nie będzie bynajmniej spamu w konsoli.
Zaraz edytuje
Zaraz edytuje

Kronzu
22.07.2012
Może mi ktoś poprawić .sma bo mi nie chodzą. Zrobiłem tak jak kazałeś i mam błędy czemu?
Załączone pliki
V!p3r
05.10.2012
Sorry za refresha, ale ten temat mnie zaciekawił.
Więc mam taką prośbę. Czy dałoby radę przerobić to na blokadę tylko min w przejściach?
Wszystko inne może być, ale żeby tylko miny były zablokowane.
Więc mam taką prośbę. Czy dałoby radę przerobić to na blokadę tylko min w przejściach?
Wszystko inne może być, ale żeby tylko miny były zablokowane.
SoPelQ
06.10.2012
Możesz jedynie edytować to w danej klasie, perku. Jednak dla samych min (wszędzie) tego nie wykonasz.