←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Menu - is_user_alive (problem ?)

Zablokowany

  • +
  • -
Mr. Dziwny - zdjęcie Mr. Dziwny 14.10.2012

Witam,
otóż mam zrobione menu z dokumentacją

is_user_alive

lecz chciałbym zrobić tak, żeby 1 funkcja z tych wszystkich w menu była dostępna dla nieżywych jak to zrobić?
Za pomoc leci :plus:
Z góry Dziękuję.
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 14.10.2012

te, które chcesz, żeby były dla żywych to robisz tak:
if(is_user_alive(index)){
// tutaj dodajesz "wybory" dla gracza zywego
menu_additem...
menu_additem...

}
//else   /* jesli chcesz zeby to bylo tylko dla niezywych to usun //      */
if(is_user_connected(index)){
// tutaj dodajesz "wybory" dla gracza niezywego
menu_additem...
menu_additem...

}

Użytkownik HubertTM edytował ten post 14.10.2012 07:44
Odpowiedz

  • +
  • -
Mr. Dziwny - zdjęcie Mr. Dziwny 14.10.2012

a jak mam np.:
public Sklep_Handler(id, menu, item)
{

if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;

new zdrowie = get_user_health(id);
new kasa = cs_get_user_money(id);
new maxzdrowie = cod_get_user_health(id)+100

if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

switch(item)
{
case 0:
{
if(kasa >= 1500)
{
new nowe_zdrowie = (zdrowie+100);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-1500);
set_user_health(id, nowe_zdrowie);
client_print(id, print_chat, "[Deathrun] Uleczono Cie o 100 hp!");
}
if(nowe_zdrowie > maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-1500);
set_user_health(id, maxzdrowie);
client_print(id, print_chat, "[Deathrun] Jestes w pelni uleczony!");
}

}
else
client_print(id, print_chat, "[Deathrun] Masz za malo kasy!");
}
case 1:
{
if(kasa >= 3000)
{
new nowe_zdrowie = (zdrowie+250);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-3000);
set_user_health(id, nowe_zdrowie);
client_print(id, print_chat, "[Deathrun] Uleczono Cie o 250 hp!");
}
if(nowe_zdrowie >= maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-3000);
set_user_health(id, maxzdrowie);
client_print(id, print_chat, "[Deathrun] Jestes w pelni uleczony!");
}
}
else
client_print(id, print_chat, "[Deathrun] Masz za malo kasy!");
}
case 2:
{
if(kasa >= 6000)
{
new nowe_zdrowie = (zdrowie+500);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-6000);
set_user_health(id, nowe_zdrowie);
client_print(id, print_chat, "[Deathrun] Uleczono Cie o 500 hp!");
}
if(nowe_zdrowie >= maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-6000);
set_user_health(id, maxzdrowie);
client_print(id, print_chat, "[Deathrun] Jestes w pelni uleczony!");
}
}
else
client_print(id, print_chat, "[Deathrun] Masz za malo kasy!");
}
case 3:
{
if(kasa >= 3000)
{
cs_set_user_money(id, kasa-3000);
set_user_gravity(id, 0.4);
client_print(id, print_chat, "[Deathrun] Skaczesz wyzej!");
}
if(kasa < 3000)
client_print(id, print_chat, "[Deathrun] Masz za malo kasy!");
}

To jak to będzie np.: w case 2?
Odpowiedz

Gość_21977_* 14.10.2012

O ile dobrze widzę, to tutaj wystarczy samo is_user_alive na początku.
Odpowiedz

Gość_21977_* 14.10.2012

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XProblemy

do

Scripting AMXXProblemy
Odpowiedz

  • +
  • -
Mr. Dziwny - zdjęcie Mr. Dziwny 14.10.2012

O ile dobrze widzę, to tutaj wystarczy samo is_user_alive na początku.

Jest na początku :
if(!is_user_alive(id) || !is_user_connected(id)) return PLUGIN_CONTINUE;

ale nie wiem jak zrobić z środku np.: case 2 , bo próbowałem nad kasą , czy też w środku danej funkcji to nie działa :(
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 14.10.2012

ty chcesz zrobić, tak żeby jedna rzecz z menu była dla nieżywych tak?
To daj funkcje od tworzenia menu, i w handler zamień na taki.

public Sklep_Handler(id, menu, item)
{
// tylko jesli gracz nie jest polaczony, w tworzeniu menu doda sie czy jest zywy lub niezywy
if(!is_user_connected(id))
return PLUGIN_CONTINUE;

new zdrowie = get_user_health(id);
new kasa = cs_get_user_money(id);
new maxzdrowie = cod_get_user_health(id)+100

if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

switch(item)
{
case 0:
{
if(kasa >= 1500)
{
new nowe_zdrowie = (zdrowie+100);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-1500);
set_user_health(id, nowe_zdrowie);
client_print(id, print_chat, "[Deathrun] Uleczono Cie o 100 hp!");
}
if(nowe_zdrowie > maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-1500);
set_user_health(id, maxzdrowie);
client_print(id, print_chat, "[Deathrun] Jestes w pelni uleczony!");
}

}
else
client_print(id, print_chat, "[Deathrun] Masz za malo kasy!");
}
case 1:
{
if(kasa >= 3000)
{
new nowe_zdrowie = (zdrowie+250);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-3000);
set_user_health(id, nowe_zdrowie);
client_print(id, print_chat, "[Deathrun] Uleczono Cie o 250 hp!");
}
if(nowe_zdrowie >= maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-3000);
set_user_health(id, maxzdrowie);
client_print(id, print_chat, "[Deathrun] Jestes w pelni uleczony!");
}
}
else
client_print(id, print_chat, "[Deathrun] Masz za malo kasy!");
}
case 2:
{
if(kasa >= 6000)
{
new nowe_zdrowie = (zdrowie+500);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-6000);
set_user_health(id, nowe_zdrowie);
client_print(id, print_chat, "[Deathrun] Uleczono Cie o 500 hp!");
}
if(nowe_zdrowie >= maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-6000);
set_user_health(id, maxzdrowie);
client_print(id, print_chat, "[Deathrun] Jestes w pelni uleczony!");
}
}
else
client_print(id, print_chat, "[Deathrun] Masz za malo kasy!");
}
case 3:
{
if(kasa >= 3000)
{
cs_set_user_money(id, kasa-3000);
set_user_gravity(id, 0.4);
client_print(id, print_chat, "[Deathrun] Skaczesz wyzej!");
}
if(kasa < 3000)
client_print(id, print_chat, "[Deathrun] Masz za malo kasy!");
}
Odpowiedz

  • +
  • -
Mr. Dziwny - zdjęcie Mr. Dziwny 14.10.2012

Niby jest dobrze, aczkolwiek jak jest się nie żywym i wybierze opcje to jest wiadomość w hud [bo mam dodaną], że coś się dostało np.: w lotto .. i zabiera kase, a nic się nie dzieje, bo jak wiadomo dana osoba nie żyje.. Natomiast jeżeli był dodał alive, nie byłoby możliwy zakup respawnu .. :(
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 14.10.2012

dodaj funkcje z tworzeniem menu! tam gdzie jest menu_additem tam da sie opcje dla zywych i nie zywych
Odpowiedz

  • +
  • -
Mr. Dziwny - zdjęcie Mr. Dziwny 14.10.2012

aaa, ok - dzięki ; p :plus:
Odpowiedz

  • +
  • -
MarWit - zdjęcie MarWit 14.10.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany