anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mi 11 Jun, 2025 01:54

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Fr 30 Nov, 2007 17:13 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
PHP4OOPWVSYS 1.0
Modulares Wohnviertel-System auf PHP4-OOP Basis Version 1.0

Ein ganz schön monströser Name ist es geworden, aber im Vergleich zum ersten 0.1er Release, der sich (in den Folgeversionen) ja wunderbar verbreitet hat, hat sich auch das Projekt deutlich in Umfang und Funktionalität gewachsen!

Zumindest in dem, was es einmal werden soll, denn bei dem angestrebten Umfang wird der erste echte Release wohl doch noch etwas auf sich warten lassen. Dies hat einige gute Gründe:
Nachdem mein erstes Wohnviertel ja noch stark auf Anperas Version basierte und nur minimal die Vorteile der Objektorientierung nutzte, habe ich das bisherige Konzept komplett über den Haufen geworfen und nun einen modularen Aufbau, der sich nach Aufgaben orientiert, aufgestellt. Dieser ist natürlich komplexer zu schreiben, aber dadurch auch wesentlich besser wart- und erweiterbar. Zudem sind noch einige anfangs überhaupt nicht eingeplante Features hinzu gekommen. Die Wichtigsten dürften wohl das integrierte Sub-Navsystem sowie die Translationsengine sein.
Ja, ganz recht gehört - das neue System ist in allen Texten komplett anpassbar und übersetzbar, ohne die Programmlogik zu stören. Hierzu ist ebenfalls noch ein Editor geplant.

So, nun will ich aber auch erstmal den Mund halten und euch den ersten Abschnitt dessen, was bisher fertig ist überlassen und weiter am eigentlichen Werk arbeiten. Doch wie versprochen gibt es hier schon mal den ersten (hoffentlich) intakten Teil Code, damit ihr euch schon mal einlesen könnt.
Speziell ist dies das bereits fast fertige Bausystem. Einfach die wv.php betreten und mal ausprobieren ;-)
Da sich die MySQL-Tabellen im Vergleich zur alten Version jedoch deutlich verändert haben, müsst ihr die hier verwendeten evtl unter anderm Namen einspielen und dann die Namen in der config.php anpassen.

SVN-Dev Zugriff
Wie (weiter unten) erwähnt liegt die aktuellste einigermaßen stabile Version meiner Arbeit am Projekt nun in einem für alle lesbaren Subversion-Repository. Wer also Interesse am mehr oder weniger frischen Code hat, kann sich den jederzeit unter folgender Adresse auschecken: http://lotgd.lvps87-230-22-117.dedicated.hosteurope.de/wsvn/ - Der normale Quelltext ist auch im Browser sichbar.
Verständlicherweise gibts es dafür natürlich keine Schreibrechte ^^


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Mehr oder minder inaktiv


Zuletzt geändert von Auric am So 02 Mär, 2008 21:01, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 17:17 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Nach durchsehen der Gesamten Codeschnittestellen einmal, muss ich sagen, dass der Code zur vorherigen Version sehr sehr sauber ist... Bin selbst gerade sehr überrascht und hatte es so eig. nicht vermutet!!

Mein Lob, weiterso und weiterhin gutes gelingen und natürlich auf eine Fehlerfreie Version und viele Funktionierende Module. Werde mich in ferner Zukunft auch an dem ein oder anderen Modul betätigen. =)


Liebe Grüße,
Kev


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 17:20 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
WIe schön, zip-Komprimiert :)

Im übrigen würd ich die SVN-Details rausnehmen ;)

Sonst netter Code. Schade allerdings, dass ich wohl zuviel Ändern müsste, um es selbst zu gebrauchen ;) Und schade, dass du kein PHP5 nimmst. Der Support für 4 gibts ja nur noch bis Ende Jahr.. Wenn ich mich nun nicht irre.

PS:
Für Ersetzungen gibt es eigentlich das nette printf und seine ganze Verwandtschaft. Und mehrere, einzelne str_replace() sind schnäller als ein einziges mit Array-Argumenten - warum auch immer. Nur so als Nebenbemerkung. Klar, dass Arrays praktischer sind.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 17:42 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Den Subversion-Inhalt hatte ich ja ganz übersehen, danke für die Hinweise!

Die str_replce-Funktion werde ich wohl noch mal durchsehen und benchmarken. Zur Not gibt es halt ne Wrapper-Funktion. sprint() und Co. kommen jedoch nicht in frage, da sich die Anordnung der Platzhalter eventuell verschieben kann usw.

Wie schon mal erwähnt: Dies wird mein letztes PHP4-Projekt und du willst nicht wissen, wie oft ich die Beschränktheit während der Arbeit bereits verflucht habe. Besonders wenn man mal mit Java gewerkelt hat stört das immens. Aber hier soll die Kompatiblität vorgehen.

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 10 Dez, 2007 12:23 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
Ich hab mich gerade mal rein gelesen und find es so weit super. (Auf Arbeit ist gerade nix zu tun und die Zeit soll man ja nutzen, aber pssst *g*)

Ist dies denn die Final, oder ist es eine preview Version?


Mfg Garlant


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 10 Dez, 2007 12:24 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Zitat:
Zumindest in dem, was es einmal werden soll, denn bei dem angestrebten Umfang wird der erste echte Release wohl doch noch etwas auf sich warten lassen.


Da erübrigt sich die Frage wohl ;-)


Schön dich wieder mal hier zu sehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 10 Dez, 2007 12:34 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
Huch, dann habe ich das wohl irgendwie überlesen, sry. (schämen sollte ich mich :D)

Mhm, mal sehen. In den Fingern kribbelt es mir schon lange, Ideen habe ich auch a mass und ich lese hier gelegentlich noch mit.
Also ist es wohl möglich von mir nochmal etwas zu sehen. :-)

Bis zum nächsten Mal.

Garlant


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 18 Dez, 2007 16:14 
Offline
Profi
Profi

Registriert: Mi 13 Dez, 2006 17:54
Beiträge: 112
LoGD: http://kierans-welt.de/zephyrion
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web123/html/lotgdphp5/haus/haus_build.php:189) in /var/www/web123/html/lotgdphp5/common.php on line 62

Kommt bei jemandem der das Sys mal angetestet hat..

Merkwürdig...

Schon Fehler erkannt. $this muss durch $siht ersetzt werden


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 18 Dez, 2007 16:24 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Nein, wohl kaum.

Hier wird $this gebraucht, da das ganze Objekt-Orientiert ist. Da wird man $this kaum ersetzen müssen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 18 Dez, 2007 16:48 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Bevor wir hier von "dritten" sprechen, können diese sich hier genau so selbst melden und dazu äußer, gell Voxdomini. Zudem ist die Funktion "getFinishText" in der OOP- Klasse haus_build ein var_dump enthalten, es reicht also vollkommen davor ein // oder ein # zu setzen. (war wohl zur Debug- nutzung)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Mi 13 Feb, 2008 11:46 
Offline
User
User

Registriert: Sa 09 Feb, 2008 16:00
Beiträge: 19
Hallo... hab mal wieder ein Prob...

hab mir gerade das Modul installiert, und sofort ausprobiert.....

(ist was ich bisher gesehen habe super geworden)

nur ich hab da folgende probleme!!

1. Nach betreten des Wohnviertels kommt man nicht zum Dorf zurück!!!
2. Wenn ich das Haus fertig gestellt habe bekomme ich folgendes als meldung!!

$this->bbcode_second_pass_code('', 'object(haus_build)#3 (3) { ["id"]=> string(1) "2" ["data"]=> array(9) { ["house_id"]=> string(1) "2" ["gold"]=> string(5) "25000" ["gems"]=> string(2) "50" ["turn"]=> string(2) "30" ["name"]=> string(13) "Avengars Haus" ["description"]=> NULL ["level"]=> int(1) ["ausbauten"]=> NULL ["location"]=> string(1) "1" } ["changes"]=> array(2) { [0]=> string(5) "level" [1]=> string(4) "name" } }
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\wconline\haus\haus_build.php:189) in C:\xampp\htdocs\wconline\common.php on line 62
‹�����xµY[sÛ6~vfúvÖŒ§6uq¼õj]Ëq²MšLì4›¼d Q“ íØÛþó}Øï�$%ÙräÞ4c‹—œû9߁¾ztøxüúøüÛöüüÕKöæÝ/_3o«×{¿}ÜëÏÇîÅÓ ?`çš«JY(žá݉7úêÑajòÌ~ Ó·‘&£gB9e7uÎN¤º‘"ê°çށ(“ê‚¥Z$¡oD^f܈ªwÍõDõ4 ¢ªò™YèWæ:U*„ñ™¹.Ñ6=" fU¤eiXÆÕ´æSzÿâ—üÌ>ô½géÁcGK2¯>ÞÚÂW\Du.” u!®K-ª*Ä…¸Ä³¼Oj‘¶¬}øDlüÏ×.¹fQØ+ÃõTØö–gæGqݽŒÎÚ{™°'WRÅÅU`™°Ç!Su–m0»íZž-Õ4Ht‘§\±XX@z¸˜â]Y }Ì+ñdÃr[sœÃyÁœ4k(‹óòý&²J|IDT_@,劵s¦ø¬w¯=è嚳뢴•ŽN2AN³*“¼ó´"(´œJÄçùÌ)ÄÅí(˜î'ž‹Eë…¡ÿâ§7ïÎ}öë¯låùɿϏޞYbg]ZÖèæâÃÙ‘t Þ CæôáeÖø&+"N‘úW—A™–ß­Gá`8Ü žö·÷üƒD¿©µb ‡†ÌZ‹þÑ_¯·µe£¸çBš¡—6é7)âk6™FEVèÐÿºo?Èd níǦŽá“L°I¡c¾Ï"‘e%cÄ_øÔÞU%è®±c“†þ ßÿ-fìÐhûMW17ЪpÈ¢Œ#‰üÉH í³KžÉ)45EéØ¡Ì§ ^ }™ƒ¨r5!˜ÊÄg !<˜tH[Îoh«žOZÖËŠ ;ìѺŠ •#+k¯vQh§Ó`¯?g®§ÛÛ»ÃÝE™[±"ôY¢B ?Yœ¾xæw¦Úú,¤ ì6 åpáŒÇð9tö'£·f¾í{ïì©øålé¼õi+ëƒsy 'ó{£õ¯;ƒƒ÷Eª.%J²Èܲac(w¥Økc‘çåÁ|ë3%êM|!æïW¤HhÔ@§Ìr³/Ðlúíí_¦Ämç/T 6ΝsžË,Œ«ÄVL€™û”Sî÷zYa¦q „éaEß ´¦TºÝŸÍÜž] ¢ßšåîž_OÔv‹7}ºü«Ì6:ÆfNXWemv¢Ì· ¦‹«¦)Ìw€¹b»½3û{W m?kLxb…B±@ç¹rìÍÞÂÌ9 •m«9¡‚®®®‚’_—< ¢"ïES¹5‘ªw%&H^å¤EzeQ�FW GT3V¬˜Ô•T(£Ý2ÅÓ¸ŽÅîàû´0”œ$ãŠM$ðò'’ Û奘 ³"a&ìT ¡ØXó)pëQ õ4°[K°’ÞN¹~Ÿ:Ÿ˜©Q³Y¹?؃îƒowƒaFŽ D/zMÂD*Y¥ëiQWⓌÃá:O8©e†®„žs¿aUñ©JeYytœ+ÖDpK#ä‡¢Ö ª!…ÐŒÐÞªÅ3¬äSk-Ttý)ìX¾;¯`aøçŽº‡Ö"!Ï¢"¯AE.f„‹¼¤yý6öªz’K,a ÏzW<¶»R­Éö±Íÿ¨!-yBÀȦm,/o#œäl÷Ò|�L)®l‡Zº‚ pM«^ØÓÂ4¸y`³ñÅûA쏰HV†ÅB*öœ×&!ÅÉȤt“ÅœÅ5þWì,J4 ƒV[RUç9.y�f®s‚jjX4@†ZŸ+zËb)ؘGé„gx¼¥ZŠ ®S^™MG&¼ŽR¦¤È¹ÝÁÌÞ¢c·æ0 ¡¢)–åë1œ èìôÀxD(óèdµºÚtôGgŠKºµÕÓi-$*‰Ù Ýl¹þŸº0M¾UVg÷è1×ìÆ©œfØO&ÌyfµÝ&{eNäªxXkkOXʁF³Ä½Ö­y³¢ªØ”Oö±N`GÉÀTác¬¸5EÌf²fÈÝ…þÄqŸ›¹nÞŽ n¸”œY5X̏*í|ˆAonpé·H ÇزC;èï¨ö®ƒÏ“Ñx7ƒ£?´µåg’‰½À®œ´NXºƒ“˜™JüŒžÆQ74uÒÜ©A³‚Ö¤ØÌß_fõ’JGUÖê¬bÙÔ†[aÆy{§Éõ®\2ÌÛ”Š½=ü =çÛ}V™ŒÙ üÌš±ÞkÌì} âfÊðv:HÔ¾¥©M¤9ð°øè¨.ä”î`›÷%ªùTx¨±Þ¢Sê!Cm:ý>Ï vÊçÌ VÕ˜+¿Ìi•CI§5`m+®F—„nx/qˆ—Í,Õï\³-Vó<ùfk<éóàD|Ï“dUœ¯²à3ÀsDËÚðÛÿUæÏ;í|ë,•Ex5ÓÛØáè‚F\¡,Ì[ŠÆg½÷GWîÌ‘Î"éüØ IÝÑdû õJwÿ‡Ž&;¸pgÚ‹'Ô-:êŽÕ“¢°GÐÛ/ƒè%àoᄦÁIªpclaÕŒü¸(¯ía=öûÃ-üÛÞd§@cûìDˈú• “£ÔTíc,ײbÚßùØ“3*LÀãJ`ì ¤Çáa0` J¦’ÆØûꀍØgƒm†Q±ôwªÖ?­%ì(‹ú´0$Ü•¸*œD‚†„ïj…·0îœÖa‚£4Gt^s±Ñø¿õ¬Á{KXRÕœƒ¹h‘•Û ¾ýæÃðÓ {rzòvƒ}ÃÞ¿¶G)xû4@—›åAÇÍ–§w'J#¾š·(Úø!ˆ w¯ùö«GÿÜJ°Jî��')

Source:

Hab nur in der village.php dein eintrag

$this->bbcode_second_pass_code('', 'if (@file_exists("houses.php")) addnav("Wohnviertel","houses.php");
_________________________

in

if (@file_exists("wv.php")) addnav("Wohnviertel","wv.php");')

geändert!!

Hab ich was falsch gemacht??

werde aus dem code nicht ganz schlau, wie füge ich da ein addnav zum Dorf ein??

________

Edit!
Gibt es dafür eine Anleitung.... oder kann ich die von der 0.91 verwenden??


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Mi 13 Feb, 2008 14:12 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
Was steht den in der haus_build.php in Zeile 189?

Mfg Garlant


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Mi 13 Feb, 2008 14:15 
Offline
User
User

Registriert: Sa 09 Feb, 2008 16:00
Beiträge: 19
189// var_dump($this);


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Mi 13 Feb, 2008 15:32 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
Was steht in der Zeile 188 / 190?

Schönes Datenbank-Array :D

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Mi 13 Feb, 2008 18:16 
Offline
User
User

Registriert: Sa 09 Feb, 2008 16:00
Beiträge: 19
also hier mal der source der haus_build:

$this->bbcode_second_pass_code('', '<?php
/**
* Klassendatei für die Nutzung des Hausbausystems
*
* @author Auric
* @package PHP4OOPHausSys
*/

require_once 'haus_minor.php';

class haus_build extends haus_basic {

function haus_build($in=false,$elseread=true,$toread=array('*')) {
parent::haus_basic($in,$elseread,$toread);
}

function start(&$user) {
$retid = 0;
if (haus_build::canBuild($user) === true) {
$cost = haus_build::getCosts();
haus_build::pay($user,true);
$id = haus_build::generate_id();
$params = array($id,$cost['sgold'],$cost['sgems'],$cost['sturn'],-3);
$sqlstr = 'INSERT INTO `'.HAUS_TABELLE.'` (`'.HAUS_ID_FIELD.'`,`gold`,`gems`,`turn`,`level`) VALUES(%u,%u,%u,%u,%s)';
db_query(vsprintf($sqlstr,$params)) or stirb('Erzeugen eines neuen Hauses schlug fehl!',null,__FILE__,__LINE__);
wvKey::generateKeys($id,1,$user['acctid']);
$retid = $id;
}
return $retid;
}

function generate_id() {
$zahl = 0;
$sql = 'SELECT MAX(`'.HAUS_ID_FIELD.'`) AS `max`, COUNT(`'.HAUS_ID_FIELD.'`) AS `num` FROM `'.HAUS_TABELLE.'`';
$res = db_query($sql) or stirb('Generieren eines neuen HausIndexes schlug fehl (MAX)',null,__FILE__,__LINE__);
$cnt = db_fetch_assoc($res);
db_free_result($res);
if($cnt['max'] <= $cnt['num']) { // Durchgängige Liste vorhanden
$zahl = $cnt['max'] +1; // Einfach die nächste Zahl verwenden
} else { // Keine Durchgängige Liste vorhanden
$sql = 'SELECT `'.HAUS_ID_FIELD.'` AS `id` FROM `'.HAUS_TABELLE.'` LIMIT '; // Standard-Query
$prev = $cnt['max'];
for($i=$cnt['max'];$i>0;$i-=50) { // Zur Schohnung der DB Iterieren
$res = db_query($sql.$i.', 50')
or stirb('Generieren eines neuen HausIndexes schlug fehl (LIST '.$i.')<br /><br />'.db_error(),null,__FILE__,__LINE__);
for($i=0,$max=db_num_rows($res);$i<$max;$i++) { // Einzelne IDs checken
$row = db_fetch_assoc($res);
if($row['id'] != --$prev) break 2; // Fund! Schleifen abbrechen
}
db_free_result($res);
}
$zahl = $prev+1;
}
return $zahl;
}

function getMissingCosts() {
$cost = haus_build::getCosts();
return array(
'gold'=>$cost['gold']-$this->get('gold'),
'gems'=>$cost['gems']-$this->get('gems'),
'turn'=>$cost['turn']-$this->get('turn'));
}

function canBuild($user) {
$cost = haus_build::getCosts();
$own = haus_basic::findByUser($user['acctid'],true,-3);
$miss = array();
if($user['gold'] < $cost['sgold']) $miss['gold'] = $cost['sgold'] - $user['gold'];
if($user['gems'] < $cost['sgems']) $miss['gems'] = $cost['sgems'] - $user['gems'];
if($user['turns']< $cost['sturn']) $miss['turn'] = $cost['sturn'] - $user['turns'];
if($user['dragonkills'] < $cost['dk']) $miss['dk'] = $cost['dk'] - $user['dragonkills'];
if(count($own) > 0) $miss['building'] = 1;
return empty($miss) ? true : $miss;
}

function getCosts() {
return array(
'gold' => getsetting('baukostengold',25000),
'gems' => getsetting('baukostengems',50),
'dk' => getsetting('abwannbauen',3),
'turn' => getsetting('baukostenturn',30),
'sgold' => getsetting('baukostengold_start',10000),
'sgems' => getsetting('baukostengems_start',10),
'sturn' => getsetting('baukostenturn_start',5),
);
}

function corrigatePrefVal($user,$valname,$prefval,$maxval = false) {
if (!$maxval) {
$mcost = $this->getMissingCosts();
$maxval = $mcost[$valname];
}
if ($maxval > $prefval) $prefval = $maxval;
if ($user[($valname=='turn'?'turns':$valname)] < $prefval) $prefval = $user[($valname=='turn'?'turns':$valname)];
return $prefval;
}

function pay(&$user,$initial = false,$pref=array('gold'=>0,'gems'=>0,'turn'=>0)) {
if ($initial) {
$cost = haus_build::getCosts();
$pref = array('gold'=>$cost['sgold'],'gems'=>$cost['sgems'],'turn'=>$cost['sturn']);
}
$gold = haus_build::corrigatePrefVal($user,'gold',$pref['gold'],$pref['gold']);//,$maxvals['gold']);
$gems = haus_build::corrigatePrefVal($user,'gems',$pref['gems'],$pref['gems']);//,$maxvals['gems']);
$turn = haus_build::corrigatePrefVal($user,'turn',$pref['turn'],$pref['turn']);//,$maxvals['turn']);
if (!$initial) $this->spend($gold,$gems,$turn);
$user['gold'] -= $gold;
$user['gems'] -= $gems;
$user['turns'] -= $turn;
return array('gold'=>$gold,'gems'=>$gems,'turn'=>$turn);
}

function spend($gold=0,$gems=0,$turn=0) {
$this->set('gold',$this->get('gold')+$gold);
$this->set('gems',$this->get('gems')+$gems);
$this->set('turn',$this->get('turn')+$turn);
}

function isFinished() {
$miss = $this->getMissingCosts();
return ($this->get('level') >= 0) || ($miss['gold'] <= 0 && $miss['gems'] <= 0 && $miss['turn'] <= 0);
}

function getProgressText($user) {
global $wvtxt, $wvnav;
$cost = haus_build::getCosts();
$miss = $this->getMissingCosts();
$str = $wvtxt->massGet(array('process_intro','process_main'));
$sea = array(
'{GOLD}' , '{GEMS}' , '{TURN}',
'{P_GOLD}' , '{P_GEMS}' , '{P_TURN}',
'{L_GOLD}' , '{L_GEMS}' , '{L_TURN}',
'{GOLD_BAR}', '{GEMS_BAR}', '{TURN_BAR}');
$rep = array(
$cost['gold'], $cost['gems'], $cost['turn'],
$cost['gold']-$miss['gold'], $cost['gems']-$miss['gems'], $cost['turn']-$miss['turn'],
$miss['gold'], $miss['gems'], $miss['turn'],
grafbar($cost['gold'],$cost['gold']-$miss['gold'],150,15),
grafbar($cost['gems'],$cost['gems']-$miss['gems'],150,15),
grafbar($cost['turn'],$cost['turn']-$miss['turn'],150,15));
$str .= str_replace($sea,$rep,$wvtxt->get('process_cost'));
if($user['turns'] > 0) {
$sea = array('{LINK}','{GOLD}','{GEMS}');
$formlink = $wvnav->link('house_id='.$this->id.'&act=work',true);
addnav('',$formlink);
$rep = array($formlink,haus_build::corrigatePrefVal($user,'gold',$miss['gold'],$miss['gold']),haus_build::corrigatePrefVal($user,'gems',$miss['gems'],$miss['gems']));
$str .= str_replace($sea,$rep,$wvtxt->get('process_spend'));
}
return $str;
}

function getWorkText(&$user) {
global $wvtxt, $wvnav;
$str = '';
if($user['turns'] > 0) {
$paid = $this->pay($user,false,array('gold'=>$_POST['spend_gold'],'gems'=>$_POST['spend_gems'],'turn'=>$_POST['spend_turn']));
if ($this->isFinished()) {
$wvnav->clear();
$str .= $wvtxt->get('work_finish');
$formlink = $wvnav->link('act=finish&'.HAUS_ID_FIELD.'='.$this->id,true);
addnav('',$formlink);
$sea = array('{LINK}','{NAME}');
$rep = array($formlink,$user['login']."s Haus");
$str .= str_replace($sea,$rep,$wvtxt->get('work_config'));
} else {
$str .= $wvtxt->get('work_intro');
}
$sea = array('{GOLD}','{GEMS}','{TURN}');
$rep = array($paid['gold'],$paid['gems'],$paid['turn']);
$str .= str_replace($sea,$rep,$wvtxt->get('work_cost'));
} else {
$str .= $wvtxt->get('work_fail');
}
return $str;
}

function getFinishText($user) {
global $wvtxt;
$_POST['house_name'] = urldecode($_POST['house_name']);
$baselevel = new ausbaustufe();
wvKey::generateKeys($this->id,$baselevel->keys-1,$user['acctid'],2);
$this->set('level',1);
$this->set('name',$_POST['house_name']);
$str = $wvtxt->get('finish_intro');
$sea = array('{NAME}','{KEYS}');
$rep = array($_POST['house_name'],$baselevel->keys);
$str .= str_replace($sea,$rep,$wvtxt->get('finish_main'));
var_dump($this);
return $str;
}

function getInfoText() {
global $wvtxt;
$cost = haus_build::getCosts();
$sea = array('{GOLD}','{GEMS}','{TURN}','{S_GOLD}','{S_GEMS}','{S_TURN}','{DK}');
$rep = array($cost['gold'],$cost['gems'],$cost['turn'],$cost['sgold'],$cost['sgems'],$cost['sturn'],$cost['dk']);
$str = $wvtxt->massGet(array('info_intro','info_main'));
$str .= str_replace($sea,$rep,$wvtxt->get('info_cost'));
$str .= $wvtxt->get('info_end');
return $str;
}

function getStartText() {
global $wvtxt;
$cost = haus_build::getCosts();
$sea = array('{GOLD}','{GEMS}','{TURN}');
$rep = array($cost['sgold'],$cost['sgems'],$cost['sturn']);
$str = $wvtxt->get('start_intro');
$str .= str_replace($sea,$rep,$wvtxt->get('start_cost'));
return $str;
}

}

?>')

wäre cool wenn jemand meine Fehler findet :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Mi 13 Feb, 2008 19:19 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
Suche:
$this->bbcode_second_pass_code('', 'var_dump($this);')
Ersetze mit:
$this->bbcode_second_pass_code('', '// var_dump($this);')


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Mi 13 Feb, 2008 22:17 
Offline
Profi
Profi

Registriert: Mo 25 Dez, 2006 21:45
Beiträge: 109
Vielleicht auch noch zur Erklärung, was dir Garlant empfiehlt:

Du kommentierst damit folgende Funktion aus:
http://de3.php.net/manual/de/function.var-dump.php

Wird manchmal verwendet um sich Variablen auszugeben, doch dabei kann das Script u.U. abbrechen.
Darum besser auskommentieren. (= in Kommentare setzen = nicht ausführen lassen)

MfG
Jenutan

_________________
26. April 2007 - 8. Juni 2007 auf http://www.dragonfantasies.de
28. Juli 2007 - 31. Dezember 2008 auf http://www.atrahor.de

LoGD ist das programmierte Grauen!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Do 14 Feb, 2008 08:09 
Offline
User
User

Registriert: Sa 09 Feb, 2008 16:00
Beiträge: 19
juhu es klappt... danke für die hilfe müsste jetzt nur noch wissen, wie ich da ein neues addnav einfüge...... (brauche da nen link zurück zum dorf)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Do 14 Feb, 2008 10:47 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
Jenutan hat geschrieben:
Vielleicht auch noch zur Erklärung, was dir Garlant empfiehlt:

Du kommentierst damit folgende Funktion aus:
http://de3.php.net/manual/de/function.var-dump.php

Wird manchmal verwendet um sich Variablen auszugeben, doch dabei kann das Script u.U. abbrechen.
Darum besser auskommentieren. (= in Kommentare setzen = nicht ausführen lassen)

MfG
Jenutan


Das ist nicht ganz richtig, denn das Script bricht nicht ab. Es tritt ganz einfach "nur" ein Fehler auf.
Die Funktion header sendet Informationen an den Client und dies aber nur, wenn davor noch keine Ausgabe gemacht wurde.
In dem Fall wurde über var_dump aber schon eine Ausgabe getätigt und somit auch ein header gesendet. Es wird nochmals versucht ein header zu senden, was aber nicht möglich ist. [...] Die Rückgabe ist dann eine Fehlermeldung.

Abgebrochen wird ein Script lediglich über ein exit;

Mfg Garlant


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [dev] PHP4OOPWVSYS 1.0
BeitragVerfasst: Do 14 Feb, 2008 11:44 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 15 Okt, 2005 14:06
Beiträge: 864
Geschlecht: Männlich
LoGD: http://shinobilegends.com
Zitat:
Die Funktion header sendet Informationen an den Client und dies aber nur, wenn davor noch keine Ausgabe gemacht wurde.


oder wenn z.b. im Apache das header output gepufft ist...z.b. output_buffering 4kb...

dann kann man das nachher senden, er Indianer setzt an an den Header.

_________________
Entwicklung Lotgd 1.2.2 +nb
1.2.1 +nb ist final

Bugreports/Testing erwünscht, http://nb-core.org

Wichtige Info für Programmierersucher:
viewtopic.php?f=34&t=4285


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 16 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:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum