Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Neues Grid aka Aufbau OpenSim mit Robust und Co...
#31
(10.11.2018, 18:18)brenner23 schrieb: Habe fertig und noch was hinzugefügt...
Diese Version ist umbgebbaut, der XML Content habe ich in seine Bestandteile zerlegt und alles wegefiltert, was unwichtig ist, dann das witige in Variabeln verpackt und Global gesetzt in den Fuktionen...
Dann habe ich noch wenn jemand kein Monexmodul eingaubaut hat eine Fehlermeldung im Landverkauf eingebaut, das man sich sinngemäß beim Parcell Owner melden soll.. weil das Land/Parzelle mehr als 0 kosten soll ....

die XLOG ist für debuging zwecke geeignet, die URL google.de kann gegen eure ausgetauscht werden...

PHP-Code:
<?php
error_reporting
(E_ALL  & ~E_NOTICE); 

# Copyright (c)Melanie Thielker and Teravus Ovares (http://opensimulator.org/)
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions are met:
#      * Redistributions of source code must retain the above copyright
#        notice, this list of conditions and the following disclaimer.
#      * Redistributions in binary form must reproduce the above copyright
#        notice, this list of conditions and the following disclaimer in the
#        documentation and/or other materials provided with the distribution.
#      * Neither the name of the OpenSim Project nor the
#        names of its contributors may be used to endorse or promote products
#        derived from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
#  DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
#  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
#  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
#  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
#  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
#  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# updated for Robust installations: BlueWall 2011
# further minor changes by justincc (http://justincc.org)

  
function xlog($text) {
    global 
$IP;
    
$datum   date("Y-m-d H:i:s");
    
$fh fopen('landtool.log''a'); // bitte anpassen
    
fwrite($fh$datum."# ".$IP."|".$text."\n");
    
fclose($fh);
}
    
xlog(".. ");    
    
$request_xml file_get_contents("php://input");
    
//xlog("Call... request_xml -  ".$request_xml);


  # Settings
  
$dbhost "127.0.0.1";
  
$dbname "opensim";
  
$dbuser "opensim";
  
$dbpass "opensim123";
  
# Tables
  
$presence "Presence";
  
  
# Splt Post raw Content as an effect because somethin does not more run under php 7.x
  
$search  = array('<''>''methodCall''?xml version="1.0"?''/''xxx''methodName''membername' 'params' 'param' 'value' 'struct''member''name''string''int'); 
  
$xml str_replace($search">" ,$request_xml);
  
$search  = array( '>>'); 
  
$xml str_replace($search">" ,$xml);
  
$xml str_replace($search">" ,$xml);
  
$xml str_replace($search">" ,$xml);
  
$xml str_replace($search">" ,$xml);
  
$xml str_replace($search">" ,$xml);
  
$xml str_replace($search">" ,$xml);
  
$xml_split preg_split("[>]"$xml); 
      
//xlog("Call... xml 0 ".$xml);
    //  0 n/a
    //  1 preflightBuyLandPrep
    
$method_name $xml_split[1];
    
//xlog("Call... method_name : ".$method_name );
    //  2 agentId
    //  3 d8384ae7-ae6a-4a36-a254-9d62f59f695f
    
$agentId $xml_split[3];
    
//xlog("Call... agentId : ".$agentId );
    //  4 secureSessionId
    //  5 0f5eddde-13ef-4aaa-85f6-03134566ef3f
    
$secureSessionId $xml_split[5];
    
//xlog("Call... secureSessionId : ".$secureSessionId );
    //  6 language
    //  7 de
    //  8 billableArea 
    //  9 0
    
$billableArea $xml_split[9];
    
//xlog("Call... billableArea : ".$billableArea );
    //  10 currencyBuy 
    //  11 0  
    
$amount $xml_split[11];
    
//xlog("Call... amount : ".$amount );
    //  12 n/a
    //xlog("Call... xml_split 0 ".$xml_split[0]);
    //xlog("Call... xml_split 1 ".$xml_split[1]);
    //xlog("Call... xml_split 2 ".$xml_split[2]);
    //xlog("Call... xml_split 3 ".$xml_split[3]);
    //xlog("Call... xml_split 4 ".$xml_split[4]);
    //xlog("Call... xml_split 5 ".$xml_split[5]);
    //xlog("Call... xml_split 6 ".$xml_split[6]);
    //xlog("Call... xml_split 7 ".$xml_split[7]);
    //xlog("Call... xml_split 8 ".$xml_split[8]);
    //xlog("Call... xml_split 9 ".$xml_split[9]);
    //xlog("Call... xml_split 10 ".$xml_split[10]);
    //xlog("Call... xml_split 11 ".$xml_split[11]);
    //xlog("Call... xml_split 12 ".$xml_split[12]);

  
  # XMLRPC
  
$xmlrpc_server xmlrpc_server_create();
  
xmlrpc_server_register_method($xmlrpc_server"preflightBuyLandPrep""buy_land_prep");
////////////////////////////////////////////

function validate_user($agent_id$s_session_id)
  {
    global 
$dbhost$dbuser$dbpass$dbname;
    
//$agentid = mysql_escape_string($agentId);
    //$sessionid = mysql_escape_string($secureSessionId);
       
    # New MySqli Connect
    
$mysqli = new mysqli($dbhost$dbuser$dbpass$dbname);
    if (
$mysqli->connect_found) {
    die(
"Connection failed: " $mysqli->connect_found);
    }
    
# New MySqli Connect end
    
    
$query "select UserID from Presence where UserID='".$agent_id."' and SecureSessionID = '".$s_session_id."'";
//    $result = mysql_query($query)
//      or die('ERROR: '.mysql_error());
//    $row = mysql_fetch_assoc($result);
//    return $row['UserID'];
//  }
    # New MySqli Event
    
$result $mysqli->query($query);
    if (
$result->num_rows 0) {
    while(
$row $result->fetch_assoc()) {
    
#
    
$UserID $row['UserID'];
        
//xlog("validate_user Succsess! [".$query."]");
    
}} else {
      
    
// xlog("validate_user Fail! [".$query."]");
     
return ; 
    }
    
# New MySqli Event end
    
return $UserID;
}
//xlog("Call... Function Test validate_user  a ".validate_user($agentId, $secureSessionId)) ;


    //xlog("Call... method_name :> ".$method_name );
    //xlog("Call... agentId :> ".$agentId );
    //xlog("Call... secureSessionId :> ".$secureSessionId );

function buy_land_prep($method_name)
  {
    global 
$dbhost$dbuser$dbpass$dbname $agentId$secureSessionId$amount$billableArea;
    
$confirmvalue "";
    
    
//xlog("Call.buy_land_prep. method_name :>> ".$method_name );
    //xlog("Call.buy_land_prep. agentId :>> ".$agentId );
    //xlog("Call.buy_land_prep. secureSessionId :>> ".$secureSessionId );
    //xlog("Call.buy_land_prep. amount :>> ".$amount );
    //xlog("Call.buy_land_prep. billableArea :>> ".$billableArea );    

    
$ID validate_user($agentId$secureSessionId);
    
//xlog("Call.buy_land_prep. ID :>>> ".$ID );

    
if ( $amount != 0) {
      
header("Content-type: text/xml");
      
$response_xml xmlrpc_encode(array(
        
'success' => False,
        
'errorMessage' => "\n\nLand/Parcels can only sell for 0!\nCall the Landowner ....",
        
'errorURI' => "http://www.google.de"));
      print 
$response_xml;
      return;
  } 

  if(
$ID)
    {
      
$membership_levels = array(
        
'levels' => array(
        
'id' => "00000000-0000-0000-0000-000000000000",
        
'description' => "some level"));
      
$landUse = array(
        
'upgrade' => False,
        
'action'  => "http://www.google.de");
      
$currency = array(
        
'estimatedCost' =>  "200.00");     // convert_to_real($amount));
      
$membership = array(
        
'upgrade' => False,
        
'action'  => "http://www.google.de",
        
'levels'  => $membership_levels);
      
$response_xml xmlrpc_encode(array(
         
'success'    => True,
         
'currency'   => $currency,
         
'membership' => $membership,
         
'landUse'    => $landUse,
         
'currency'   => $currency,
         
'confirm'    => $confirmvalue));
       
header("Content-type: text/xml");
       print 
$response_xml;
    }
    else
    {    
      
header("Content-type: text/xml");
      
$response_xml xmlrpc_encode(array(
        
'success' => False,
        
'errorMessage' => "\n\nUnable to Authenticate\n\nClick URL for more info.",
        
'errorURI' => "http://www.google.de"));
      print 
$response_xml;
    }
    
    return 
"";
  }

////////////////////////////////////////////

  #$request_xml = $HTTP_RAW_POST_DATA;
  
$request_xml file_get_contents("php://input");
  
xmlrpc_server_call_method($xmlrpc_server$request_xml'');
  
xmlrpc_server_destroy($xmlrpc_server);
?>

probiert es mal aus ... und meldet mir mal ob es bei euch funktioniert...

Ich würde gerne hier mal eine Zip hinterlegen mit inhalt landtool.php ... aber vlt kann es jemand hier mal machen

lg

//So ich füge mal das Lantool.php Script hier als PastBin ein, ist in meinen Augen doppeltgemoppelt, weil es ja hier in einem CodeBlock ja schon vorhanden ist. Dachte es wären mehere Dateien, dann wäre ein ZipDatei ansprechend gewesen ;D
https://paste.md-5.net/vutoxafeqa.php
<--- Bogus

Ich habe das mal mit der DTL/NSL Money Server von Fumi.Iseki und NSL http://www.nsl.tuis.ac.jp Version getestet, es funktioniert gut zusammen.
Meine etwas abgewandelte Version ist unter Github zu bekommen: https://github.com/BigManzai/OpenSimCurrencyServer-2020

Kopiere einfach die Verzeichnisse /addon-modules und /bin in deinen OpenSim Quelltext (Gleiche Verzeichnisse überschreiben).
Aus dem Verzeichnis /helper benötigst du nur landtool.php diese machst du in deinem Web Verzeichnis /helper (Konfigurieren nicht vergessen) und setzt den Link in deine robust.ini.

Getestet mit OpenSim 0.9.2.605

Das gleiche müsste man nur noch mit der currency.php machen.
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



Zitieren
#32
Ich arbeite gerade an currency.php und habe schon eine menge Fehler beheben können.
currency.php spuckt jetzt eine menge Informationen aus,
diese werden in der Datei currency.log gespeichert.
https://github.com/BigManzai/OpenSimCurr...ter/helper

Dazu habe ich auch mein Server mit OpenSim 0.9.2.670 upgegradet.
Download der mono Version mit MoneyServer:
http://www.mediafire.com/file/cvv208sia3...0.zip/file

@brenner23 dein xlog ist ja das genialste, was ich in der PHP Welt gesehen habe Smile
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Automatische Einstellung einer IP beim Start von OpenSim royalgrid 6 178 26.03.2024, 14:31
Letzter Beitrag: Manfred Aabye
  Neues Grid aufsetzen mit Server(Fragen) JonnyB 14 14.029 22.06.2019, 07:33
Letzter Beitrag: Dorena Verne
  Database Cleanup Script [OpenSim 0.9.x] bimbam2103 29 22.142 15.05.2019, 10:54
Letzter Beitrag: Manfred Aabye
  Upgrade Erfahrungen OpenSim 0.9.1, Mono 5.x unter Linux: Data Rossini 12 15.214 12.02.2019, 13:16
Letzter Beitrag: Pius Noel
  OpenSim Compile brenner23 7 8.023 17.11.2018, 20:54
Letzter Beitrag: Pius Noel

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste