anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Kopfgeld wegkaufen https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=4513 |
Seite 1 von 1 |
Autor: | Wolfus [ Do 08 Mai, 2008 20:42 ] |
Betreff des Beitrags: | Kopfgeld wegkaufen |
Kann mir jemand sagen, wie ein Script aussehen würde, in dem man das Kopfgeld wegkaufen kann? |
Autor: | The_Muh [ Do 08 Mai, 2008 21:03 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
wie genau wegkaufen? Man zahlt das Kopfgeld und dann isses weg? Oder das man das Kopfgeld reduzieren kann? pseudocode (A): if geld von user >= kopfgeld von user then geld von user - kopfgeld von user kopfgeld von user = 0 else Meldung: user hat zu wenig geld |
Autor: | Taratan [ Do 08 Mai, 2008 21:06 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
das sieht so aus wie da ^^ http://anpera.homeip.net/phpbb3/viewtop ... it=sheriff |
Autor: | Wolfus [ Do 08 Mai, 2008 21:13 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
The_Muh hat geschrieben: wie genau wegkaufen? Man zahlt das Kopfgeld und dann isses weg? Oder das man das Kopfgeld reduzieren kann? pseudocode (A): if geld von user >= kopfgeld von user then geld von user - kopfgeld von user kopfgeld von user = 0 else Meldung: user hat zu wenig geld wo muss das rein? |
Autor: | Wolfus [ Do 08 Mai, 2008 21:15 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
also ich meine das so, das mann einen betrag eingeben kann, den bezahlt man dann und dann wird das kopfgeld um diesen betrag gesenkt |
Autor: | Taratan [ Fr 09 Mai, 2008 10:55 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
achsu, dann so wie im pseudoskript ^^ und wo ist egal ![]() bau einfach auch eine art sheriff haus oder wie auch immer und da kannst du das dann rein machen ![]() einfach nen neues skript schreiben ^^ |
Autor: | Wolfus [ Mo 12 Mai, 2008 12:03 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
das problem dabei ist, das ich absolut keine ahnung von sowas hab... |
Autor: | The_Muh [ Di 13 Mai, 2008 12:34 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
ich hab mal ein einfaches script geschrieben... (ich hatte langeweile) sind nur wenige zeilen, aber du musst die Texte nocht reineditieren, dazu hatte ich nämlich keine lust. hier der code: $this->bbcode_second_pass_code('', '<?php require_once "common.php"; page_header("Scherrif"); checkday(); if ($_GET[op] ==""){ Output(/*'text einfügen*/); addnav("Optionen"); addnav("Kopfgeld verringern","scherrif.php?op=min"); addnav("Zurück zum Dorf","village.php"); }else if ($_GET[op]=="min"){ Output(/*'text einfügen*/); output($session[user][bounty]); output("`n`n<form action='scherrif.php?op=con1' method='POST'>Dein Kopfgeld: ".$session[user][bounty]."!",true); output("Um wie viel möchtest du es Reduzieren? <input id='input' name='amount' width=5><input type='submit' class='button' value='min'></form>",true); output("<script language='javascript'>document.getElementById('input').focus();</script>",true); addnav("","scherrif.php?op=con1"); }else if ($_GET[op]=="con1"){ $geld = $_POST[amount]; if ($geld > $session[user][gold]){ Output("So viel geld hast du nicht"); }else{ $session[user][gold] -= $geld $session[user][bounty] -= $geld Output("Dein Kopfgeld beträgt nur noch ".§session[user][bounty]."Gold"); } } ?>') PS: ist ungetestet, sollte aber funktionieren. |
Autor: | Drazaar [ Do 15 Mai, 2008 00:28 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
$this->bbcode_second_pass_code('', '<?php require_once 'common.php'; page_header('Sherrif'); checkday(); switch($_GET['op']) { case '': $str_out = 'TEXT HIER EINFÜGEN'; addnav('Optionen'); addnav('Kopfgeld verringern', 'sherrif.php?op=min'); addnav('Umkehren'); addnav('Zurück zum Dorf', 'village.php'); break; case 'min': $str_out = 'TEXT HIER EINFÜGEN'; $str_out .= '`n`n<form action="sherrif.php?op=con1" method="POST"> Dein Kopfgeld: '.$session['user']['bounty'].'! `n Um wie viel möchtest du es reduzieren? <input id="input" name="amount" width="5"> <input type="submit" class="button" value="min"></form>'; $str_out .= "<script language='javascript'>document.getElementById('input').focus();</script>"; addnav('', 'scherif.php?op=con1'); addnav('Umkehren'); addnav('Doch nichts ändern', 'village.php'); break; case 'con1': $geld = $_POST['amount']; if($geld > $session['user']['gold']) { $str_out = 'So viel Geld hast du nicht!'; } elseif($geld > $session['user']['bounty']) { $return_money = $geld - $session['user']['bounty']; $str_out = 'Das ist mehr Geld, als überhaupt auf deinen Kopf ausgesetzt ist! `n Du bekommst '.$return_money.' Gold zurück.'; $session['user']['gold'] -= $session['user']['bounty']; $session['user']['bounty'] = 0; } elseif($geld == $session['user']['bounty']) { $str_out = 'Damit hast du all dein Kopfgeld abgezahlt!'; $session['user']['bounty'] = 0; $session['user']['gold'] -= $geld; } else{ $str_out = 'Dein Kopfgeld beträgt nur noch '.$session['user']['bounty'].' Gold.'; $session['user']['gold'] -= $geld; $session['user']['bounty'] -= $geld; } addnav('Umkehren'); addnav('Zurück zum Dorf', 'village.php'); break; } output($str_out, true); page_footer(); ?>') Hab mal kurz n bissel drübergearbeitet. Was mir aufgefallen ist: - kein page_footer() - kein Zurücklink ins Dorf bei $_GET['op'] == 'con1' - keine ; bei $session['user']['gold'] -= $geld; und $session['user']['bounty'] -= $geld; - Konstanten statt Strings - unnötige Aufrufe von output - switch statt if- und elseifverschachtelungen - n paar Rechtschreibfehler - paar Abfragen ergänzt, ist aber nur Schönheitsbedingt Allerdings habe ich es nicht getestet. *Sollte* aber funktionieren, kann aber sein, dass Vertippsler drin sind oder eventuelle Fehler, die ich net beachtet habe^^ Viel Spaß damit. |
Autor: | Harthas [ Do 15 Mai, 2008 17:36 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
$this->bbcode_second_pass_code('', ' elseif($geld > $session['user']['bounty']) { $return_money = $gold - $session['user']['bounty']; $str_out = 'Das ist mehr Geld, als überhaupt auf deinen Kopf ausgesetzt ist! `n Du bekommst '.$return_money.' Gold zurück.'; $session['user']['bounty'] -= $session['user']['bounty']; $session['user']['bounty'] = 0;') *hust*hust* Da stimmt etwas noch nicht ganz :-) $session['user']['gold'] -= $session['user']['bounty']; sollte es wohl heissen - Zudem heisst die Variable $geld, und nicht $gold. |
Autor: | Drazaar [ So 18 Mai, 2008 14:03 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
Sorry, Harthas hat natürlich extrem recht! Ich verbessere es. Das war unachtsamkeit *fg* |
Autor: | Kevz [ So 18 Mai, 2008 15:12 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
Mhh.... habe mir mal eine "kleine" Funktion dazu gebastelt. Ich würde mich freuen, wenn sie mal jemand testen könnte und sagen, ob es so einwandfrei Funktioniert, wie der Sinn des Codestückes ist. Das ganze ist mit der Anti-Cheat Funktion aus der LotGD ext 3 verbunden. Code: $this->bbcode_second_pass_code('', '/** * Zum Ändern des jeweiligen Spielbetrages. * * @param integer $value zu setzender Betrag * @param integer $user Spieleraccount-Id * * @return result */ function setBounty ( $value, $user = false ) { global $session; if ( empty($user) ) $session['user']['bounty'] = abs($value); else { $sql = 'SELECT `acctid` FROM `accounts` WHERE = `acctid` = '.(int)$user; $res = db_query($sql) or die (db_error($sql)); if ( db_num_rows($res) ) { $row = db_fetch_assoc($res); if ( (!ac_check(array('acctid'=>$user))) ) { if ( $row['acctid'] == $session['user']['acctid'] ) setBounty($value); else { $sql = 'UPDATE `accounts` SET `bounty` = "%s" WHERE `acctid` = "%s"'; db_query($sql, (int)$value, (int)$user) or die (db_error($sql)); return db_affected_rows(); } } db_free_result($res); } } return false; }') |
Autor: | Drazaar [ Mi 21 Mai, 2008 15:55 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
Ohne es zu testen: $this->bbcode_second_pass_code('', '$sql = 'SELECT `acctid` FROM `accounts` WHERE = `acctid` = '.(int)$user;') Sicher, dass das so mit dem = nach WHERE stimmt? $this->bbcode_second_pass_code('', '$sql = 'UPDATE `accounts` SET `bounty` = "%s" WHERE `acctid` = "%s"'; db_query($sql, (int)$value, (int)$user) or die (db_error($sql));') Ich glaub sowas würde meine db_query nicht verpacken^^ |
Autor: | Kevz [ Do 22 Mai, 2008 14:08 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
Entschuldige. War ein kleiner Rechtschreibfehler. *lach* Was das zweite betrifft, mit dem "db_query", das ist mit Eliwoods Funktion kompatibel. ![]() |
Autor: | Eliwood [ Do 22 Mai, 2008 16:16 ] |
Betreff des Beitrags: | Re: Kopfgeld wegkaufen |
Die Funktion nennt sich "db_squeryf" und lässt sich hier irgendwo finden. Alternativ kann man auch selbst rundherum bauen (Man benötigt eigentlich nur sprintf()): $this->bbcode_second_pass_code('', '$sql = 'UPDATE `accounts` SET `bounty` = "%s" WHERE `acctid` = "%s"'; db_query(sprintf($sql, (int)$value, (int)$user) or die (db_error($sql)));') |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |