Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Tutorial

Blokada klasy na danej mapie

Tutorial

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
11 odpowiedzi w tym temacie

#1 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 17.07.2011 18:51

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)


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

case 6:
{
player_class[id] = Ninja
LoadXP(id, player_class[id])
}
Zamieniamy na

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

  • +
  • -
  • 3

#2 Death_Player

    Wszechpomocny

  • Użytkownik

Reputacja: 25
Życzliwy

  • Postów:325
  • Lokalizacja:Warszawa
Offline

Napisano 19.07.2011 07:51

Działa wam sposób na kilka przedrostków map ?
  • +
  • -
  • 0

#3 Siemir

    Profesjonalista

  • Użytkownik

Reputacja: 113
Zaawansowany

  • Postów:204
  • Steam:steam
  • Lokalizacja:nie znana
Offline

Napisano 19.07.2011 10:19

Zapewne nikomu ten kod nie działa, bo powinno być
if(jakamapa("cs_") && jakamapa("fy_"))
zamiast
if(jakamapa("cs_")||jakamapa("fy_"))

  • +
  • -
  • 1

#4 Stachuu :D ??

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 19.07.2011 11:10

@up podklejone
  • +
  • -
  • 0

#5 Death_Player

    Wszechpomocny

  • Użytkownik

Reputacja: 25
Życzliwy

  • Postów:325
  • Lokalizacja:Warszawa
Offline

Napisano 19.07.2011 18:01

Siemir możesz wyjaśnić nowicjuszowi w programowaniu dlaczego && a nie || ? Przecież && działa jako i, a || albo.
  • +
  • -
  • 0

#6 Stachuu :D ??

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 19.07.2011 18:58

moze jesli zwraca w 1 true a w 2 false to jako false all ?

i dlatego wykonuje akcje kto wie ^^
  • +
  • -
  • 0

#7 Siemir

    Profesjonalista

  • Użytkownik

Reputacja: 113
Zaawansowany

  • Postów:204
  • Steam:steam
  • Lokalizacja:nie znana
Offline

Napisano 19.07.2011 23:59

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.
  • +
  • -
  • 1

#8 Death_Player

    Wszechpomocny

  • Użytkownik

Reputacja: 25
Życzliwy

  • Postów:325
  • Lokalizacja:Warszawa
Offline

Napisano 20.07.2011 06:13

Dzięki :)
  • +
  • -
  • 0

#9 Divic

    Wszechpomocny

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 12.02.2012 15:25

no tak fajne a jak bym chcial zatrzymac klase na konkretnej mapie np de_dust2long ?
  • +
  • -
  • 0

#10 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 12.02.2012 16:24

to zmieniasz
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
  • +
  • -
  • 0

#11 Divic

    Wszechpomocny

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 13.02.2012 14:49

czyli nie da sie mamy zabroniona ninje na mapach awp aim fy i dodatkowo mapie dd2long?
  • +
  • -
  • 0

#12 Stachuu :D ??

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 13.02.2012 18:12

mala edycja stocka

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.
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: Tutorial

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych