ähm..weiß jetzt nicht, ob das hier reinpasst. Aber ich habe manchmal einfach das Problem, dass er mir Globale Variablen nicht setzt.
Es geht um das Vote For It.
Das Grundprinzip:
In Hilfsfunktionen wird bei if(status==0) der Vote mit entsprechender Frage gestartet und ist der Vote abgeschlossen, wird die Hilfsfunktion mit status=1 erneut aufgerufen und der 'else' Teil bearbeitet.
Das Problem:
Bei einem vote zu ff, chasecam, awp und pistolsonly benutze ich entsprechend 4 globale Variablen, die mit 0 oder 1 sich merken, wie der Zustand gerade ist. Dementsprechend ist bei Aufrufen des Votes auch die Fragestellung.
Es funktioniert auch, ausser bei dem awp-vote. Er stellt mir die globale Variable 'noawpx' nicht auf 1, wenn ein Vote gegen das Benutzen der AWP erfolgreich war. Er führt aber den 'else' Teil korrekt aus und zeigt auch an, dass 'die Awp ab jetzt verboten ist'. Aber noawpx=1 wird nicht gesetzt....
Snip:
Code:
awp(status){
new Question[MAX_TEXT_LENGTH];
if(status==1){
if(pistolsonly==1){
displayconsole("","Macht keinen Sinn, da sowieso nur Pistolen erlaubt sind!","");
return PLUGIN_CONTINUE;
}
if(noawpx==0){
strcpy(Question,"AWP verbieten?^n",MAX_TEXT_LENGTH);
}else{
strcpy(Question,"AWP erlauben?^n",MAX_TEXT_LENGTH);
}
sound_all(VoteNow);
vote(Question,"JA","NEIN","NormVote","");
}else{
if(noawpx==0){
noawpx=1;
snprintf(Question,MAX_TEXT_LENGTH,"Der Vote hat ergeben,^ndass die AWP verboten ist!");
displayall(Question);
plugin_exec("admin_restrictweapon","4 6");
}else{
snprintf(Question,MAX_TEXT_LENGTH,"Der Vote hat ergeben,^ndass die AWP erlaubt ist!");
noawpx=0;
pistolsonly=0;
displayall(Question);
plugin_exec("admin_enableallweapons","");
}
}
return PLUGIN_CONTINUE;
}
Die displayall(...) Funktion sieht so aus:
Code:
displayall(Text[]){
centersay(Text,12,100,140,255);
say(Text);
return PLUGIN_CONTINUE;
}
Ich kann es nicht verstehen. Alle anderen Vote Funktionen sehen gleich aus und führen das Ändern der globalen Variable auf 1 durch.
1. Frage: kann es mit dem PLUGIN_CONTINUE zusammenhängen?
2. Frage: Das Plugin ist sehr lang und ich benutze auch #pragma dynamic 4096. Darf man nicht zuviele Hilfsfunktionen (Unterfunktionen) benutzen? 3. Frage: Sollte ich die (Unter-)Funktionen forwarden?
_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die
Such-Funktion