anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 09 Jun, 2025 07:04

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Kopfgeld wegkaufen
BeitragVerfasst: Do 08 Mai, 2008 20:42 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 13 Mär, 2008 19:04
Beiträge: 42
Geschlecht: Männlich
Kann mir jemand sagen, wie ein Script aussehen würde, in dem man das Kopfgeld wegkaufen kann?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Do 08 Mai, 2008 21:03 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Mo 11 Feb, 2008 13:30
Beiträge: 96
Geschlecht: Männlich
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Do 08 Mai, 2008 21:06 
Offline
Eingeweihter
Eingeweihter

Registriert: So 25 Nov, 2007 12:53
Beiträge: 57
das sieht so aus wie da ^^

http://anpera.homeip.net/phpbb3/viewtop ... it=sheriff


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Do 08 Mai, 2008 21:13 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 13 Mär, 2008 19:04
Beiträge: 42
Geschlecht: Männlich
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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Do 08 Mai, 2008 21:15 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 13 Mär, 2008 19:04
Beiträge: 42
Geschlecht: Männlich
also ich meine das so, das mann einen betrag eingeben kann, den bezahlt man dann und dann wird das kopfgeld um diesen betrag gesenkt


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Fr 09 Mai, 2008 10:55 
Offline
Eingeweihter
Eingeweihter

Registriert: So 25 Nov, 2007 12:53
Beiträge: 57
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 ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Mo 12 Mai, 2008 12:03 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 13 Mär, 2008 19:04
Beiträge: 42
Geschlecht: Männlich
das problem dabei ist, das ich absolut keine ahnung von sowas hab...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Di 13 Mai, 2008 12:34 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Mo 11 Feb, 2008 13:30
Beiträge: 96
Geschlecht: Männlich
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Do 15 Mai, 2008 00:28 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 11 Feb, 2006 19:39
Beiträge: 596
Wohnort: Stuttgart - Waiblingen
Geschlecht: Männlich
LoGD: http://logd.legend-of-vinestra.de/source
Skype: da-chosen-one
$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.

_________________
$this->bbcode_second_pass_code('', '(define-record-procedures choco-cookie
make-choco-cookie choco-cookie?
(choco-cookie-choco
choco-cookie-cookie))

(define Prinzenrolle
(make-choco-cookie choco-cookie-choco-standard (* 2 choco-cookie-cookie-standard)))')


Zuletzt geändert von Drazaar am So 18 Mai, 2008 14:05, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Do 15 Mai, 2008 17:36 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
$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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: So 18 Mai, 2008 14:03 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 11 Feb, 2006 19:39
Beiträge: 596
Wohnort: Stuttgart - Waiblingen
Geschlecht: Männlich
LoGD: http://logd.legend-of-vinestra.de/source
Skype: da-chosen-one
Sorry, Harthas hat natürlich extrem recht! Ich verbessere es. Das war unachtsamkeit *fg*

_________________
$this->bbcode_second_pass_code('', '(define-record-procedures choco-cookie
make-choco-cookie choco-cookie?
(choco-cookie-choco
choco-cookie-cookie))

(define Prinzenrolle
(make-choco-cookie choco-cookie-choco-standard (* 2 choco-cookie-cookie-standard)))')


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: So 18 Mai, 2008 15:12 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
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;
}')


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Mi 21 Mai, 2008 15:55 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 11 Feb, 2006 19:39
Beiträge: 596
Wohnort: Stuttgart - Waiblingen
Geschlecht: Männlich
LoGD: http://logd.legend-of-vinestra.de/source
Skype: da-chosen-one
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^^

_________________
$this->bbcode_second_pass_code('', '(define-record-procedures choco-cookie
make-choco-cookie choco-cookie?
(choco-cookie-choco
choco-cookie-cookie))

(define Prinzenrolle
(make-choco-cookie choco-cookie-choco-standard (* 2 choco-cookie-cookie-standard)))')


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Do 22 Mai, 2008 14:08 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Entschuldige.

War ein kleiner Rechtschreibfehler. *lach* Was das zweite betrifft, mit dem "db_query", das ist mit Eliwoods Funktion kompatibel. ;) - Ansonsten die %s durch die unten gegebenen Variablen ersetzen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kopfgeld wegkaufen
BeitragVerfasst: Do 22 Mai, 2008 16:16 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
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)));')


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

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