anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Items-Krankheiten https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=3694 |
Seite 1 von 1 |
Autor: | Superman [ Fr 08 Jun, 2007 13:46 ] |
Betreff des Beitrags: | Items-Krankheiten |
Also ich hätte da mal zwei Fragen: 1.) Und zwar wollte ich gewisse Items einbauen, die Spieler im Wald finden können. Diese Items erlauben es dann zu anderen Orten zu gelangen. (bzw. neue addnavs werden frei...) Soweit so gut, aber... welche Befehle muss ich im Script jeweils verwenden, wenn der jeweilige Spieler nun auf den addnav klickt, dass das Item dann weg ist (nicht mehr im Inventar) 2.) Und zwar habe ich vor Krankheiten einzubauen, die nicht nur für 5 oder 20 Runden halten sollen, sondern für immer. Weiß jemand wie man das für immer einstellt?? Ich bitte euch um euere Hilfe und wäre euch sehr dankbar, wenn ihr mir helfen könntet. MfG |
Autor: | Bill Tür [ Mo 11 Jun, 2007 09:49 ] |
Betreff des Beitrags: | |
1. Der Addnav muss ja irgendwo hinführen, und genau in dem script würde ich die Löschung rein machen. DELETE FROM items WHERE class = 'blablubb' AND owner = '$session['user']['acctid']' oder so ähnlich (hatte noch keinen kaffee heute) 2. db-feld 'krankheit' in die accounts und in die newday if ($session['user']['krankheit']==1) blablubb ; |
Autor: | Eliwood [ Mo 11 Jun, 2007 16:17 ] |
Betreff des Beitrags: | |
@Bill Tür: Schon wieder ein neues Datenbankfeld? Wieso nicht user['prefs'] verwenden? Kann man ja dann selbstständig löschen beim Drachen... @Frage 1) Ein "DELETE FROM items WHERE class = 'blablubb' AND owner = '$session['user']['acctid']' " find ich nicht nett. Geht so sowieso nicht (wird n' Fehler werfen). Besser ist es, die ID zu löschen, falls man die hat, oder aber der Name in Verbindung mit der Account-ID mit Limit, damit man das Item mehrere male finden kann: $this->bbcode_second_pass_code('', 'DELETE FROM `items` WHERE `class` = ? AND `name` = ? AND owner = ? LIMIT 1') |
Autor: | Bill Tür [ Di 12 Jun, 2007 08:48 ] |
Betreff des Beitrags: | |
Eliwood hat geschrieben: @Bill Tür: Schon wieder ein neues Datenbankfeld? Wieso nicht user['prefs'] verwenden? Kann man ja dann selbstständig löschen beim Drachen... sry, ich geh da immer von mir aus, ich hab knapp 100 aktive User, von denen die Hälfte nimmer klickt sondern nur RP´d, da läuft der Server flüssig, egal wie ich meine DB vollpfropf *gg* Eliwood hat geschrieben: @Frage 1) Ein "DELETE FROM items WHERE class = 'blablubb' AND owner = '$session['user']['acctid']' " find ich nicht nett. Geht so sowieso nicht (wird n' Fehler werfen). Besser ist es, die ID zu löschen, falls man die hat, oder aber der Name in Verbindung mit der Account-ID mit Limit, damit man das Item mehrere male finden kann:
$this->bbcode_second_pass_code('', 'DELETE FROM `items` WHERE `class` = ? AND `name` = ? AND owner = ? LIMIT 1') Wie gesagt, ich hatte noch keinen Kaffee, da geb ich keine Garantien ![]() |
Autor: | Superman [ Sa 16 Jun, 2007 08:02 ] |
Betreff des Beitrags: | |
Erst Mal ein großes Dank schön für die Hilfe... Könntest du vielleicht das if ($session['user']['krankheit']==1){blabuub} etwas genauer ausführen?? (Weil ich das irgendwie nicht hinkriege...) Accounts: Krankheit, habe ich ausgeführt. Also in dem special hab ich benutzt: $session[user][krankheit]=1; In der newday: if ($session['user']['krankheit']==1){ "defmod"=>0.8,"atkmod"=>0.8,"minioncount"=>1,"mingoodguydamage"=>1,"maxgoodguydamage"=>$session['user']['level']/2, "roundmsg"=>"`#Deine Infektion schadet dir!`0","activate"=>"offense","activate"=>"defense");} Aber das kann ja nicht stimmen... Ich will mit Krankheit==1 folgendes erreichen: -Dauernde Krankheit (Jeden Ingametag...unendlich lange) -Verringerung der ATK und Vert. Wäre euch sehr dankbar wenn ihr mir das beantworten könntet. |
Autor: | Eliwood [ Sa 16 Jun, 2007 11:01 ] |
Betreff des Beitrags: | |
Superman hat geschrieben: Erst Mal ein großes Dank schön für die Hilfe...
Könntest du vielleicht das if ($session['user']['krankheit']==1){blabuub} etwas genauer ausführen?? (Weil ich das irgendwie nicht hinkriege...) Accounts: Krankheit, habe ich ausgeführt. Also in dem special hab ich benutzt: $session[user][krankheit]=1; In der newday: if ($session['user']['krankheit']==1){ "defmod"=>0.8,"atkmod"=>0.8,"minioncount"=>1,"mingoodguydamage"=>1,"maxgoodguydamage"=>$session['user']['level']/2, "roundmsg"=>"`#Deine Infektion schadet dir!`0","activate"=>"offense","activate"=>"defense");} Aber das kann ja nicht stimmen... Ich will mit Krankheit==1 folgendes erreichen: -Dauernde Krankheit (Jeden Ingametag...unendlich lange) -Verringerung der ATK und Vert. Wäre euch sehr dankbar wenn ihr mir das beantworten könntet. Unendlich lange geht nicht wirklich ohne weiteres. Es sei denn, du installierst dir das da: http://dragonprime.net/index.php?topic=2449.0 Dann gehts. " "rounds" =>-1 ", ansonsten halt " "rounds" => 9999" oder so. (Ohne die äusseren " (!)) Edit: Und ich seh da grad nochmal was... Was ist eigentlich los hier, wer ist der Urheber dieses Fehlers, der in letzter Zeit öfters mal auftaucht? Der Buff, den du willst, hört sich so an: [php]$session['bufflist']['krankheit'] = array( "defmod"=>0.8, "atkmod"=>0.8, "activate"=>"offense, defense", "rounds" => 9999 );[/php] Minioncounts brauchst du hier nicht, und goodguydamage funktioniert standardgemäss nicht wirklich.. ka warum nicht (Oder wars in Verbindung mit badguydmg? Ach egal). Um in Zukunft solche Fehler zu vermeiden, empfehl ich dir dringenst meinen Buffwizard! => http://anpera.homeip.net/forum/viewtopi ... ard&t=1821 |
Autor: | Superman [ So 24 Jun, 2007 15:46 ] |
Betreff des Beitrags: | |
Also ich habe jetzt mein Problem vorerst so gelöst: [php]if (db_num_rows(db_query("SELECT * FROM items WHERE owner=".$session[user][acctid]." AND class='Beute' AND name='Admin-Erlaubnis'"))){ db_query("DELETE FROM items WHERE owner=".$session[user][acctid]." AND class='Beute' AND name='Admin-Erlaubnis'"); }[/php] Jetzt ist es aber so, dass das Item "Admin-Erlaubnis" , wenn man sie benutzt hat, aus der gesamten Item Liste gelöscht wird und niemand anders es finden kann. Wo müsste denn Limit 1 oder so stehen??? |
Autor: | Superman [ So 24 Jun, 2007 15:46 ] |
Betreff des Beitrags: | |
Also ich habe jetzt mein Problem vorerst so gelöst: [php]if (db_num_rows(db_query("SELECT * FROM items WHERE owner=".$session[user][acctid]." AND class='Beute' AND name='Admin-Erlaubnis'"))){ db_query("DELETE FROM items WHERE owner=".$session[user][acctid]." AND class='Beute' AND name='Admin-Erlaubnis'"); }[/php] Jetzt ist es aber so, dass das Item "Admin-Erlaubnis" , wenn man sie benutzt hat, aus der gesamten Item Liste gelöscht wird und niemand anders es finden kann. Wo müsste denn Limit 1 oder so stehen??? 2.) Und noch mal zu den Kranheiten: Wenn ich das jhetzt so mache wie du das gesagt hast Elliwood...wie mache ich das denn, dass bei Aktionen dann nicht steht 9999 Runden übrig, sondern nur Infektion???? |
Autor: | Eliwood [ So 24 Jun, 2007 20:25 ] |
Betreff des Beitrags: | |
Superman hat geschrieben: Also ich habe jetzt mein Problem vorerst so gelöst: [php]if (db_num_rows(db_query("SELECT * FROM items WHERE owner=".$session[user][acctid]." AND class='Beute' AND name='Admin-Erlaubnis'"))){ db_query("DELETE FROM items WHERE owner=".$session[user][acctid]." AND class='Beute' AND name='Admin-Erlaubnis'"); }[/php] Jetzt ist es aber so, dass das Item "Admin-Erlaubnis" , wenn man sie benutzt hat, aus der gesamten Item Liste gelöscht wird und niemand anders es finden kann. Wo müsste denn Limit 1 oder so stehen??? Am Schluss, WHERE 1 LIMIT 1 Superman hat geschrieben: 2.) Und noch mal zu den Kranheiten:
Wenn ich das jhetzt so mache wie du das gesagt hast Elliwood...wie mache ich das denn, dass bei Aktionen dann nicht steht 9999 Runden übrig, sondern nur Infektion???? "rounds" => -1, |
Autor: | Superman [ So 01 Jul, 2007 16:16 ] |
Betreff des Beitrags: | |
Nochmals Danke für deine Hilfsbereitschaft... 1.) Aber das mit dem LIMIT 1 funktioniert net, dann kommt folgende Fehlermeldung: DELETE FROM items WHERE 1 LIMIT 1 owner=122 AND class='Beute' AND name='Admin-Erlaubnis' You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'owner=122 AND class='Beute' AND name='Admin-Erlaubnis'' at line 1 2.) Also ich habe dieses Unendlichdingsda installiert und es funktioniert auch gut.... Also das wenn man es einmal hat...dann hat mans, soviele Runden man nun mal hat. Aber an einem neuen Tag bzw. wenn man wiedererweckt wird, dann geht die Infektion auch weg... Und meine Absicht war es ja, dass Spieler die Infekjtion immer haben...(auch an jedem neuen Tag bzw. nach der Wiedererweckung) Hättest du dafür eine mögliche Lösung???? |
Autor: | Eliwood [ So 01 Jul, 2007 16:36 ] |
Betreff des Beitrags: | |
Superman hat geschrieben: Nochmals Danke für deine Hilfsbereitschaft...
1.) Aber das mit dem LIMIT 1 funktioniert net, dann kommt folgende Fehlermeldung: DELETE FROM items WHERE 1 LIMIT 1 owner=122 AND class='Beute' AND name='Admin-Erlaubnis' You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'owner=122 AND class='Beute' AND name='Admin-Erlaubnis'' at line 1 2.) Also ich habe dieses Unendlichdingsda installiert und es funktioniert auch gut.... Also das wenn man es einmal hat...dann hat mans, soviele Runden man nun mal hat. Aber an einem neuen Tag bzw. wenn man wiedererweckt wird, dann geht die Infektion auch weg... Und meine Absicht war es ja, dass Spieler die Infekjtion immer haben...(auch an jedem neuen Tag bzw. nach der Wiedererweckung) Hättest du dafür eine mögliche Lösung???? Oh mann -.- Die Eins nach der Where-Klausel war selbstredend Platzhalter für jegliche Selektierargumente. Sagte ich ja, dass das Limit [b]an den Schluss[/b gehört. Ich sehs bei dir nicht am Schluss! Das mit dem neuen Tag is'n Bug. Im Changelog müsste der Fix stehen. |
Autor: | Superman [ So 01 Jul, 2007 18:12 ] |
Betreff des Beitrags: | |
Oh....mann. Ich kapiere jetzt gar nichts mehr. Zu 1.) [php] if (db_num_rows(db_query("SELECT * FROM items WHERE owner=".$session[user][acctid]." AND class='Beute' AND name='Admin-Erlaubnis'"))){ db_query("DELETE FROM items WHERE owner=".$session[user][acctid]." AND class='Beute' AND name='Admin-Erlaubnis' LIMIT 1"); [/php] LIMIT 1 ist nun am Ende...und es klappt trotzdem nicht...Diese Erlaubnis wird von der Itemliste beim Item Editor immer noch komplett gelöscht und nicht, wie ich es haben wollte die User ID.... Zu 2.) Und was genau bedeutet das ... FIX... Hähhh ??? |
Autor: | Superman [ Sa 07 Jul, 2007 15:44 ] |
Betreff des Beitrags: | |
?...............................................? |
Autor: | Superman [ Mo 16 Jul, 2007 16:51 ] |
Betreff des Beitrags: | |
Bitte...Bitte...Bitte...Bitte...Bitte...Bitte...Bitte...Bitte...Bitte...Bitte...Bitte... helft mir.... Ich habe keine Ahnung wo der CHangelog usw. ist... |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |