anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 09 Jun, 2025 14:44

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Wahlen
BeitragVerfasst: Mo 02 Jul, 2007 15:02 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 19 Mai, 2005 12:49
Beiträge: 112
Ja wieder das newbi,

In Anlehnung vom Wahlzimmer und Palast hab ich mich an einem Wahlscript versucht. Sobald die Wahlen von den Admins freigegeben wurden, ist es den Usern möglich über die Bio stimmen zu verteilen und im Dorfamt ( oder sonstwo) einzusehen wer die meisten Stimmen hat.

Dem Admin ist es möglich den neuen Bürgermeister über das Script zu "krönen"

Am Ende der Wahl einfach die Funktion in den Spieleinstellungen auf null setzen und fertig.

Der Einbau ist relativ einfach, Ableitung liegt bei.
Und auch wenn sich die dies können, über das gebastel kaputtlachen werden, geht nicht zu hart mit mir ins Gericht;)

Danke an dieser stelle an DOM für seine Geduld und Horus seinen Zuspruch.


Dateianhänge:
Dateikommentar: Wahlen zum Bürgermeister
wahlen_1.0.zip [2.64 KIB]
493-mal heruntergeladen

_________________
....Kenny ist tot- es lebe Elvis
~~~~*~~~~
A:Weist du was auf einem reinen RPG Server echt von Vorteil sein kann?
M: Nein was?
A:..Wenn man lesen kann


Zuletzt geändert von newbi am Di 03 Jul, 2007 08:28, insgesamt 7-mal geändert.
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 02 Jul, 2007 21:30 
Offline
Held
Held
Benutzeravatar

Registriert: Mo 05 Mär, 2007 22:17
Beiträge: 270
Ein paar kleine Anmerkungen:

1) Keine Umlaute in die DB: Nenn das Feld 'bürgermeister' in der accounts in burgermeister oder buergermeister um. Umalute sind immer sehr mit Vorsicht zu genießen bzw. generell zu vermeiden.

2)Benutze die switch Kontrollstruktur und nicht die ganzen if Abfragen. Ist übersichtlicher und performanter (obwohl dies bei den meisten nicht ganz von Belang ist, da die Server meist recht klein sind). Die Übersichtlichkeit macht aber das Hauptargument für mich aus.

3)Da dieses Skript auch für ein 'leere' LoGD geschrieben wurde (gehe ich mal von aus), sollten die Links in der wahlen.php zur village.php führen oder dergleichen. Ansonsten melden direkt ganz viele Fehler, da sie die dorfamt.php nicht dabei haben ;)

4) Eine } ist bei der Anleitung für die bio.php zuviel, vor der Zeile 'if ($_GET['op']=="vote") { '

5) Du sollte es ändern, dass man sich nicht selber wählen kann (was eh nicht funktioniert wegen diesem accounts tabellen Bug) aber nicht, dass sich manche wundern... wurde die zahl der Stimmen auch in eine andere Tabelle auslagern (fände ich einfacher handzuhaben ^^)

6) Der Name wurde nicht angezeigt, als ich gewählt habe ( in der Ausgabe in der Bio)

7) Die Aktionenspalte in dem Wahlzimmer sollte wohl nur für die Superuser angezeigt werden, ist irgendwie unschön ^^


Mache erstmal Stopp hier ^^ Nicht böse sein oder dergleichen, dient nur der Verbesserung. Zudem sollte ich wohl nicht zu viel meckern, habe hier noch kein Skript gepostet *hüstel*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 02 Jul, 2007 22:06 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 19 Mai, 2005 12:49
Beiträge: 112
Hi naria

* gg das wars dann mit meinem urlaub^^*

ok Anleitung geändert, Spalten ausgetauscht und für "normale user" die Möglichkeit den Kandidaten in der aktionsspalte Mails zu schreiben.

und kannst du mir mal nen screenshot geben was passiert wenn du votest? weil bei mir wirds angezeigt

schaust du

HIER

und ich bin nicht böse, im Gegenteil, wie Du schon sagst dient es lediglich dazu meinen salat zu verbessern und da der Ton die Musik macht (sprich du nicht über mich hergefallen bist) hab ich kein Problem.

was die anderen Sachen angeht. ändere ich morgen im Laufe des tages ( außer Switch, weil keine Ahnung^^)

_________________
....Kenny ist tot- es lebe Elvis
~~~~*~~~~
A:Weist du was auf einem reinen RPG Server echt von Vorteil sein kann?
M: Nein was?
A:..Wenn man lesen kann


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 02 Jul, 2007 22:19 
Offline
Held
Held
Benutzeravatar

Registriert: Mo 05 Mär, 2007 22:17
Beiträge: 270
Für Switch schau mal da http://de2.php.net/manual/de/control-structures.switch.php ^^ ist nicht wirklich schwer. Ansonsten kann ich dir das auch eben umändern, beim sehen versteht man es meist.

Für die Sache mit der Anzeige, es sieht bei mir so aus:

Bild

Also fehlen da irgendwie die Namen, als ich für Test gewählt habe.

€dit: Ist mir erst beim zweiten Hinsehen aufgefallen: Da ist irgendwie eine Spalte zuviel/zuwenig im Wahlzimmer. Nach der Aktionenspalte ist ein graues 'Feld'. Bin mir aber nicht mehr sicher ob es ein Feld zu viel oder zu wenig ist (und zu faul in der wahlen.php nachzuschauen^^)

Und zum Urlaub: Hatte ich seit März nicht, obwohl ich eigentlich frei gehabt hätte (wegen Abitur)... zwei Server und nervige Co-Admins, Wächter, User verschlingen doch einiges an Zeit ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 02 Jul, 2007 23:02 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 19 Mai, 2005 12:49
Beiträge: 112
gg ja und getvote neben bürgermeister hab ich auch evrgessen gehabt, sonst zeigt er die stimmen nicht an.

Habe mir grad deine Bio in der Source angeschaut

bei dir ist:
[php]output("`tBiographie für {$row['name']}");
[/php]

während bei mir

[php]output("`^`nBiographie für $row[name]`n`n");
[/php]

ist

bei mir sind da weder {} noch '

versuch darum bitte mal:
[php]output("`^`c `n{$row['name']}`^s Stimmen`c`n `^Du hast { $row['name'] } `^Deine Stimme gegeben`n`n");
$session[user][gavevote]++;
output("`^Damit hat { $row['name']} `^insgesamt {$row['getvote']} Stimmen.");}

[/php]

weis ja nicht ob das nen unterschied macht

überflüssiges Ding in der Tabelle entfernt und nochmal hochgeladen^^

Zum Switch O_O

das sieht für mich irgendwie voll schwer aus^^

_________________
....Kenny ist tot- es lebe Elvis
~~~~*~~~~
A:Weist du was auf einem reinen RPG Server echt von Vorteil sein kann?
M: Nein was?
A:..Wenn man lesen kann


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 03 Jul, 2007 00:02 
Offline
Held
Held
Benutzeravatar

Registriert: Mo 05 Mär, 2007 22:17
Beiträge: 270
Wie aus dem Screenshot zu entnehmen ist ( wenn es nicht etwas klein geworden ist ^^) habe ich dein Skript in einem lokalen Testserver eingebaut, daher ist da nichts mit meiner Source nachschauen. Ich schaue mir das morgen mal genau an, vll finde ich den Fehler ja.

Die { } schließen nur eine Variable eindeutig ein, sollten also keinen wirklichen Unterschied machen.
Die ' ' dienen dazu bei einem assoziativen Array (Strings als Schlüssel [schlag mich bitte jemand, wenn ich da jetzt gerade was durcheinander werfe]) die Schlüssel eindeutig zu kennzeichnen, ansonsten sucht PHP zunächst nach Konstanten und noch ein paar andere Dinge, wenn ich das richtig in Erinnerung habe. Also eine mögliche Fehlerquelle (siehe auch Eliwoods Signatur ^^)

Hier mal die Datei mit Switch Kontrollstruktur. Das global $session muss nur in Funktionen rein und nicht in solch eine Struktur:

[php]<?

// Wahlen von Yorlii Che'el: http://www.child-of-mystik-moon.de/lotgd//
// Von Newbi, mit großem Danke an einen geduldigen DOM, der Newbifragen beantwortet hat//



require_once "common.php";
page_header("Wahlen");
switch ($_GET['op']){


case 'ende':
$sql= "UPDATE accounts SET buergermeister = 0 ";
db_query($sql);
output("Die Wahl ist beendet");
addnav(" Wahlergebnisse","wahlen.php");
break;

case 'nimm':
output("`#Du krönst den neuen Fürsten`n");
$sql = "UPDATE accounts SET buergermeister= 1 WHERE acctid='$id'";
db_query($sql);

$sql = "UPDATE accounts SET getvote= 0 WHERE getvote >= 0 ";
db_query($sql);
if ($session[user][superuser]>=2)addnav("Ende","wahlen.php?op=beenden");
break;

case 'beenden':
$sql = "UPDATE accounts SET getvote= 0 WHERE getvote >= 0 ";
db_query($sql);
$sql = "UPDATE accounts SET gavevote= '0' WHERE gavevote >= 0 ";
db_query($sql); output("Die Wahl ist beendet.");
$session[user][gavevote]==0;
if ($session[user][superuser]>=2) addnav("Dorf","village.php");
break;

default:
output("`cDas Wahlzimmer`c`n`n`n`bEin freundlich dreiblickender Elf reicht Dir ein Pergament mit den aktuellen Wahlergebnissen`n`n");
if ($session[user][superuser]>=2)addnav ("Wahlen beenden","wahlen.php?op=ende");
addnav("Gehen","village.php");


output("`c`7Kandidaten `n`n<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true);
output("<tr class='trhead'><td><b>Name</b></td><td><b>APs</b></td><td>Stimmen</td> <td>Aktionen</td>",true);


$sql="SELECT * FROM accounts WHERE getvote > 0 ORDER BY getvote DESC ";

$result=db_query($sql);
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);

output("<tr class='".($i%2?"trdark":"trlight")."'><td>",true);
output("$row[name]`n");
output("</td><td>",true);
output("$row[battlepoints]`n");
output("</td><td>",true);
output("$row[getvote]`n");
output("</td><td>",true);

if ($session[user][superuser]>=2) output("<a href='wahlen.php?op=nimm&id=$row[acctid]&login=$login'>`0[`^Krönen`0]</a>",true);
if ($session[user][superuser]<=0) output("<a href=\"mail.php?op=write&to=".rawurlencode($row['login'])."\" target=\"_blank\" onClick=\"".popup("mail.php?op=write&to=".rawurlencode($row['login'])."").";return false;\"><img src='images/newscroll.GIF' width='16' height='16' alt='Mail schreiben' border='0'></a>",true);
addnav("", "wahlen.php?op=nimm&id=$row[acctid]&login=$login");

}
output("</table>`c",true);
addnav("","bio.php?char=".rawurlencode($row['login'])."");

addnav("Dorf","village.php");

break;
}//switch op end

page_footer();
?>
[/php]

Schau es dir mal an und versuch es nachzuvollziehen... ansonsten stehe ich aller Voraussicht nach morgen (bzw. heute) über ICQ zur Verfügung dir das mal zu erklären. Ist nicht schwer, nur scheinbar verwirrender.

€dit: Das $i++ darf da nicht rein, ansonsten werden nicht alle accounts mit Stimme aufgelistet, sondern nur jeder zweite. Und das addnav davor konnte auch weg, hat scheinbar keinen nutzen, da es noch keinen op=ablehn gibt.[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 03 Jul, 2007 08:26 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 19 Mai, 2005 12:49
Beiträge: 112
Guten Morgen Naria

stimmt es ist um einiges übersichtlicher.
ja der zweite addnav ist mit reingerutscht, als ich nicht aufgepasst hab^^ Man sollte Abends keine Verbessserugnen mehr vornehmen.

hmm warum der dann $row name nicht anzeigt versteh ich nicht, auf nem lokalen Testserver von nem Freund gings auch ohne Probleme, aber ich schau auch noch mal nach.

Newbi

_________________
....Kenny ist tot- es lebe Elvis
~~~~*~~~~
A:Weist du was auf einem reinen RPG Server echt von Vorteil sein kann?
M: Nein was?
A:..Wenn man lesen kann


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 06 Jul, 2007 09:52 
Offline
Held
Held
Benutzeravatar

Registriert: Mo 05 Mär, 2007 22:17
Beiträge: 270
Ich habe mir das Skript nochmals angesehen und in der Bio vor

[php]if ($_GET['op']=="vote")
//bzw case 'vote': weiß nicht welches du nun benutzt[/php]

nochmals eine SQL reingeschrieben, die den Namen und die Stimmen aus der accounts ausliest, dann geht alles bei mir.

[php]$result = db_query("SELECT getvote,name FROM accounts WHERE login='$_GET[char]'");
$row = db_fetch_assoc($result);[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 28 Jul, 2007 08:59 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
kleiner schoenheitsfehler :

suche :

(wahl.php)

[php]addnav("","bio.php?char=".rawurlencode($row['login'])."");

addnav("Dorf","village.php");

break; [/php]

ersetzten durch :

[php]addnav("","bio.php?char=".rawurlencode($row['login'])."");

break; [/php]

Save && Up

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum