Problem z głosowaniem
Zablokowany
o2lsie 22.03.2013
Witam, zrobiłem głosowanie na moda na następną mapę, mój problem polega na tym, że gdy zaczyna się rozstrzygnięcie (vote1, vote2 lub vote3) to niezależnie od wybranych głosów wynik jest taki sam, w tym wypadku: glos1[0] == glos1[1] itd. i znowu zaczyna się rozstrzygnięcie. Główne głosowanie vote_mod działa jak należy. Nie mogę się dopatrzyć nigdzie błędu, dlatego prosiłbym o wskazanie co zrobiłem źle i jak to powinno wyglądać
Spoiler
#include <amxmod>
#include <amxmisc>
#include <file>
new glos[3];
new glos1[2];
new glos2[2];
new glos3[2];
public plugin_init() {
register_plugin("SH Addon 1","1.3","O2lsie");
register_concmd("amx_votemod", "vote_mod", ADMIN_RCON);
register_concmd("amx_votemod1", "vote1", ADMIN_RCON);
register_concmd("amx_votemod2", "vote2", ADMIN_RCON);
register_concmd("amx_votemod3", "vote3", ADMIN_RCON);
register_menucmd(register_menuid("vote"),(1<<0)|(1<<1)|(1<<2),"glosowanie");
register_menucmd(register_menuid("vote1"),(1<<0)|(1<<1),"glosowanie1");
register_menucmd(register_menuid("vote2"),(1<<0)|(1<<1),"glosowanie2");
register_menucmd(register_menuid("vote3"),(1<<0)|(1<<1),"glosowanie3");
set_task(30.0, "vote_mod");
return PLUGIN_CONTINUE;
}
public vote_mod()
{
show_menu(0,(1<<0)|(1<<1)|(1<<2), "\rJaki chcesz mod na nastepna mape:^n\y1: Zwykly SuperHero^n2: Death Match + Free For All^n3: Death Match + CS Flags", 10, "vote");
set_task(20.0,"endvote");
glos[0] = 0;
glos[1] = 0;
glos[2] = 0;
return PLUGIN_HANDLED;
}
public glosowanie(id,key)
{
++ glos[key];
return PLUGIN_HANDLED;
}
public endvote()
{
static configdir[64],plik[128];
get_configsdir(configdir,63);
if((glos[0] > glos[1]) && (glos[0] > glos[2])){
client_print(0,print_chat,"Nastepna mapa bedzie bez dodatkowych modow!" );
delete_file("/addons/amxmodx/configs/plugins-csdm.ini");
rmdir("/sprawdzacz");
}
else if((glos[1] > glos[0]) && (glos[1] > glos[2])){
client_print(0,print_chat,"Mod na nastepna mape to Death Match i Free For All!" );
delete_file("/addons/amxmodx/configs/plugins-csdm.ini");
new wpis[128], wpis2[128], wpis3[128], wpis4[128], wpis5[128];
format(wpis,127,"csdm_main.amxx");
format(wpis2,127,"csdm_misc.amxx");
format(wpis3,127,"csdm_spawn_preset.amxx");
format(wpis4,127,"csdm_ffa.amxx");
format(wpis5,127,"csdm_tickets.amxx");
formatex(plik,127,"%s/plugins-csdm.ini",configdir);
write_file(plik,wpis,-1);
write_file(plik,wpis2,-1);
write_file(plik,wpis3,-1);
write_file(plik,wpis4,-1);
write_file(plik,wpis5,-1);
mkdir("/sprawdzacz");
}
else if((glos[2] > glos[0]) && (glos[2] > glos[1])){
client_print(0,print_chat,"Mod na nastepnq mape to Death Match i CS Flags!" );
delete_file("/addons/amxmodx/configs/plugins-csdm.ini");
new wpis[128], wpis2[128], wpis3[128], wpis4[128];
format(wpis,127,"csdm_main.amxx");
format(wpis2,127,"csdm_misc.amxx");
format(wpis3,127,"csdm_spawn_preset.amxx");
format(wpis4,127,"csflags.amxx");
formatex(plik,127,"%s/plugins-csdm.ini",configdir);
write_file(plik,wpis,-1);
write_file(plik,wpis2,-1);
write_file(plik,wpis3,-1);
write_file(plik,wpis4,-1);
mkdir("/sprawdzacz");
}
else if((glos[0] == glos[1]) && (glos[2] < glos[0])){
client_print(0,print_chat,"Trzeba rozstrzygnac..." );
vote1();
}
else if((glos[0] == glos[2]) && (glos[1] < glos[0])){
client_print(0,print_chat,"Trzeba rozstrzygnac..." );
vote2();
}
else if((glos[2] == glos[1]) && (glos[0] < glos[2])){
client_print(0,print_chat,"Trzeba rozstrzygnac..." );
vote3();
}
else if((glos[0] == glos[1]) && (glos[1] == glos[2])){
client_print(0,print_chat,"Glosowanie nieudane, powtarzamy." );
vote_mod();
}
}
public vote1()
{
show_menu(0,(1<<0)|(1<<1), "\rJaki chcesz mod na nastepna mape:^n/y1: Zwyky SuperHero^n2: Death Match + Free For All", 10, "vote1");
set_task(12.0,"zrob1");
glos1[0] = 0;
glos1[1] = 0;
return PLUGIN_HANDLED;
}
public glosowanie1(id,key)
{
++ glos1[key];
return PLUGIN_HANDLED;
}
public zrob1(){
static configdir[64],plik[128];
get_configsdir(configdir,63);
if(glos1[0] > glos1[1]){
client_print(0,print_chat,"Nastepna mapa bez dodatkowych modow!" );
delete_file("/addons/amxmodx/configs/plugins-csdm.ini");
rmdir("/sprawdzacz");
}
else if(glos1[0] < glos1[1]){
client_print(0,print_chat,"Mod na nastepnq mape to Death Match i Free For All!" );
delete_file("/addons/amxmodx/configs/plugins-csdm.ini");
new wpis[128], wpis2[128], wpis3[128], wpis4[128], wpis5[128];
format(wpis,127,"csdm_main.amxx");
format(wpis2,127,"csdm_misc.amxx");
format(wpis3,127,"csdm_spawn_preset.amxx");
format(wpis4,127,"csdm_ffa.amxx");
format(wpis5,127,"csdm_tickets.amxx");
formatex(plik,127,"%s/plugins-csdm.ini",configdir);
write_file(plik,wpis,-1);
write_file(plik,wpis2,-1);
write_file(plik,wpis3,-1);
write_file(plik,wpis4,-1);
write_file(plik,wpis5,-1);
mkdir("/sprawdzacz");
}
else if(glos1[0] == glos1[1]){
client_print(0,print_chat,"Głosowanie nieudane, powtarzamy." );
vote1();
}
}
public vote2()
{
show_menu(0,(1<<0)|(1<<1), "\rJaki chcesz mod na nastepna mape:^n\y1: Czysty SuperHero^n2: Death Match + CS Flags", 10, "vote2");
set_task(12.0,"zrob2");
glos2[0] = 0;
glos2[1] = 0;
return PLUGIN_HANDLED;
}
public glosowanie2(id,key)
{
++ glos2[key];
return PLUGIN_HANDLED;
}
public zrob2(){
static configdir[64],plik[128];
get_configsdir(configdir,63);
if(glos2[0] > glos2[1]){
client_print(0,print_chat,"Nastepna mapa bez dodatkowych modow!" );
delete_file("/addons/amxmodx/configs/plugins-csdm.ini");
rmdir("/sprawdzacz");
}
else if(glos2[0] < glos2[1]){
client_print(0,print_chat,"Mod na nastepna mape to Death Match i CS Flags!" );
delete_file("/addons/amxmodx/configs/plugins-csdm.ini");
new wpis[128], wpis2[128], wpis3[128], wpis4[128];
format(wpis,127,"csdm_main.amxx");
format(wpis2,127,"csdm_misc.amxx");
format(wpis3,127,"csdm_spawn_preset.amxx");
format(wpis4,127,"csflags.amxx");
formatex(plik,127,"%s/plugins-csdm.ini",configdir);
write_file(plik,wpis,-1);
write_file(plik,wpis2,-1);
write_file(plik,wpis3,-1);
write_file(plik,wpis4,-1);
mkdir("/sprawdzacz");
}
else if(glos2[0] == glos2[1]){
client_print(0,print_chat,"Głosowanie nieudane, powtarzamy." );
vote2();
}
}
public vote3()
{
show_menu(0,(1<<0)|(1<<1), "\rJaki chcesz mod na nastepna mape:^n\y1: Death Match + Free For All^n2: Death Match + CS Flags", 10, "vote3");
set_task(12.0,"zrob3");
glos3[0] = 0;
glos3[1] = 0;
return PLUGIN_HANDLED;
}
public glosowanie3(id,key)
{
++ glos3[key];
return PLUGIN_HANDLED;
}
public zrob3(){
static configdir[64],plik[128];
get_configsdir(configdir,63);
if(glos3[0] > glos3[1]){
client_print(0,print_chat,"Mod na nastepna mape to Death Match i Free For All!" );
delete_file("/addons/amxmodx/configs/plugins-csdm.ini");
new wpis[128], wpis2[128], wpis3[128], wpis4[128], wpis5[128];
format(wpis,127,"csdm_main.amxx");
format(wpis2,127,"csdm_misc.amxx");
format(wpis3,127,"csdm_spawn_preset.amxx");
format(wpis4,127,"csdm_ffa.amxx");
format(wpis5,127,"csdm_tickets.amxx");
formatex(plik,127,"%s/plugins-csdm.ini",configdir);
write_file(plik,wpis,-1);
write_file(plik,wpis2,-1);
write_file(plik,wpis3,-1);
write_file(plik,wpis4,-1);
write_file(plik,wpis5,-1);
}
else if(glos3[0] < glos3[1]){
client_print(0,print_chat,"Mod na nastepna mape to Death Match i CS Flags!" );
delete_file("/addons/amxmodx/configs/plugins-csdm.ini");
new wpis[128], wpis2[128], wpis3[128], wpis4[128];
format(wpis,127,"csdm_main.amxx");
format(wpis2,127,"csdm_misc.amxx");
format(wpis3,127,"csdm_spawn_preset.amxx");
format(wpis4,127,"csflags.amxx");
formatex(plik,127,"%s/plugins-csdm.ini",configdir);
write_file(plik,wpis,-1);
write_file(plik,wpis2,-1);
write_file(plik,wpis3,-1);
write_file(plik,wpis4,-1);
mkdir("/sprawdzacz");
}
else if(glos3[0] == glos3[1]){
client_print(0,print_chat,"Głosowanie nieudane, powtarzamy." );
vote3();
}
}
dasiek 23.03.2013
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
Zablokowany