Użycie komendy raz na rundę oraz resetowan...
QuahodronN
10.07.2012
Witam, zachciało mi się stworzyć prostą ruletkę bez żadnych kosmicznych rzeczy 
ale mam problem ponieważ nie wiem jak zrobić aby można było użyć komendy /ruletka raz na rundę czyli że każdy gracz może losować tylko raz na rundę.
Chcę też dodać aby można było wylosować ciche chodzenie i wymaga to komendy
Wpadłem też na pomysł aby serwer co nową rundę wymuszał u graczy mp_footsteps 0 ale jakoś nie bardzo jest to optymalne
Tak jeszcze zapytam kiedy używa się:
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
////Edit
Czy odpowiednie umieszczenie tego w pluginie rozwiąże mój pierwszy problem?? (chodzi o losowaniu raz na rundę)
Użytkownik QuahodronN edytował ten post 10.07.2012 02:07

ale mam problem ponieważ nie wiem jak zrobić aby można było użyć komendy /ruletka raz na rundę czyli że każdy gracz może losować tylko raz na rundę.
Chcę też dodać aby można było wylosować ciche chodzenie i wymaga to komendy
set_user_footsteps ( id, 0)po tym zabiegu tupania danego gracza nie będzie słychać ale jak zrobić aby od nowej rundy już było słychać normalnie czyli w nowej rundzie automatycznie ustawiało by danemu graczowi
set_user_footsteps ( id, 1)
Wpadłem też na pomysł aby serwer co nową rundę wymuszał u graczy mp_footsteps 0 ale jakoś nie bardzo jest to optymalne

Tak jeszcze zapytam kiedy używa się:
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
////Edit
Czy odpowiednie umieszczenie tego w pluginie rozwiąże mój pierwszy problem?? (chodzi o losowaniu raz na rundę)
new bool:gbLotted[33]; public plugin_init { register_event("HLTV", "eventRoundInit", "a", "1=0", "2=0"); } public client_putinserver(id) { gbLotted[id]=false; } public eventRoundInit() { for(new i=1;i<33;i++) { gbLotted[i]=false; } } if(gbLotted[id]) { ColorChat(id, RED, "[%s] ^x04Juz raz losowales w tej rundzie!", tag); return PLUGIN_HANDLED; } gbLotted[id]=true
Użytkownik QuahodronN edytował ten post 10.07.2012 02:07
Droso
10.07.2012
Co do kodu tak
mam nadzieję, że ostatni if jest w funkcji i na końcu jest return PLUGIN_XXX
Co do "tupania" dodaj do pętli set_user_footsteps (i, 1) ruszcie głową ;D
Tak w ogóle dodaj warunek is_user_connected(index) do pętli.
http://amxx.pl/topic...ntinue-co-robi/ //HANDLED I CONTINUE
Użytkownik HubertTM edytował ten post 10.07.2012 07:00
mam nadzieję, że ostatni if jest w funkcji i na końcu jest return PLUGIN_XXX
Co do "tupania" dodaj do pętli set_user_footsteps (i, 1) ruszcie głową ;D
Tak w ogóle dodaj warunek is_user_connected(index) do pętli.
http://amxx.pl/topic...ntinue-co-robi/ //HANDLED I CONTINUE
Użytkownik HubertTM edytował ten post 10.07.2012 07:00
speedkill
10.07.2012
Ty też rusz głową, do pętli dodać warunek if(is_user_connected(i)), a potem dać graczom ciche chodzenie, ciekawe jaki błąd będzie w logach ?Co do kodu tak
mam nadzieję, że ostatni if jest w funkcji i na końcu jest return PLUGIN_XXX
Co do "tupania" dodaj do pętli set_user_footsteps (i, 1) ruszcie głową ;D
Tak w ogóle dodaj warunek is_user_connected(index) do pętli.
http://amxx.pl/topic...ntinue-co-robi/ //HANDLED I CONTINUE
Co do pluginu
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <fun> #include <hamsandwich> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "speedkill" new bool:g_Ruletka[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Spawn, "player", "player_spawn", 1) register_logevent("round_end", 2, "1=Round_End") } public client_authorized(id) g_Ruletka[id] = true public player_spawn(id) { if(is_user_alive(id)) { clear(id) // W tej funkcji zabiera się ciche chodzenie, itp. if(g_Ruletka[id]) { g_Ruletka[id] = false set_user_footsteps(id,1) //Tutaj zrób switch'a i dawaj odpowiednie rzeczey <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/wink.png' class='bbc_emoticon' alt=';)' /> } } } public round_end() { for(new id = 1; id <= 33; id++) { if(is_user_connected(id)) { g_Ruletka[id] = true } } } public clear(id) { set_user_footsteps(id,0) }
Będzie on dawał ciche chodzenie, raz na rundę

QuahodronN
10.07.2012
ok a tutaj mam wpisać tak?
Lecz nie wiem jak to zrobić z w/w rzeczą
Jeszcze tak myślałem że można by zrobić aby kasę brało za użycie komendy /ruletka a nie za wylosowanie czegoś, wtedy by zmniejszyło to trochę kod
no i oczywiście też dodać info o tym jak nie ma kasy bo to też jest w każdym z case.
Użytkownik QuahodronN edytował ten post 10.07.2012 17:39
register_clcmd("say /ruletka", "player_spawn");OK na razie cały kod wygląda tak no i błędów przy kompilacji nie ma.
Lecz nie wiem jak to zrobić z w/w rzeczą

Spoiler
Jeszcze tak myślałem że można by zrobić aby kasę brało za użycie komendy /ruletka a nie za wylosowanie czegoś, wtedy by zmniejszyło to trochę kod

Użytkownik QuahodronN edytował ten post 10.07.2012 17:39
speedkill
10.07.2012
Jak dałem Ci przykład, że co spawn uruchamia ruletke co do komend to troche pomieszałeś, ponieważ pierw napisałeś dobrze, a w plugnie dałeś źle byłby błąd ponieważ public ruletka(id) nie istniał. Usunąłem spawn gracza poprawiłem z kasą i nickiem gracza, co do footsteps pod koniec rundy musi być zerowane ( zabierane ) lub na początku nowej rundy, ponieważ gracz by miał całą mape ciche chodzenie.
#include <amxmodx> #include <fun> #include <colorchat> #include <cstrike> #include <hamsandwich> #define PLUGIN "Ruletka" #define VERSION "1.0" #define AUTHOR "QuahodroN" new const g_Lang[][] = { "say /ruletka","say_team /ruletka" } new tag[] = "Ruletka"; new bool:g_Ruletka[33] new bool:g_Chodzenie[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) for(new i;i<sizeof g_Lang;i++) register_clcmd(g_Lang[i], "ruletka") set_task(180.0, "info", _, _, _, "b") register_logevent("round_end", 2, "1=Round_End") register_logevent("round_start", 2, "1=Round_Start") } public client_authorized(id) { g_Chodzenie[id] = false g_Ruletka[id] = true } public ruletka(id) { if(is_user_alive(id)) { if(g_Ruletka[id]) { new kasa = cs_get_user_money(id) if(kasa < 2000) { ColorChat(id, RED, "[%s]^x04 Masz za malo kasy.",tag) return PLUGIN_HANDLED } cs_set_user_money(id,kasa - 2000) new name[64] get_user_name(id,name,charsmax(name)) g_Ruletka[id] = false switch(random_num(1, 6)) { case 1 : { ColorChat(0, RED, "[%s]^x01 Gracz^x04 %s^x01 wylosowal^x04 120 HP", tag, name) set_user_health(id, 120) } case 2 : { ColorChat(0, RED, "[%s]^x01 Gracz^x04 %s^x01 wylosowal^x04 1 HP", tag, name) set_user_health(id,1) } case 3: { if(get_user_team(id) == 1) { ColorChat(0, RED, "[%s]^x01 Gracz^x04 %s^x01 wylosowal^x04 M4A1", tag, name) give_item(id,"weapon_m4a1") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") } else if(get_user_team(id) == 2) { ColorChat(0, RED, "[%s]^x01 Gracz^x04 %s^x01 wylosowal^x04 pusty los", tag, name) } } case 4: { if(get_user_team(id) == 2) { ColorChat(0, RED, "[%s]^x01 Gracz^x04 %s^x01 wylosowal^x04 AK47", tag, name) give_item(id,"weapon_ak47") give_item(id, "ammo_762nato") give_item(id, "ammo_762nato") give_item(id, "ammo_762nato") give_item(id, "ammo_762nato") } else if(get_user_team(id) == 1) { ColorChat(0, RED, "[%s]^x01 Gracz^x04 %s^x01 wylosowal^x04 pusty los", tag, name); } } case 5: { ColorChat(0, RED, "[%s]^x01 Gracz^x04 %s^x01 wylosowal^x04 100 kamizelki", tag, name) cs_set_user_armor (id, 100, CS_ARMOR_VESTHELM) } case 6: { ColorChat(0, RED, "[%s]^x01 Gracz^x04 %s^x01 wylosowal^x04 ciche chodzenie", tag, name) set_user_footsteps(id,1) g_Chodzenie[id] = true } } } else { ColorChat(id, RED, "[%s]^x01 Ruletke mozna uzyc raz na runde.", tag) } } return PLUGIN_CONTINUE } public round_end() { for(new id = 1; id <= 33; id++) { if(is_user_connected(id)) { g_Ruletka[id] = true } } } public round_start() { for(new id = 1; id <= 33; id++) { if(is_user_alive(id) && g_Chodzenie[id]) { set_user_footsteps(id,0) g_Chodzenie[id] = false } } } public info() { ColorChat(0, RED, "[%s]^x01 Aby uzyc ruletki wpisz^x04 /ruletka", tag) }
QuahodronN
10.07.2012
Nie no ziomus działa 
Wielkie dzięki, + leci
A tak spytam co było źle że zmieniłeś wyświetlanie nicku?
Czy jakbym chciał dodać np grawitacje to mam zrobić na wzór g_Chodzenie tak?

Wielkie dzięki, + leci
A tak spytam co było źle że zmieniłeś wyświetlanie nicku?
Czy jakbym chciał dodać np grawitacje to mam zrobić na wzór g_Chodzenie tak?
speedkill
10.07.2012
Pobierałeś nick co każdy case, troche to nie optymalne wystarczy pobrać raz w tej funkcji. Co do grawitacji to tak na wzór g_Chodzenie[33]

speedkill
10.07.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Temat zamknięty na prośbę użytkownika.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Temat zamknięty na prośbę użytkownika.
Z pozdrowieniami,
Zespół AMXX.PL