anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Waffenabnutzung https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=1763 |
Seite 1 von 1 |
Autor: | BlackWarrior [ Do 29 Sep, 2005 23:30 ] |
Betreff des Beitrags: | Waffenabnutzung |
Hallo, ich wollte mal fragen ob man nicht sowas einbauen kann das sich Waffen z.B. abnutzen. Wenn man z.B. 50 Monster im Wald erlegt hat das dann der Angriffswert um 1 sinkt. Wie könnte man denn sowas realisieren??? Wird das eigentlich mitgezählt irgendwo wieviele Monster man erledigt hat oder muss man das mit den turns machen??? edit: hab eben nochmal nachgeschaut, könnte man das vielleicht so hier machen in der newday.php ?? $this->bbcode_second_pass_code('', '<?php if ($u['gentimecount']>500){ $u['weapondmg']-1; } ?>') aber dann fehlt ja immer noch das andere dann wird es ja nur einmal weniger gemacht bei 500 *grummel* |
Autor: | Kevz [ Fr 30 Sep, 2005 05:30 ] |
Betreff des Beitrags: | |
Ja is realisierbar, Idee an sich is interessant, dadurch kann man wieder sachen & co einbauen ![]() |
Autor: | BlackWarrior [ Fr 30 Sep, 2005 10:58 ] |
Betreff des Beitrags: | |
$this->bbcode_second_pass_code('', '<?php /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | Waffenabnutzung | | | | also ich habe das so gemacht das man an jedem neuen Tag | | etwas abgezogen bekommt - unter einem Angriff von 10 wird | | nichts abgezogen. Und dann aufsteigend halt noch % | | | | ich wollte das ja so machen das es mit den Angriffen gemacht | | wird aber ich weiß nicht so recht wie ich das machen muss | | ich wollte ne Abfrage machen wegen 500 Angriffen und dann | | -1 Angriffswert machen, aber ich glaub da müsste man irgendwo| | noch eine Variable einsetzen oder so. | | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // in der newday.php müsste irgendwo noch rein dann // $u['wetzen'] = 0; if ($u['weapondmg']<10{ output("Du schnallst Deine Waffe auf den Rücken und gehst in den Wald."); }else{ if ($u['weapondmg']>=10 || $u['weapondmg']<=20{ $abnutz= $u['weapondmg']*0.02 ; $u['weapondmg']-= $abnutz; output("Da Du schon sehr viele Kämpfe mit Deiner Waffe bestritten hast und sie sich mit der Zeit abnutzt,'n verliert sie heute $abnutz Angriffspunkte.`n"); } }else{ if ($u['weapondmg']>=20 || $u['weapondmg']<=30{ $abnutz= $u['weapondmg']*0.03 ; $u['weapondmg']-= $abnutz; output("Da Du schon sehr viele Kämpfe mit Deiner Waffe bestritten hast und sie sich mit der Zeit abnutzt,'n verliert sie heute $abnutz Angriffspunkte.`n"); } }else{ if ($u['weapondmg']>=30 || $u['weapondmg']<=40{ $abnutz= $u['weapondmg']*0.04 ; $u['weapondmg']-= $abnutz; output("Da Du schon sehr viele Kämpfe mit Deiner Waffe bestritten hast und sie sich mit der Zeit abnutzt,'n verliert sie heute $abnutz Angriffspunkte.`n"); } }else{ if ($u['weapondmg']>=40 || $u['weapondmg']<=50{ $abnutz= $u['weapondmg']*0.05 ; $u['weapondmg']-= $abnutz; output("Da Du schon sehr viele Kämpfe mit Deiner Waffe bestritten hast und sie sich mit der Zeit abnutzt,'n verliert sie heute $abnutz Angriffspunkte.`n"); } }else{ if ($u['weapondmg']>50{ $abnuzt= $u['weapondmg']*0.06 ; $u['weapondmg']-=$abnutz; output("Da Du schon sehr viele Kämpfe mit Deiner Waffe bestritten hast und sie sich mit der Zeit abnutzt,'n verliert sie heute $abnutz Angriffspunkte.`n"); } } // dann würde ich aber das noch in den Waffenladen eintragen: addnav("Waffe schärfen - `^1000 Gold","weapons.php?op=scharf"); // und dann irgendwo an einer passenden stelle // es müsste dann halt irgendwie noch nen Datenbankeintrag gemacht werden aber ich weiß net wie // das geht *grummel* }else if ($HTTP_GET_VARS[op]=="scharf"){ if ($u['gold']<1000){ output ("Du hast nicht genug Gold dabei, denkst Du vielleicht ich mach das kostenlos für Dich??"); addnav ("Zurück zum Laden","weapons.php"); addnav ("Zurück ins Dorf","village.php"); } else { if($u['wetzen']>1){ output ("Der Schmied nimmt sich Deine Waffe zur Hand und schaut sie sich an.`n"); output ("Na die hat es aber wirklich nötig denkt er sich und beginnt mit der Arbeit.`n"); output ("Er versteht sein Handwerk und nach ein paar Minuten hast Du wieder eine scharfe Waffe.`n"); $u['weapondmg']+1; $u['wetzen']++; } else { if ($u['wetzen']>1){ output ("Der Schmied schaut sich Deine Waffe genauer an und muss feststellen das Du heute schon bei ihm warst.`n"); output ("Ich kann Dir heute leider nicht mehr weiterhelfen sagt er zu Dir und gibt Dir die Waffe zurück.`n"); } } } } ?>') ich hab zwar überlegt aber ich weiß nicht wie man das machen kann das man bei 500 treffern einen punkt abgezogen bekommt, irgendwo wird das ja sicher mitgezählt und da müsste es dann glaub ich noch einen zähler geben der immer nur bis 500 zählt und dann halt einen punkt beim angriff abzieht, der zähler müsste dann auf 0 gesetzt werden und immer so weiter, aber wie genau das funxt habe ich noch nicht hinbekommen. ist der code da oben wenigstens annähernd ein bissel richtig ??? greetz |
Autor: | anpera [ Fr 30 Sep, 2005 12:32 ] |
Betreff des Beitrags: | |
Was mir beim Überfliegen so aufgefallen ist:
Nein, die gebrauchten Schläge werden an keiner Stelle gezählt. Wenn du einen Zähler $zaehler laufen hast, und nur jedes 500stes Mal etwas passieren soll, lautet der Befehl if ($zaehler%500==0) ($zaehler%500 teilt $zaehler durch 500 und gibt den Rest zurück.) Wenn du einen Zähler $zaehler2 laufen hast, und bei 500 etwas passieren und der Zähler von vorn beginnen soll, lautet der Befehl: if ($zaehler2>=500){ $zaehler2=0; ... } |
Autor: | Kevz [ Fr 30 Sep, 2005 12:33 ] |
Betreff des Beitrags: | |
Frage am rande: Wo hast du bitte $u difiniert, ist nur mal so ne allgemeine frage auch wegen den neuanfängern gegenüber, musst es ja vorher irgendwo difinieren kannst es über $u = &$session['user']; machen. €dit: anp warst schnella ![]() |
Autor: | BlackWarrior [ Fr 30 Sep, 2005 14:20 ] |
Betreff des Beitrags: | |
$this->bbcode_second_pass_code('', 'if($u['wetzen']>1){ output ("Der Schmied nimmt sich Deine Waffe zur Hand und schaut sie sich an.`n"); output ("Na die hat es aber wirklich nötig denkt er sich und beginnt mit der Arbeit.`n"); output ("Er versteht sein Handwerk und nach ein paar Minuten hast Du wieder eine scharfe Waffe.`n"); $u['weapondmg']+1; $u['wetzen']++; ') also das das falsch ist weiß ich ja weil ich das > gemacht habe und nicht das < hab mich da vertippselt. weil ich ja den wert des wetzens am neuen tag auf 0 setze und dann wird er auf 1 erhöht und da dachte ich mir das das nicht mehr geht - hab ja auch vergessen das gold abgezogen wird in der zeile darunter. aber wegen dem $u da habe ich irgendwo mal nen post gemacht und da hatte ich immer $['user'] geschrieben und da wurde mir daraufhin gesagt das ich auch das $u machen kann, das ich das definieren muss wusste ich net ![]() ich hab auch nicht gewusst das das mit den gebrochenen zahlen net geht in der datenbank. ich bin ja selber noch am und habe eigentlich alles was ich so weiß hier aus dem forum und wollte mich halt einfach nur mal probieren mit der ganzen geschichte. es wäre mir schon lieber wenn das per zähler laufen würde, aber da muss ich mich mal genauer damit beschäftigen. es schwirren da ja noch mehr gedanken in meinem kopf rum aber die krieg ich erst recht nicht hin, denn ich wollte eigentlich den waffenhändler komplett wegmachen und dafür edelmetalle im wald finden lassen die man sich dann selber schmieden kann und schmiedekunst dabei erlernt, umso höher die schmiedekunst dann ist umso bessere waffen kann man halt selber herstellen, aber das ist ja noch schwerer ![]() aber danke für eure tips - ich versuche es mal weiter ![]() |
Autor: | Kevz [ Fr 30 Sep, 2005 14:27 ] |
Betreff des Beitrags: | |
Nya, dann musst dich bissel mehr mit Php befassen dann verstehst auch evtl. etwas mehr warum & wieso, wo was difiniert wurde, es macht auch sinn sich in anderen Foren um zuschauen ![]() |
Autor: | BlackWarrior [ Fr 30 Sep, 2005 17:04 ] |
Betreff des Beitrags: | |
hab da aber nochmal ne frage: wegen dem ['user']['attack'] <--- ist das nicht der wert der sich aus den angriffspunkten und der waffe ergibt?? und ich glaub es gibt waffen die einen höheren wert als 15 haben wenn man z.b. den olymp installiert hat, oder liege ich da mal wieder falsch??? oder habe ich das einfach nicht richtig verstanden?? |
Autor: | Eliwood [ Fr 30 Sep, 2005 17:09 ] |
Betreff des Beitrags: | |
BlackWarrior hat geschrieben: hab da aber nochmal ne frage:
wegen dem ['user']['attack'] <--- ist das nicht der wert der sich aus den angriffspunkten und der waffe ergibt?? Eben, darum musst du da auch einen Punkt abziehen. |
Autor: | Darkness [ Sa 01 Okt, 2005 15:28 ] |
Betreff des Beitrags: | |
BlackWarrior hat geschrieben: [code]<?php
if ($u['weapondmg']>=10 || $u['weapondmg']<=20{ ?>[/php] hier muss && stehen. Auch bei den anderen abfragen mit weapondmg. || bedeutet Oder, also daass nur eine bedigung erfüllt werden muss d.h. sämtliche Bedigungen sind IMMER erfüllt áuch wenn weapondmg z.b. 5 ist, ist die zweite Bedingung erfüllt, und bei z.b. 50 ist die erste Bedigung erfüllt. |
Autor: | Eliwood [ Sa 01 Okt, 2005 16:40 ] |
Betreff des Beitrags: | |
Darkness hat geschrieben: BlackWarrior hat geschrieben: [code]<?php if ($u['weapondmg']>=10 || $u['weapondmg']<=20{ ?>[/php] hier muss && stehen. Auch bei den anderen abfragen mit weapondmg. || bedeutet Oder, also daass nur eine bedigung erfüllt werden muss d.h. sämtliche Bedigungen sind IMMER erfüllt áuch wenn weapondmg z.b. 5 ist, ist die zweite Bedingung erfüllt, und bei z.b. 50 ist die erste Bedigung erfüllt. Dann gäbe es noch xor: Wenn a oder b erfüllt sind, aber nicht beide ![]() |
Autor: | teruk [ Sa 01 Okt, 2005 17:34 ] |
Betreff des Beitrags: | |
ich hatte mich auch mit dem thema waffenabnutzung beschäftigt, aber nicht die variante das an jedem tag etwas abgezogen wird, sondern das es dynamisch ist, also auch während des kampfes [php]/* SQL ALTER TABLE `accounts` ADD `weaponhealth` SMALLINT( 5 ) UNSIGNED DEFAULT '10000' NOT NULL AFTER `weaponvalue` ; */ // öffne battle.php // suche: $atk = $session[user][attack]*$atkmod; // ersetze durch: $zustand = 1; if ($session['user']['weapon']!="Fists") $zustand = $session['user']['weaponhealth']/10000; $zustand = ($session['user']['attack']-$session['user']['weapondmg']) + round($session['user']['weapondmg']*$zustand); $atk = $zustand*$atkmod; // suche: if ($atk > $session[user][attack]) { if ($atk > $session[user][attack]*3) { if $atk>$session[user][attack]*4){ output("`&`bDu holst zu einem <font size='+1'>MEGA</font> Powerschlag aus!!!`b`n",true); }else{ output("`&`bDu holst zu einem DOPPELTEN Powerschlag aus!!!`b`n"); } }else{ if ($atk>$session[user][attack]*2){ output("`&`bDu holst zu einem Powerschlag aus!!!`b`0`n"); }elseif ($atk>$session['user']['attack']*1.25){ output("`7`bDu holst zu einem kleinen Powerschlag aus!`b`0`n"); } } } // durch: if ($atk > $session[user][attack]) { if ($atk > $session[user][attack]*3){ if ($atk>$session[user][attack]*4){ output("`&`bDu holst zu einem <font size='+1'>MEGA</font> Powerschlag aus!!!`b`n",true); $session['user']['weaponhealth']-=e_rand(3,5); }else{ output("`&`bDu holst zu einem DOPPELTEN Powerschlag aus!!!`b`n"); $session['user']['weaponhealth']-=e_rand(2,4); } }else{ if ($atk>$session[user][attack]*2){ output("`&`bDu holst zu einem Powerschlag aus!!!`b`0`n"); $session['user']['weaponhealth']-=e_rand(1,3); }elseif ($atk>$session['user']['attack']*1.25){ output("`7`bDu holst zu einem kleinen Powerschlag aus!`b`0`n"); $session['user']['weaponhealth']-=e_rand(1,2); } } $session['user']['weaponhealth']--; } $session['user']['weaponhealth']-=e_rand(2,5); if ($session['user']['weaponhealth']<100 && $session['user']['weapondmg']!=0) { $session['user']['attack']-=$session['user']['weapondmg']; $session['user']['weaponvalue']=0; $session['user']['weapondmg']=0; $session['user']['weapon']="Fists"; output ("`\$`bMit einem lauten Knall zerspringt deine Waffe.`b`0`n"); } // öffne weapons.php // suche: $tradeinvalue = round(($session[user][weaponvalue]*.75),0); // ersetze durch: $zustand = $session['user']['weaponhealth']/10000; $tradeinvalue = round((($session['user']['weaponvalue']*0.75)*$zustand),0); // suche: $session[user][weaponvalue] = $row[value]; // ich glaube 5x vorhanden // füge danach ein: $session['user']['weaponhealth']=10000; // suche: addnav("Waffen anschauen","weapons.php?op=peruse"); // füge danach ein: addnav("Waffe schärfen","weapons.php?op=schleifen"); // suche: }else if ($HTTP_GET_VARS[op]=="peruse"){ // füge davor ein: }else if ($HTTP_GET_VARS['op']=="schleifen") { addnav("Zurück","weapons.php"); // Berechnung des Preises $zustand = $session['user']['weaponhealth']/10000; $kosten = round((150 * $session['user']['level']) * $zustand); $kosten = (150 * $session['user']['level']) - $kosten; if ($_GET['part']=="") { output("`5Nach vielen langen und erbitterten Kämpfen im Wald ist deine Waffe leicht stumpf geworden. Hier kannst du für `^$kosten Gold`5, deine Waffe wieder schärfen lasssen. Was möchtest du tun?`n`n"); output("<a href='weapons.php?op=schleifen&part=waffe'>Waffe schärfen.</a>`n<a href='weapons.php'>Ich möchte nicht machen.</a>`n",true); addnav("","weapons.php?op=schleifen&part=waffe"); addnav("","schmiede.php"); }elseif ($_GET['part']=="waffe") { // Überprüfung ob genug Gold vorhanden ist if ($session['user']['gold']<$kosten){ output("`4Du hast nicht genug Gold dabei, komm später wieder!"); }elseif ($kosten == 0) { output("`5Es ist noch nicht nötig deine Waffe schärfen zu lassen."); }else { $session['user']['gold']-=$kosten; $session['user']['weaponhealth']=10000; output("`&Du hast deine Waffe ".$session['user']['weapon']." schärfen lassen für `^".$kosten." Gold`&."); } } [/php] wer den waffenzustand auch noch in der vitalleiste angezeigt bekommen möchte, muss noch ein bisschen in der common.php rumfuschen ![]() [php] // suche: reset($session[bufflist]); $atk=$u[attack]; // ersetze durch: reset($session[bufflist]); // Waffenzustand by teruk $zustand = 1; if ($session['user']['weapon']!="Fists") $zustand = $u['weaponhealth']/10000; $zustand = ($u['attack']-$u['weapondmg']) + round($u['weapondmg']*$zustand); $atk=$zustand; // suche: .templatereplace("statrow",array("title"=>"Waffe","value"=>$u['weapon'])) // ersetze durch: .templatereplace("statrow",array("title"=>"Waffe","value"=>$u['weapon']."".grafbar(100,($u['weaponhealth']/100),50))) [/php] es ist noch nicht ganz ausbalanciert und so wie hier gepostet wurde, ist es auch noch nicht getestet, da ich einiges im gegensatz zu meiner version umschreiben musste |
Autor: | Darkness [ So 02 Okt, 2005 23:14 ] |
Betreff des Beitrags: | |
Eliwood hat geschrieben: Darkness hat geschrieben: BlackWarrior hat geschrieben: [code]<?php if ($u['weapondmg']>=10 || $u['weapondmg']<=20{ ?>[/php] hier muss && stehen. Auch bei den anderen abfragen mit weapondmg. || bedeutet Oder, also daass nur eine bedigung erfüllt werden muss d.h. sämtliche Bedigungen sind IMMER erfüllt áuch wenn weapondmg z.b. 5 ist, ist die zweite Bedingung erfüllt, und bei z.b. 50 ist die erste Bedigung erfüllt. Dann gäbe es noch xor: Wenn a oder b erfüllt sind, aber nicht beide ![]() Super, dann passiert es immer, wenn der Wert nicht zwischen 10 und 20 ist, sehr sinnvoll^^ Ich wollt eigentlich nur erklären, warum da && hin muss und nicht, was es noch für tolle Möglichkeiten gibt. |
Autor: | BlackWarrior [ Fr 07 Okt, 2005 20:26 ] |
Betreff des Beitrags: | |
@teruk, ich hab mal deine variante ausprobiert, sie geht jedenfalls ![]() aber ich hab mal noch ne frage dazu. ich mein es wird ja etwas an der waffe abgenutzt aber ich finde das das sehr wenig ist - kann man das irgendwie ändern das die waffe etwas schneller kaputt geht??? greetz |
Autor: | teruk [ Fr 07 Okt, 2005 20:38 ] |
Betreff des Beitrags: | |
japp, das geht eigentlich ganz einfach öffne battle.php suche: [php] $session['user']['weaponhealth']-=e_rand(2,5); [/php] und dann setzt einfach den randomwert etwas höher |
Autor: | Tidus [ Sa 31 Jan, 2009 13:24 ] |
Betreff des Beitrags: | Re: Waffenabnutzung |
EDIT: sry mein fehler bin einfach nur doof XD *bitte nicht hauen für sinnlos post* |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |