Blokada klasy na danej mapie
Stachuu :D ??
17.07.2011
Witam .
Przedstawię wam jak zablokować dowolna klasę na mapie bez ingerenci w cvar "diablo_classes"
Na początek umieść w swoim kodzie .sma ( dowolne miejsce)
Teraz w Publicu od wyboru klasy jak mamy
Jeśli chcemy zablokować dana klasę
wystarczy zamienić
na
Użytkownik Stachu123 edytował ten post 19.07.2011 11:10
Przedstawię wam jak zablokować dowolna klasę na mapie bez ingerenci w cvar "diablo_classes"
Na początek umieść w swoim kodzie .sma ( dowolne miejsce)
stock bool:jakamapa(prze[])
{
new mapname[33]
get_mapname ( mapname,32 )
if(!equal(prze,mapname,3)){
return true;
}
return false;
}
Teraz w Publicu od wyboru klasy jak mamy
Zamieniamy na
case 6:
{
player_class[id] = Ninja
LoadXP(id, player_class[id])
}
case 6:
{
if(jakamapa("cs_")){ ////// zamiast "cs_" dajemy przedrostki map na ktorych ma nie dzialac klasa
player_class[id] = Ninja
LoadXP(id, player_class[id])
}
else ColorChat(id, GREEN, "Blokada klasy na tej^x03 mapie ^x01")
}
Jeśli chcemy zablokować dana klasę
wystarczy zamienić
if(jakamapa("cs_")){
na
if(jakamapa("cs_") && jakamapa("fy_")){ //// klasa będzie niedostępna na mapach typu "cs_" "fy_"
Użytkownik Stachu123 edytował ten post 19.07.2011 11:10
Siemir
19.07.2011
Zapewne nikomu ten kod nie działa, bo powinno być
if(jakamapa("cs_") && jakamapa("fy_"))zamiast
if(jakamapa("cs_")||jakamapa("fy_"))
Death_Player
19.07.2011
Siemir możesz wyjaśnić nowicjuszowi w programowaniu dlaczego && a nie || ? Przecież && działa jako i, a || albo.
Stachuu :D ??
19.07.2011
moze jesli zwraca w 1 true a w 2 false to jako false all ?
i dlatego wykonuje akcje kto wie
i dlatego wykonuje akcje kto wie

Siemir
19.07.2011
Bo właśnie "||" to jest albo czyli wystarczy jeden spełniony warunek. A podana funkcja zwraca false gdy przedrostek jest taki sam jak mapy, co dla więcej niż jednego przedrostka zawsze da jakieś true i właśnie dla tego trzeba sprawdzić wszystkie warunki a nie tylko jeden.
Divic
12.02.2012
no tak fajne a jak bym chcial zatrzymac klase na konkretnej mapie np de_dust2long ?
Nakupenda.
12.02.2012
to zmieniasz
na
oraz wszedzie podmieniasz na to:
BTW: ten sposob w moim poscie dziala tylko dla jednej mapy
if(!equal(prze,mapname,3))
na
if(!equal(prze,mapname,12)) // tyle znakow ile ma nazwa mapy
oraz wszedzie podmieniasz na to:
jakamapa("de_dust2long")
BTW: ten sposob w moim poscie dziala tylko dla jednej mapy
Divic
13.02.2012
czyli nie da sie mamy zabroniona ninje na mapach awp aim fy i dodatkowo mapie dd2long?
Stachuu :D ??
13.02.2012
mala edycja stocka
etc. wiem ze mozna byloby uzyc do czytania liczby znakow popzez size prze[], lecz nie mam teraz czasu zbytnio.
stock bool:jakamapa(prze[],ileznakow) { new mapname[33] get_mapname ( mapname,32 ) if(!equal(prze,mapname,ileznakow)){ return true; } return false; }uzycie
if(jakamapa("cs_",3) && jakamapa("fy_",3) && jakamapa("de_dust2long",12){ //// klasa będzie niedostępna na mapach typu "cs_" "fy_" "de_dust2long" // 12 to liczba znakow w nazwie mapy.
etc. wiem ze mozna byloby uzyc do czytania liczby znakow popzez size prze[], lecz nie mam teraz czasu zbytnio.