anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Fr 26 Apr, 2019 01:24

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Freibier
BeitragVerfasst: Sa 15 Nov, 2003 03:35 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1594
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
English translation available >here<.

Beschreibung:

Dieser Hack erlaubt es den Spielern eine "Runde zu schmeissen", also anderen Spielern Ale zu spendieren. Dabei gibt ein User die Menge an Ale an und bezahlt. Die nachfolgenden Spieler können sich dann kostenlos bedienen, bis der bezahlte Vorrat aufgebraucht ist.

Autor: anpera ( logd@anpera.de )

Version: 1.1

Für LoGD Version: 0.9.7+jt

Einbauanleitung:
Code:
-----
sql:
ALTER TABLE `accounts` ADD `gotfreeale` TINYINT(1) DEFAULT '0' NOT NULL ;


-----
Öffne:
configuration.php

-----
Finde:
   "gameadminemail"=>"Admin Email",

-----
Füge danach ein:
   "paidales"=>"Ale das als 'Runde' spendiert wurde (Wert-1),int",


-----
Öffne:
inn.php

-----
Finde:
$alecost = $session[user][level]*10;

-----
Ersetze es durch:
      if (getsetting("paidales",0)<=1 || $session[user][gotfreeale]==1) {
         $alecost = $session[user][level]*10;
      } else {
         $alecost = 0;
      }

-----
Finde:
addnav("Ale (`^$alecost`0 Gold)","inn.php?op=bartender&act=ale");

-----
Ersetze es durch:
            if (getsetting("paidales",0)<=1) {
               addnav("Ale (`^$alecost`0 Gold)","inn.php?op=bartender&act=ale");
               addnav("Runde schmeissen","inn.php?op=bartender&act=schmeiss");
            } else {
               $amt=getsetting("paidales",0)-1;
               addnav("Ale (`^".($session[user][gotfreeale]?"$alecost`0 Gold":"schon bezahlt`0").")","inn.php?op=bartender&act=ale");
               output("`nEs stehen noch $amt frisch gefüllte und schon bezahlte Krüge mit Ale vor Cedrik.");
               if ($session[user][gotfreeale]==1) output(" Leider hattest du dein Frei-Ale für heute schon und du wirst selbst bezahlen müssen.");            }

-----
Finde:
         }else if ($HTTP_GET_VARS[act]=="bribe"){

-----
Füge davor ein:
         }else if ($HTTP_GET_VARS[act]=="schmeiss"){
            output("Du bist guter Laune und überlegst dir, ob du für deine Kumpels hier in der Kneipe ne Runde Ale spendieren solltest.`n");
            output("`n1 Ale kostet dich `^$alecost`0 Gold.`n");
            output("<form action='inn.php?op=bartender&act=schmeiss2' method='POST'>Die nächsten <input name='runden' id='runden' width='4'> Ale gehen auf deine Rechnung.`n",true);
            output("<input type='submit' class='button' value='Ausgeben'></form>",true);
            output("<script language='javascript'>document.getElementById('runden').focus();</script>",true);
            addnav("","inn.php?op=bartender&act=schmeiss2");
         }else if ($HTTP_GET_VARS[act]=="schmeiss2"){
            $amt = abs((int)$_POST['runden']);
            $jamjam=$amt*$alecost;
            $schussel=$session[user][name];
            if ($session[user][gold]<$jamjam){
               output("Du stellst gerade noch rechtzeitig vor einer Blamage fest, dass du nicht genug Gold dabei hast.");
            } else if (getsetting("paidales",0)>1 || $alecost==0){
               output("Tja, der gute Wille war da, doch ein anderer war schneller als du! Enttäuscht bewegst du dich Richtung Freiale und schwörst dir, in Zukunft schneller zu sein.");
            }else{
               output("Du sprichst mit Barkeeper Cedrik und schiebst ihm `^$jamjam`0 Gold rüber. Dieser nickt mit dem Kopf und grölt in die Runde \"`%Die nächsten $amt Ale gehen auf $schussel !!`0\".");
               output("Ein allgemeiner Freudenschrei ist die Antwort und du bist der Held der Stunde.`n`n");
               if ($amt>3){
                  output("`^Du erhältst einen Charmpunkt!`0");
                  $session[user][charm]+=1;
               }
               savesetting("paidales",$amt+1);
               $session[user][gold]-=$jamjam;
               $sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'inn',".$session[user][acctid].",\"/me spendiert die nächsten $amt Ale!\")";
               db_query($sql) or die(db_error(LINK));
            }

-----
Finde:
$session[user][gold]-=$alecost;

-----
Füge danach ein:
                  if (getsetting("paidales",0)>1 && $session[user][gotfreeale]==0) {
                     savesetting("paidales",getsetting("paidales",0)-1);
                     $session[user][gotfreeale]=1;
                  }


-----
Öffne:
newday.php

-----
Finde:
      $session['user']['usedouthouse'] = 0;

-----
Füge danach ein:
      $session['user']['gotfreeale'] = 0;


-----
Öffne:
user.php

-----
Finde:
   "charm"=>"Charme,int",

-----
Füge danach ein:
   "gotfreeale"=>"Frei-Ale getrunken,bool",


-----
Alle Dateien speichern und schliessen

Bemerkung:
Die Änderungen in configuration.php dienen nur der Bequemlichkeit.
Der Wert 1 bedeutet, dass kein kostenloses Ale mehr vorrätig ist.

Dateien:
modifizierte configuration.php (Source)
modifizierte inn.php (Source)
modifizierte newday.php (Source)
modifizierte user.php (Source)

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Zuletzt geändert von anpera am Di 09 Dez, 2003 06:33, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 07 Dez, 2003 07:02 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1594
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
Schwachstelle beseitigt.
(Es war durch einen Trick möglich, ohne zu bezahlen beliebig viel Ale zu spendieren.)

Der Code oben wurde ergänzt.
Um den Fehler auszubessern, bitte folgendermaßen vorgehen:

Code:
-----
In der modifizierten inn.php:

-----
Finde:
output("Du stellst gerade noch rechtzeitig vor einer Blamage fest, dass du nicht genug Gold dabei hast.");

-----
Füge danach ein:
} else if (getsetting("paidales",0)>1 || $alecost==0){
   output("Tja, der gute Wille war da, doch ein anderer war schneller als du! Enttäuscht bewegst du dich Richtung Freiale und schwörst dir, in Zukunft schneller zu sein.");

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 09 Dez, 2003 05:43 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1594
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
Die Einbauanleitung wurde entsprechend den Voraussetzungen für den Einbau in die nächste offizielle LoGD Version geändert. Es kann nur noch 1 Freibier pro Tag getrunken werden, jedes weitere wird normal bezahlt.

Für alle, die das schon eingebaut haben hier die Änderungen:
Code:
-----
sql:
ALTER TABLE `accounts` ADD `gotfreeale` TINYINT(1) DEFAULT '0' NOT NULL ;


-----
Öffne:
newday.php

-----
Finde:
      $session['user']['usedouthouse'] = 0;

-----
Füge danach ein:
      $session['user']['gotfreeale'] = 0;


-----
Öffne:
inn.php

-----
Finde:
      if (getsetting("paidales",0)<=1) {
         $alecost = $session[user][level]*10;

-----
Ersetze es durch:
      if (getsetting("paidales",0)<=1 || $session[user][gotfreeale]==1) {
         $alecost = $session[user][level]*10;

-----
Finde:
               addnav("Ale (`^schon bezahlt`0)","inn.php?op=bartender&act=ale");
               output("`nEs stehen noch $amt frisch gefüllte und schon bezahlte Krüge mit Ale vor Cedrik.");
            }

-----
Ersetze es durch:
               addnav("Ale (`^".($session[user][gotfreeale]?"$alecost`0 Gold":"schon bezahlt`0").")","inn.php?op=bartender&act=ale");
               output("`nEs stehen noch $amt frisch gefüllte und schon bezahlte Krüge mit Ale vor Cedrik.");
               if ($session[user][gotfreeale]==1) output(" Leider hattest du dein Frei-Ale für heute schon und du wirst selbst bezahlen müssen.");

-----
Finde:
            }else if (getsetting("paidales",0)>1 && ($session[user][drunkenness]==33 || $session[user][drunkenness]==66)){
               output(", aber Cedrik fährt unbekümmert damit fort, das Glas weiter zu polieren, an dem er gerade arbeitet. \"`%Du hattest dein Ale. Lass noch was für andere übrig ".($session[user][sex]?"Mädl":"Bursche").".`0\" ");

-----
Lösche es

-----
Finde:
                  if (getsetting("paidales",0)>1) savesetting("paidales",getsetting("paidales",0)-1);

-----
Ersetze es durch:
                  if (getsetting("paidales",0)>1 && $session[user][gotfreeale]==0) {                     savesetting("paidales",getsetting("paidales",0)-1);
                     $session[user][gotfreeale]=1;
                  }


-----
Öffne:
user.php

-----
Finde:
   "charm"=>"Charme,int",

-----
Füge danach ein:
   "gotfreeale"=>"Frei-Ale getrunken,bool",


-----
Alle Dateien speichern und schliessen

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum