[Unstucker] für RootServern Php Code

07/10/2010 02:44 .StyL#1
Hier mal ein Gefundener Unstucker php Code ich selbst hab ihn noch nich ausprobiert villeicht hilfts ya.
Was ist Unstucker "Unstucker" ist ein Php Script was die Charakter in Metin2 die in verbuggte Maps wie Reichsschlacht RoterWald,Eisland etc.. rausholt und das mit nur paar Klicks und ein bisschen warten.


PHP Code:
<?PHP

  
if(isset($_SESSION['user_admin']) && checkInt($_SESSION['user_admin']) && $_SESSION['user_admin']>=0) {
    
    echo
'<h2>Charakter resetten</h2>';
    
    if(isset(
$_GET['char']) && checkInt($_GET['char'])) {
      
$sqlCmd "SELECT player.name, player_index.empire, UNIX_TIMESTAMP(player.last_play) AS timeStamp 
        FROM player.player
        INNER JOIN player.player_index ON player.account_id = player_index.id
        WHERE player.id = '"
.$_GET['char']."'
        AND player.account_id = '"
.$_SESSION['user_id']."'
        LIMIT 1"
;
      
$sqlQry mysql_query($sqlCmd,$sqlServ);
    
      if(
mysql_num_rows($sqlQry)>0) {
        
$getChar mysql_fetch_object($sqlQry);
        
$difSpielzeit time()-$getChar->timeStamp;
        
$toGoTime = (120*60)-($difSpielzeit);
        
$toGoMin floor(($toGoTime)/120);
        
$toGoSek = ($toGoTime)%60;
        if((
$difSpielzeit/120)>=5) {
        
          
$sqlUpdate "UPDATE playe.player SET map_index='".$resetPos[$getChar->empire]['map_index']."', x='".$resetPos[$getChar->empire]['x']."', y='".$resetPos[$getChar->empire]['y']."',     exit_x='".$resetPos[$getChar->empire]['x']."', exit_y='".$resetPos[$getChar->empire]['y']."', exit_map_index='".$resetPos[$getChar->empire]['map_index']."', horse_riding='0' WHERE id='".$_GET['char']."' LIMIT 1";
          
$updatePos mysql_query($sqlUpdate,$sqlServ);
          if(
$updatePos) {
            echo 
'<p>Der Charakter &laquo;'.$getChar->name.'&raquo; wurde erfolgreich resettet und steht nun auf Map 1. Sollte dies nicht der Fall sein, loggen Sie sich bitte aus und warten einen Moment. Danach versuchen Sie diesen Vorgang erneut.</p>';
          }
          else { echo
'<p class="meldung">Ein Fehler ist aufgetreten, bitte melde dich bei einem Adminstrator.</p>'; }
          
        }
        else {
          echo
'<p class="meldung">Dein Charakter ist noch keine 5 Minuten ausgeloggt. Du musst noch '.$toGoMin.' Minuten und '.$toGoSek.' Sekunden warten.</p>';
        }
        
      }
      else {
        echo
'<p class="meldung">Dieser Charakter existiert nicht, bitte nachprüfen.</p>';
      }
  else {
    echo
'<p class="meldung">Um den Unstucker zu benutzen, musst du eingeloggt sein!.</p>';
  }
?>
Copyright by MS-Aiir7&Hennink.

Hoffe hab euch damit geholfen.
Falls es klappt lasst es mich wissen .
Da ich in der letzten Zeit nicht genug Zeit hab um es auszuprobieren.
So stell ich es mal sag ich mal "Pub"!
07/10/2010 02:51 LS-fanfan#2
schon wieder was von dir ^^

Also so wie ich das sehe ist das dann für die Homepage vom server oder ?

mal ein thx geben, hört sich echt gut an, aber ich werde es nicht gebrauchen können oder werden.
07/10/2010 02:55 .StyL#3
Jap das wird dann in der Homepage eingebaut.
Dann kommt da so ein kleines Panel
Wo du dein
ID: und Charname: eintragen musst dann wird der Charakter nach 5 - 15 minuten . Map1 geportet.
Das alles kann jeder spieler steuern.
07/10/2010 02:55 αίίR7 :3#4
PHP Code:
    if(strlen($_SESSION['id']) > 0) { 
man muss bereits eingeloggt sein, bzw. eine session gestartet haben, so wird es nich richtig funktionieren sofern man kein eigenes usercp hat mit einem gleichen aufbau anderer script's.

es seiden, du fügst ein
PHP Code:
$get ($_SESSION['id']) > && checkInt($_SESSION 
ein, wenn man bereits eingeloggt ist

meine script's sind ein bisschen anderst aufgebaut.
07/10/2010 02:57 .StyL#5
Quote:
Originally Posted by MSI.aiiR7 View Post
PHP Code:
    if(strlen($_SESSION['id']) > 0) { 
man muss bereits eingeloggt sein, bzw. eine session gestartet haben, so wird es nich richtig funktionieren sofern man kein eigenes usercp hat mit einem gleichen aufbau anderer script's.
Ihr könnt ruhig den Php Script verbessern :D
Ich bin auch grad nich der beste.
07/10/2010 03:07 αίίR7 :3#6
Quote:
Originally Posted by StyliZh View Post
Ihr könnt ruhig den Php Script verbessern :D
Ich bin auch grad nich der beste.
hehe, naja, is schon 'ganz ok', bin PHP auch noch nich so der beste.
kann nachher mal 'nen teil reinschreiben, von meinem "unstucker"
der keine 'session' verlangt oder sonstiges.

bei mir hab ich bissl mehr verändert, habe z.B noch drinne, dass man den unstucker nur alle 2 Stunden usen kann, sonst sind sie z.B im Roten Wald & wollen Map1 und nehmen das dann als teleport script xD
07/10/2010 03:09 .StyL#7
okay das werd ich dann auch In meinem 1sten post editieren.
so jetzt nachti machen :)
Völlig Kapput.
07/10/2010 03:13 ciao123#8
gute nacht mach weiter so ^^
07/10/2010 03:16 αίίR7 :3#9
So sah mein alter z.B aus:

Hat Hennink gescripted, habe ihn aber ein bisschen umgeändert.
Mein aktueller sieht viel anderster aus.

PHP Code:
<?PHP

  
if(isset($_SESSION['user_admin']) && checkInt($_SESSION['user_admin']) && $_SESSION['user_admin']>=0) {
    
    echo
'<h2>Charakter resetten</h2>';
    
    if(isset(
$_GET['char']) && checkInt($_GET['char'])) {
      
$sqlCmd "SELECT player.name, player_index.empire, UNIX_TIMESTAMP(player.last_play) AS timeStamp 
        FROM player.player
        INNER JOIN player.player_index ON player.account_id = player_index.id
        WHERE player.id = '"
.$_GET['char']."'
        AND player.account_id = '"
.$_SESSION['user_id']."'
        LIMIT 1"
;
      
$sqlQry mysql_query($sqlCmd,$sqlServ);
    
      if(
mysql_num_rows($sqlQry)>0) {
        
$getChar mysql_fetch_object($sqlQry);
        
$difSpielzeit time()-$getChar->timeStamp;
        
$toGoTime = (120*60)-($difSpielzeit);
        
$toGoMin floor(($toGoTime)/120);
        
$toGoSek = ($toGoTime)%60;
        if((
$difSpielzeit/120)>=5) {
        
          
$sqlUpdate "UPDATE playe.player SET map_index='".$resetPos[$getChar->empire]['map_index']."', x='".$resetPos[$getChar->empire]['x']."', y='".$resetPos[$getChar->empire]['y']."',     exit_x='".$resetPos[$getChar->empire]['x']."', exit_y='".$resetPos[$getChar->empire]['y']."', exit_map_index='".$resetPos[$getChar->empire]['map_index']."', horse_riding='0' WHERE id='".$_GET['char']."' LIMIT 1";
          
$updatePos mysql_query($sqlUpdate,$sqlServ);
          if(
$updatePos) {
            echo 
'<p>Der Charakter &laquo;'.$getChar->name.'&raquo; wurde erfolgreich resettet und steht nun auf Map 1. Sollte dies nicht der Fall sein, loggen Sie sich bitte aus und warten einen Moment. Danach versuchen Sie diesen Vorgang erneut.</p>';
          }
          else { echo
'<p class="meldung">Ein Fehler ist aufgetreten, bitte melde dich bei einem Adminstrator.</p>'; }
          
        }
        else {
          echo
'<p class="meldung">Dein Charakter ist noch keine 5 Minuten ausgeloggt. Du musst noch '.$toGoMin.' Minuten und '.$toGoSek.' Sekunden warten.</p>';
        }
        
      }
      else {
        echo
'<p class="meldung">Dieser Charakter existiert nicht, bitte nachprüfen.</p>';
      }
  else {
    echo
'<p class="meldung">Um den Unstucker zu benutzen, musst du eingeloggt sein!.</p>';
  }
?>