anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Fr 24 Mai, 2019 01:47

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr 10 Sep, 2010 05:48 
Offline
Profi
Profi

Registriert: Di 20 Jul, 2010 13:27
Beiträge: 137
LoGD: http://www.shibaya-logd.de/source.php
Ja, ich weiß, komischer Betreff, aber anders konnte ich irgendwie nicht zusammenfassen was ich meine ^^

Es geht mir um die Bank, Bürgerliste, Garten, Jägerhütte. Und zwar will ich ne 2. Stadt raufspielen und will da auch diese Orte verlinken. Nur solls dann halt so sein, dass man auch in der Stadt landet, von der aus man z.B. den Garten betreten hat, wenn man auf "Zurück zur Stadt" klickt ^^

Ein paar Gedanken hab ich mir drum gemacht, aber irgendwie... Äh, ja ^^

if{
$ession[user][location]==village.php
addnav('zurück zur Stadt','village.php');

}else{
$ession [user][location]==village2.php
addnav('zurück zur Stadt','village2.php');

}


Nich hauen, ich bin mir ja selber sicher, dass ichs vermurkst hab, aber so irgendwie muss es ja nen Bezug auf den Standort haben, dass man in der richtigen Stadt landet.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 10 Sep, 2010 08:19 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
oh man, also ich bin mir sicher das du wenn du mal ordentlich gesucht hättest min 2 Themen gefunden hättest die etwas ähnliches behandeln, wie z.b. im RP-Ort thread aber gut.


location funktioniert nur mit Nummern da es ein int feld ist, sollte klar sein nech?

wenn du es über location machen willst musst du in den ort village2.php z.b. $session['user']['location'] = 123; machen und natürlich für jeden ort eine andere zahl ...

dann kannst du in den dateien, wenn du es einfach haben willst mit if ($session['user']['location'] == 123) {} den rück link setzen.

es gibt auch per GET ne mehtode die man sich logd intern abkupfern könnte ich sag nur "return" aber naja, das dürfte für dich wohl das einfachste sein.

gruß..


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 10 Sep, 2010 09:56 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Wie wäre es mit einem Referrer-Link?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 10 Sep, 2010 11:51 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 12 Mai, 2008 21:51
Beiträge: 137
Geschlecht: Weiblich
2 Möglichkeiten
die eine haste ja shcon so ähnelich
ich hatte damals 4 Welten und da sollte man dann von jeder auch zur Kämpferliste kommen
entweder mit referal link wie bei den Bios (was aber zu problemen kommen kann, wenn des Ding zu lang wird, also vorsicht damit!)
oder etwas einfacher
man mache sich ein weiteres db feld oder nutze location (was allerdings zu loginfehlern kommen kann, wenn man das in der login.php nicht einstellt)
mache dann wenn man die eine village betritt dort hinein (wohlgemekt bei den Städten, nicht bei den Orten die erreichbar sein sollen)
$session['user']['feld']="irgendwas";
bei jeder natürlich anders
und dan in den Orten eine switchabfrage wodurch man dann an diese Orte gelangt

sind die einfachsten Möglichkeiten (jaja, ein weiteres db-feld, hach wie schlimm, aber da finde ich es wenigstens sinnvoll im gegensatz zu manch andren Sachen..)

hoffe das hilft dir weiter
mfg, dat Mine


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 10 Sep, 2010 12:41 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3919
Wohnort: Basel
Geschlecht: Männlich
Das Problem kann man ohne grossen Aufwand ziemlich einfach lösen. Dazu benötigt man ein zusätzliches Datenbankfeld, nennen wir es "village" (tinyint müsste reichen). Die village.php musst du soweit aufräumen, dass du, in Abhängigkeit des Inhalts von $session['user']['village'] eine jeweils andere Stadt anzeigst, zum Beispiel über zusätzliche Dateien. Bei den Navigationspunkten für das Reisen in die Stadt übergibst du dann eine GET-Variable, zum Beispiel "village.php?setvillage=3", wenn du die "Die Stadt in den Bergen" betreten willst.

Die village.php sieht dann schematisch in etwa so aus:
Code:
if(isset($_GET['setvillage']) AND is_numeric($_GET['setvillage'])) {
  $session['user']['village'] = $_GET['setvillage'];
}

switch($session['user']['village']) {
  default: {
    Include './villages/0-metropolis.php
    break;
  }

  case 1: {
    Include './villages/1-smallville.php
    break;
  }

  case 2: {
    Include './villages/2-gotham.php
    break;
  }

  case 3: {
    Include './villages/3-stadtindenbergen.php
    break;
  }
}


Jeder direkte Link zur village.php führt sofort in die Stadt des letzten Besuchs.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 10 Sep, 2010 13:11 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
@Yoichiro möchte ja kein spielverderber sein, habe nur zweckmäßig mal deine source besichtigt, und muss sagen du hast zwar eine source.php aber viele dateien sind nicht gerade offen, daher wären in meinen augen die "bedingungen" um hilfe zu bekommen, nicht erfüllt weshalb ich auch den Support einstelle. Ich schreib das hier nur für die, die es auch noch oder wieder so machen und nicht in die Source gekuckt haben weil es grad nicht notwenig ist ;)

grüße


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 10 Sep, 2010 14:08 
Offline
Held
Held

Registriert: Fr 17 Okt, 2008 20:06
Beiträge: 253
Geschlecht: Männlich
LoGD: off
Da ich ja immer ein Freund von Datenbankeinträgen bin :P

Kann man nicht einfach hingehen.. Man nimmt die list.php und nimmt sie so wie sie ist und speichert sie als list2.php ab (also dass man list.php und list2.php hat) und dann einfach in list2.php den Addnav anpassen und von der 2. Stadt den Link zur Kämpferliste über list2.php machen

so auch mit garden & co.

Oder dürfte ja auch gehen?

_________________
Wenn ihr mir sagt wie ich es als Datei hochlade, dann kann ich die Source hochladen die ihr wollt .D


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 10 Sep, 2010 15:08 
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/
@patzue: Natürlich "geht" das. Allerdings ist es wohl die hässlichstmögliche Lösung, da man unnötige Redundanzen aufbaut. Wenn du dann ein neues Feature (etwa die RP-Lämpchen) einbauen willst, musst du alle kopierten Dateien modifizieren usw.

Eliwoods Lösung sollte mittelfristig schon recht gut sein.

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So 12 Sep, 2010 11:38 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 12 Mai, 2008 21:51
Beiträge: 137
Geschlecht: Weiblich
Würde mal eben sagen: nein geht nicht
wenn du nicht gerade popup-bios hast werden die Spieler dann immer zur list.php und nicht zur list2.php zurück geleitet, sind also wieder in der Anfangsstadt...
Ziel nicht erreicht und somit klappt das nicht so wie gewünscht
Gut bei andren Dingen funktionierts, aber denke mal die List gehört zu den Dingern die du von überall erreichbar haben willst und da ist die Lösung von mir oder Eliwood (db-Feld brauchste ja bei beiden, da ist es egal, welche Lösung)
Ohne geht es hier nicht! (zumindest nicht sinnvoll)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So 12 Sep, 2010 12:55 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
Würde schon gehen. Die bio.php nutzt ja ausgiebig den Referer-Link. Wenn du einen Link zur Bio auf dem Marktplatz anklickst landest du beim Zurück ja auch wieder dort, und nicht in der Kämpferliste.
Aber es ist so wie Auric schon schrieb, zu musst wirklich jede involvierte Datei anfassen, also auch in der lits2.php die Links zur bio.php ändern. Die schlechteste Lösung, prädestiniert dazu bald die Übersicht zu verlieren. Fehler sind da fast vorprogrammiert!


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di 14 Sep, 2010 05:18 
Offline
Profi
Profi

Registriert: Di 20 Jul, 2010 13:27
Beiträge: 137
LoGD: http://www.shibaya-logd.de/source.php
Ok, vielen Dank für euren antworten :)
Da stellt man es sich so leicht vor und dann ist das so ein Gefuddel xD

@Tidus: Stimmt, etliches ist zu, aber das hat Gründe. Luzifel hat diese Dinge exklusiv für Shibaya gemacht. Er will diese Dinge nicht veröffentlichen. also bleiben die zu und die Dateien, die damit involviert sind, natürlich auch.
Ich hab mir trotzdem mal den Source Viewer angesehen und einiges aufgemacht, das aus irgendwelchen mir unerfindlichen Gründen zu war. Kommt davon wenn man aufspielen und konfigurieren lässt und dabei bleibt ^^


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 29 Sep, 2010 14:18 
Offline
User
User
Benutzeravatar

Registriert: Mo 09 Apr, 2007 15:39
Beiträge: 18
Hi, also ich bastel nun schon die ganze nacht daran, aber vlt sehe ich den wald vor lauter bäumen nicht mehr,

habe mir nun mal aus ein paar skripten eine zweite ortschaft zusammengebastelt, soweit so gut, dort will ich einen zweiten wald (in dem fall katakomben) integrieren... hat soweit auch funktioniert hat seine eigenen links usw..., nur habe ich nun das problem das wenn von dort aus ein spezial aufgerufen wird lande ich immer wieder im alten wald, ich finde die zu ändernde stelle einfach nicht.... verzweifel

mein zweites "kleines" problem ist das ich solche orte wie die zb. bücherei gerne von beiden ortschaften aufrufen möchte und natürlich beim zurückgehen wieder an den ausgangsort gelangen will...

habe mir von daher mal aus der bio die funktion geklaut und versucht sie für meine zwecke zu kürzen aber egal was ich versuche es will nicht wie ich, irgendwas scheint zu fehlen... momentan schaut das ganze so aus:

Code:
$ret = $_REQUEST['ret'];
($_GET['ret']=='')
$return = preg_replace("'[&?]c=[[:digit:]-]+'","",$_GET[ret]);
    $return = substr($return,strrpos($return,"/")+1);
    addnav("Zurück",$return);



und spuckt mir diesen Fehler aus:
Zitat:
Parse error: syntax error, unexpected T_VARIABLE in /is/htdocs/wp10473664_4UVIR07Y97/www/o-players.com/logd/library.php on line 381


In zeile 381 befindet sich das aus dem codeschnipsel:
Zitat:
$return = preg_replace("'[&?]c=[[:digit:]-]+'","",$_GET[ret]);


Habe es ehrlich zig mal über die sufu versucht, aber ich finde nichts das für mich verständlich ist :) ich hoffe ihr verzeiht mir, ich lerne noch ;)

_________________
Source


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 29 Sep, 2010 15:43 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3919
Wohnort: Basel
Geschlecht: Männlich
Code:
$ret = $_REQUEST['ret'];
($_GET['ret']=='')
$return = preg_replace("'[&?]c=[[:digit:]-]+'","",$_GET[ret]);
    $return = substr($return,strrpos($return,"/")+1);
    addnav("Zurück",$return);


Da fehlt ein if vor der Klammer:

Code:
$ret = $_REQUEST['ret'];
if ($_GET['ret']=='')
$return = preg_replace("'[&?]c=[[:digit:]-]+'","",$_GET[ret]);
    $return = substr($return,strrpos($return,"/")+1);
    addnav("Zurück",$return);


Das macht aber so keinen Sin - wenn $_GET['ret'] leer ist, soll er mit $_GET['ret'] weiterarbeiten? Gemeint ist eher:

Code:
$ret = $_REQUEST['ret'];
if (!empty($_GET['ret'])) {
    $return = preg_replace("'[&?]c=[[:digit:]-]+'","",$_GET['ret']);
    $return = substr($return,strrpos($return,"/")+1);
    addnav("Zurück",$return);
}


Wobei das nur geraten ist. Zudem seh ich den Sinn der obersten Zeile nicht, $_REQUEST sollte in LoGD sowieso nicht verwendet werden um auf $_GET-Variablen zuzugreifen.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 29 Sep, 2010 16:29 
Offline
User
User
Benutzeravatar

Registriert: Mo 09 Apr, 2007 15:39
Beiträge: 18
Danke für die schnelle antwort!
Vlt sollte ich dazusagen das ich die DS-version verwende, habe deinen unteren Schnipsle mal versucht, er schmeist zumindest keinen Fehler aus, leider macht er auch nichts anderes erkennbares!

Wenn ich den von mir mit dem fehlenden IF verwende habe ich zumindest den Nav punkt aber ohne Link also als hätte ich einfach
Code:
 addnav('Zurück');

verwendet!

Wie gesagt habe den Teil einfach zusammenkopiert, daher kann ich dir auch nicht wirklich sagen was er macht (bzw vermutete bis eben einfach das es eine gängige Methode wäre die Variable mit der vorhergehenden url zu füllen)
Nurmal so aus interesse warum sollte man $_REQUEST nicht verwenden? habe ich nämlich ziemlich oft in den Scripten gefunden!

ok... habe es nun so gelöst...
Code:
addnav('Zurück');
if($session['user']['alive']) {
    if($session['user']['imprisoned']) {
        addnav('Zum Kerker','prison.php');
    }
    else if ($session['user']['location']<3){
        addnav('Zum Dorfplatz','village.php');
        addnav('Zum Marktplatz','market.php');
    }
    else if ($session['user']['location']=3){
        addnav('Zurück','toteninsel.php');
    }   
}
else {
    addnav('Zu den Schatten','shades.php');
}

nicht ganz so schön wie ichs wollte :) aber es funktioniert!

Weis hat vlt noch jemand einen Gedankenanstoß zu meinem Problem mit den Waldspezials?

_________________
Source


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do 30 Sep, 2010 07:35 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3919
Wohnort: Basel
Geschlecht: Männlich
Ich kenn die DS3 nicht, vielleicht hat die Mechanismen, um $_REQUEST zu schützen. Die $_GET-Variablen können auf (normalen) Seiten nur gegebene Werte annehmen, den man nicht ändern kann. Anders liegt es bei $_POST-Werten. $_REQUEST beinhaltet nun aber leider (normalerweise) die Inhalte des aktuellen Requests - ruft man die Seite normal über GET auf, sinds die Inhalte von $_GET, ansonsten die von $_POST - und letztere kann man manipulieren. Ohne gröberen Schutz kann man nun jeden GET-Request auch als POST-Request setzen und so Variablen einsetzen lassen, die illegal sind.

@Neues Problem:
Welche Lösung hast du verwendet? Mit der letzteren sollte das nicht passieren, da fehlt wenn, dann der komplette Nav. Ich sagte ja, dass ich ohne mehr Code nicht viel Logik korrigieren kann. Vermutlich sollte das hier funktionieren:
Code:
if (!empty($_GET['ret'])) {
    $return = preg_replace("'[&?]c=[[:digit:]-]+'","",$_GET['ret']);
    $return = substr($return,strrpos($return,"/")+1);
    addnav("Zurück",$return);
}
else {
    addnav('Zurück', 'village.php'); // Anstatt village.php eventuell anderes Ziel nehmen, weiss ja nicht, wo "zurück" sein soll.
}


Wenn ich aber dein eigentlicher Wunsch so lese, dann such ich dir nachher gleich mal den Link zu einer besseren Lösung raus.

Edit: Bitte sehr:
viewtopic.php?f=34&t=5190
Die Verwendung von ret-Links ist, wenn möglich, zu vermeiden, da die (saubere) Behandlung mühsam ist.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 02 Okt, 2010 22:40 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
Zu den Waldspecials: Die haben alle einen Link in der Art forest.php?op=leave
Jetzt könnte man sämtliche Specials umschreiben, dass das aufrufende Script als Variable gespeichert wird. Diese Sklavenarbeit macht sicher kein Mensch.
Als Workaround könnte man die forest.php bearbeiten. Hier haben wir 2 mal eine Zeile, wo die Specials eingebunden werden:
include('./special/'.$specialinc); (ziemlich weit oben, wirkt für mehrteilige Specials und ist in diesem Fall interessant)
bzw
include("special/".$waldspecial); (der erstmalige Aufruf eines Specials, bei einteiligen Specials gehts danach im forest-Script weiter. Dieser Fall sollte für eine forest-Kopie uninteressant sein)

Nach dieser (oberen) include-Zeile könnte man sich einklinken und in Abhängigkeit von $session['user']['location'] auf einen anderen Ort redirecten oder Nav erstellen.
Ich selbst habe auf meinem Server das RP-Levelsystem von Luzifel runderneuert und erweitert, so dass auch Specials im RP auftreten können. Der Rücksprung sieht bei mir so aus:
Code:
    include('./special/'.$specialinc);
    if($session['user']['specialinc']=='' && $session['rpgspecialreturn']!='') //RP-Levelsystem: Backlink von Specials
    {
        addnav('Zum RPG',$session['rpgspecialreturn']);
        unset($session['rpgspecialreturn']);
    }
    output('`n`0');

Die Variable $session['rpgspecialreturn'] muss natürlich im aufrufenden Script gesetzt werden.

P.S.: Vielleicht ist auch die von mir überarbeitete Version der Häfen für dich interessant
viewtopic.php?f=34&t=4967

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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