anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 14 Jul, 2025 23:37

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Fehler bei allmightys Steinen
BeitragVerfasst: Mo 19 Sep, 2005 16:09 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 28 Aug, 2004 18:48
Beiträge: 1712
in letzter Zeit häuft es sich, dass die Steine doppelt drin sind.. er wird dem alten besitzer nicht gelöscht, so das der 2. Besitzer ihn zwar offiziell hat, aber nie abgenommen bekommt.. da ich nie etwas an der Datei geändert habe möchte ich euch bitten, da einmal rüberzuschauen, warum er den Stein nicht "abnimmt" laut hütte gehört er dann immer noch dem alten besitzer..


Zitat:
<?php
/*
/ pietre.php - Magic Stones V0.2.1
/ Originally by Excalibur (http://www.ogsi.it)
/ English cleanup by Talisman (dragonprime.cawsquad.net)
/ Original concept from Aris (http://www.ogsi.it)
/ May 2004
/ deutsch by theKlaus

----install-instructions--------------------------------------------------
DIFFICULTY SCALE: easy

Forest Event for LotGD 0.9.7
Drop into your "Specials" folder
--------------------------------------------------------------------------
SQL Modification
#
# Table structure `pietre`
#

CREATE TABLE `pietre` (
`pietra` int(4) unsigned NOT NULL default '0',
`owner` int(4) unsigned NOT NULL default '0'
) TYPE=MyISAM;

ALTER TABLE accounts ADD pietra int(4) unsigned NOT NULL default '0';
--------------------------------------------------------------------------
----- In File:
newday.php

----- Find:
$config = unserialize($session['user']['donationconfig']);

----- Add before:
//Modification for pietre.php
$flagstone=$session[user][pietra];
if ($flagstone != 0) {
if ($flagstone != 1) {
output("`n`n`@Da du den {$pietre[$flagstone]} `@besitzt, erhältst du einen zusätzlichen Waldkampf !`n");
$session[user][turns]+=1;
} else {
output("`n`n`\$Da du den {$pietre[$flagstone]} `\$besitzt, verlierst du einen Waldkampf !`n");
$session[user][turns]-=1;
}
}
//end pietre.php modification


----- In File:
common.php

----- Find:
$races=array(1=>"Troll",2=>"Elf",3=>"Human",4=>"Dwarf");

----- Add before:

$pietre=array(1=>"`\$Poker Stein",2=>"`^Liebes Stein",3=>"`^Freundschafts Stein",4=>"`#Königs Stein",5=>"`#AllMighthys Stein",6=>"`#Pegasus Stein",7=>"`@Aris Stein",8=>"`@Excaliburs Stein",9=>"`@Lukes Stein",10=>"`&Stein der Unschuld",11=>"`#Stein der Königin",12=>"`#Stein des Eroberers",13=>"`!Goldener Stein",14=>"`%Kraft Stein",15=>"`\$Ramius Stein",16=>"`#Cedriks Stein",17=>"`%Baldurs Stein",18=>"`&Stein der Reinheit",19=>"`&Stein des Lichts",20=>"`&Ladys Stein");

----- In File:
dragon.php

----- Find:
,"beta"=>1

----- Add After:
,"pietra"=>1

--------------------------------------------------------------------------

Drop the code of monpietre.php where you like ... You can put in in hof.php (the new version from 0.9.8)
or you use it "as is" giving a link from village.

Version History:
Ver. Alpha Created by Excalibur (http://www.ogsi.it)
Original Version posted to DragonPrime

// -Originally by: Excalibur
// -Contributors: Excalibur, Talisman
// May 2004
*/

page_header("Allmightys Quelle");
output("<font size='+1'>`c`b`!Allmightys Quelle`b`c`n</font>",true);
$session['user']['specialinc']="pietre.php";
$numpietre="20";
if ($session['user']['pietra']==0){
switch($HTTP_GET_VARS[op]){
case "":
page_header("Die Quelle");
output("`@Auf deinem Weg durch den Wald, auf der Suche nach Abenteuern, findest du eine klare Quelle, die einen übernatürlcihen Schein ausstrahlt. Du bist durch Zufall über `&AllMightys magische Quelle`@ gestolpert, `nbenannt nach der wandelnden Sage, die sie entdeckt hat.");
output("`n`nEs ist nur sehr wenig über sie bekannt. AllMighty hat ein paar ihrer Geheimnisse gelüftet, `nwelche in einem geheimen Buch aufgeschrieben hat. `nEr entdeckte unter anderem, dass die Steine, die man dort findet eine einzigartige Kraft entwickeln. Sie können `ndie Energie des Besitzers erhöhen und schenken ihm jeden Tag einen zusätzlichen Waldkampf.`n");
output("Die Anzahl der Steine ist begrenzt, und jeder Stein kann nur von einem Krieger zur gleichen Zeit besessen werden. `nMit etwas Glück kannst du einen dieser Steine besitzen.`n`n");
output("Du bemerkst einen Knopf, der in den Felsen nahe der Quelle eingelassen ist. Er ist mit magische Symbolen beschriftet. `n");
output("Du verstehst deren Sinn nicht - sind sie eine Einladung? Oder...vielleicht...eine Warnung?");
addnav("`\$Verlasse die Quelle","forest.php?op=lascia");
addnav("`^Drücke den Knopf","forest.php?op=premi");
break;
case "premi";
output("`@Deine Hand hält über dem Knopf kurz inne, als du die Stärke der magischen Kraft fühlen kannst, `ndie von AllMightys Quelle und seinen versteckten Schätzen ausgeht.`n");
output("Du beginnst darüber nachzudenken, ob die Legenden wahr sind, oder ob du einen tödlichen Fehler begehst.`nAls du dir Aura der Energie fühlst, die von dem Stein ausgeht, schliesst du die Augen und drückst auf den Knopf. `n");
output("Als der Knopf unter dem Druck nachgibt, hörst du mechanische Geräusche im Inneren des Felsen. `nAls du deine Augen wieder öffnest, siehst du was die Quelle dir offenbart. `nEin goldenes Glitzern im Wasser lässt dich glauben, dass der Erdgott dir einen Gefallen tun wird .... `n`n");
$session['user']['specialinc']="";
addnav("`@Zurück ins Dorf","village.php");
addnav("`\$Zurück in den Wald","forest.php");
$pietra=e_rand(1,$numpietre);
$sql="SELECT pietra,owner FROM pietre WHERE pietra = $pietra";
$result = db_query($sql) or die(db_error(LINK));
//$numpietre=db_num_rows($result);
if (db_num_rows($result) == 0) {
// The stone is available
output("`#... du hörst im Inneren des Felsen etwas rollen und einer der sagenhaften Steine erscheint in der Quelle!!
`n`nEr hat einige eingravierte Zeichen, ");
if ($pietra==1){
output("und du bemerkst mit Schrecken, dass dies der {$pietre[$pietra]} `#ist!!!`n Der Besitz dieses verfluchten Steins kostet dich jeden Tag einen Waldkampf. `nDeine einzige Hoffnung ist, dass ein anderer unglücklicher Krieger über `&Allmightys Quelle`# stolpert und den Stein von dir übernimmt. ");
$session['user']['turns']-=1;
$session['user']['pietra']=$pietra;
$id=$session[user][acctid];
$sql="INSERT INTO pietre (pietra,owner) VALUES ('$pietra','$id')";
db_query($sql);
}else{
output("und du bemerkst mit Freude, dass es der {$pietre[$pietra]}`# ist!! `nDer Besitz dieses Steines gibt dir jeden Tag eine extra Waldkampf. `nHeute ist ein glücklicher Tag, {$session[user][name]}!!!`n");
$session['user']['pietra']=$pietra;
$session['user']['turns']+=1;
$id=$session[user][acctid];
$sql="INSERT INTO pietre (pietra,owner) VALUES ('$pietra','$id')";
db_query($sql);
addnews("`6{$session[user][name]}`#hat den `5{$pietre[$pietra]}`# gefunden!!!");
}
}else{
$row = db_fetch_assoc($result);
output("`# du hörst ein pfeifendes Geräusch, das schnell an Intensität gewinnt, bis es in ein fürchterliches Jammern mündet, und plötzlich hört es auf, wie es begann. `nEine tiefe, angenehme Stimme spricht: `n`n\"");
$caso=e_rand(0,1);
$account=$row['owner'];
$sqlz="SELECT name FROM accounts WHERE acctid = $account";
$resultz = db_query($sqlz) or die(db_error(LINK));
$rowz = db_fetch_assoc($resultz);
if ($pietra==1) $switch=1;
if ($caso==0){
output("`%".($switch?"Du Glückspilz":"Du Pechvogel").", {$session[user][name]}`%. Der {$pietre[$pietra]}`% ist das Eigentum von `@{$rowz[name]}`%. `nEs liegt nicht in meinem Wesen, ihn ihm wegzunehmen. `nAls Ausgleich wirst du mit `^`b5`b`% zusätzlichen Waldkämpfen belohnt, die ich dir sofort zuteile.`#\" `n`nEin Strom von Energie durchfliesst deinen Körper, und du weisst, dass die Stimme ihr Versprechen gehalten hat!!! `n");
$session['user']['turns']+=5;
}else{
output("`^Der Stein, der für dich ausgewählt wurde, gehört `@{$rowz[name]}`^. Da er bei mir an Ansehen verloren hat, `nhabe ich beschlossen, dass er ihn nicht mehr verdient hat und überlasse den Stein deiner Obhut.`#\". `n`nDu siehst einen wundervollen Stein im Quellwasser erscheinen, `nund nimmst ihn an dich.");
if ($pietra != 1){
output("Du bewunderst den {$pietre[$pietra]}`#, in dem Wissen, dass du ab jetzt jeden Tag einen zusätzlichen Waldkampf erhältst. `n");
$session['user']['turns']+=1;
}else{
output("uDu bemerkst mit Schrecken, dass dies der {$pietre[$pietra]} `# ist!!!`n Der Besitz dieses verfluchten Steins kostet dich jeden Tag einen Waldkampf. `nDeine einzige Hoffnung ist, dass ein anderer unglücklicher Krieger über `&Allmightys Quelle`# stolpert und den Stein von dir übernimmt.");
$session['user']['turns']-=1;
}
$sqlp="UPDATE accounts SET pietra = '0' WHERE acctid = $account";
db_query($sqlp);
$session['user']['pietra']=$pietra;
$account1=$session[user][acctid];
$sqlr="UPDATE pietre SET owner = $account1 WHERE pietra = $pietra";
db_query($sqlr);
$mailmessage = "`@{$session['user']['name']} `@hat `&AllMightys Quelle`@ entdeckt und der Erdgott hat beschlossen, ihm deinen {$pietre[$pietra]} zu geben`@!! Es ist ein ".($switch?"":"un")."glücklicher Tag für dich.";
systemmail($account,"`2Deinen Stein besitzt jetzt {$session['user']['name']} `2",$mailmessage);
}
}
break;
case "lascia";
$session['user']['specialinc']="";
$perdita=intval($session[user][maxhitpoints]*0.3);
$session[user][hitpoints]-=$perdita;
if ($session[user][hitpoints] < 1) {
$perdita += $session[user][hitpoints];
$session[user][hitpoints] = 1;
}
output("`6Erschrocken durch die Macht der Quelle, beschließt du, dein Schicksal nicht herauszufordern. `nDu wendest dich ab in Richtung Wald und fühlst dich in einer trügerischen Sicherheit. Während du dich abwendest, hörst du ein blubberndes Geräusch `naus der Quelle. `n`n`^Ein Strahl Wasser trifft deinen Hinterkopf wie ein Hammerschlag `nund wirft dich zu Boden!`n`n `\$`bDu verlierst $perdita Lebenspunkte durch den Sturz!!!!`b");
addnav("`\$Zurück in den Wald","forest.php");
break;
}//chiusura switch
}else{ //chiusura if iniziale
$session['user']['specialinc']="";
output("`@Während du auf der Suche nach neuen Abenteuern durch den Wald streifst, findest du eine magische Quelle, von der`n ein mystisches Glühen ausgeht. Du bist durch Zufall über `&AllMightys magische Quelle`@ gestolpert, `nbenannt nach der wandelnden Sage, die sie entdeckt hat.");
output("`nAber diese Quelle ist dir nicht unbekannt und du weisst sehr wohl über ihre magischen Kräfte bescheid, `nda du ja schon den {$pietre[$session[user][pietra]]} besitzt. `n`nSei nicht gierig und lasse andere Krieger auch von den magischen Kräften profitieren. `nWährend deines Aufenthalts an der Quelle trinkst du von dem klaren Wasser und fühlst die erfrischende Wirkung.`n`n`%Du verlierst einen Waldkampf, aber wirst komplett geheilt.");
$session[user][turns]-=1;
if ($session[user][hitpoints]<$session[user][maxhitpoints]) $session[user][hitpoints]=$session[user][maxhitpoints];
addnav("`\$Zurück in den Wald","forest.php");
}
page_footer();
?>




ich weiss ja nicht, ob das Prob bei Euch vielleicht auch besteht.. gesehen habe ich es als ich nach Pietra>0 in accounts suchte.. denn in der Tabelle pietre an sich sind die Daten richtig.. er updatet die tabelle accounts einfach nicht richtig.. ich hab fast alle steine doppelt drin ,,,,



lg Rikka

_________________
~Inaktiv und Abwesend solange Mysql hier Moderatorenrechte hat~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 19 Sep, 2005 16:11 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
Transferbug... wenn ein spieler auf das special trifft und einen stein bekommt, während der besitzes dieses steines einen klick macht, haben beide den stein => erst in 1.0.3 gefixt

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 19 Sep, 2005 16:13 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 28 Aug, 2004 18:48
Beiträge: 1712
d.h. im Klartext für mich was?


lg

_________________
~Inaktiv und Abwesend solange Mysql hier Moderatorenrechte hat~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 19 Sep, 2005 16:32 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
dass du da gar nichts tun kannst...

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 19 Sep, 2005 16:32 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 28 Aug, 2004 18:48
Beiträge: 1712
mist.. danke dir dennoch ;)


lg

_________________
~Inaktiv und Abwesend solange Mysql hier Moderatorenrechte hat~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 19 Sep, 2005 17:26 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
Achtung, möglicher fix (für viele transferfehler)!

[php]
function checkdb($typus,$before,$after,$user){
/*
Hadriel
_____________________________________________
|$typus: was soll selected werden?
| $before: wert bevor dem 'update'
| $user=User-acctid
| $after: Wert der nach update sein sollte
*/
$res=db_query("SELECT ".$typus." FROM accounts WHERE acctid=".$user."");
$row=db_fetch_assoc($res);
if($row[$typus]==$before){
db_query("UPDATE accounts SET ".$typus." = ".$after." WHERE acctid=".$user."");
}
return true;
}
[/php]

beispiel bank.php

[php]
//suche:

$sql = "SELECT name,acctid,level,transferredtoday,lastip,emailaddress FROM accounts WHERE login='{$_POST['to']}'";
$result = db_query($sql);

//ersetze mit:

$sql = "SELECT name,acctid,level,transferredtoday,lastip,emailaddress,goldinbank FROM accounts WHERE login='{$_POST['to']}'";
$result = db_query($sql);


//Suche

$sql = "UPDATE accounts SET goldinbank=goldinbank+$amt,transferredtoday=transferredtoday+1 WHERE acctid='{$row['acctid']}'";
db_query($sql);

//Definiere DAVOR:

$goldinbank=$row[goldinbank];
$transfer=$row[transferedtoday];

//Füge nachher hinzu:
checkdb('goldinbank',$goldinbank,$goldinbank+$amt,$row['acctid']);
checkdb('transferedtoday',$transfer,$transfer+1,$row['acctid']);
[/php]

am schluss sollte es dann so aussehen:
[php]
$sql = "SELECT name,acctid,level,transferredtoday,lastip,emailaddress,goldinbank FROM accounts WHERE login='{$_POST['to']}'";
$result = db_query($sql);
[...]
$goldinbank=$row[goldinbank];
$transfer=$row[transferedtoday];
$sql = "UPDATE accounts SET goldinbank=goldinbank+$amt,transferredtoday=transferredtoday+1 WHERE acctid='{$row['acctid']}'";
db_query($sql);
checkdb('goldinbank',$goldinbank,$goldinbank+$amt,$row['acctid']);
checkdb('transferedtoday',$transfer,$transfer+1,$row['acctid']);
[/php]


ungetestet!

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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