Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

[Script PHP] Parser online pour PWUM

Par Tyn' le 14/10/2002 à 15:51:51 (#2333815)

Script initialement proposé par... moi :p<?php
//:://////////////////////////////////////////////
//:: Scanneur de log PHP pour Neverwinter Nights
//:: pwum.php
//:://////////////////////////////////////////////
/*
Ce script décrit les variables enregistrées
par le système PWUM sur une page web.
*/
//:: Créé par : Tynril
//:: Créé le : 01/10/2002
//:://////////////////////////////////////////////

//Vous devez ici entrer l'adresse WEB ou FTP de vos logs serveurs.
//Ceux-ci doivent donc évidemment être partagés sur Internet!
//Vous pouvez néanmoins les proteger via HTACCESS,
//mais vous devrez alors ajouter votre nom d'utilisateur et
//mot de passe dans l'adresse (http://username:pass@www.monadresse.com/meslogs.txt)
$NeverWinterNightsLogsPath = "http://www.monsite.com/nwn/meslogs.txt";

function DrawHeader($title){
echo "\n";
echo " \n";
echo " $title\n";
echo " \n";
echo " \n";
}

function DrawFooter(){
echo "\n \n";
echo ";
}

function DrawTitle($title){
echo "\n$title";
}

function DrawSourceHeader(){
echo "\n//::///////////////////////////////////////////////\n
//:: Variables préenregistrées PWUM\n
//:: pwum.nss\n
//:: Copyright (c) Althea 2002\n
//:://////////////////////////////////////////////\n
/*\n
Ce script a été généré par le parser PWUM-Web\n
programmé par Tynril.\n
*/\n
//:://////////////////////////////////////////////\n
//:: Créé par : PWUM-Web Parser\n
//:: Créé le : ";
echo date("d/m/Y à H:i:s");
echo "\n
//:://////////////////////////////////////////////\n
#include \"inc_alt_generic\"\n
\n
void main()\n
{\n
object oUMArea;\n
vector vUMVector;\n
location lUMLoc;\n\n";
}

function DrawSourceFooter(){
echo "}";
}

DrawHeader("Parser PHP pour PWUM");
DrawTitle("Code source généré");
DrawSourceHeader();

$fp = fopen($NeverWinterNightsLogsPath,"r");

$Result = ";

while(!feof($fp)){
$line = fgets($fp,4096);
if(ereg(",$line))
{
//Cette ligne contient une valeur PWUM
//On efface la date et le sigle PWUM
$temp = ";
for($i = 0;$i < 4; $i++){
$temp = ";
for($j = 0; $j < strpos($line," ") + 1; $j++){
$temp .= $line[$j];
}
$line = str_replace($temp,",$line);
}
$line = str_replace(",",$line);



//On récupère le type de variable
$type = ";
for($i = 0;$i < strpos($line,"#");$i++){
$type .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On récupère son nom
$name = ";
for($i = 0;$i < strpos($line,"#");$i++){
$name .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On récupère sa valeur
$value = ";
for($i = 0;$i < strpos($line,"#");$i++){
$value .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On recupere son expiration
$expire = ";
for($i = 0;$i < strpos($line,"#");$i++){
$expire .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On recupere son Token
$token = ";
for($i = 0;$i < strpos($line,"#");$i++){
$token .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On recupere son extend
$extend = ";
for($i = 0;$i < strpos($line,"#");$i++){
$extend .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//echo $line;
//On test si la variable a déjà été enregistrée
if($type == "INT"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMInt(\".$name."\",".$VarTable[$name].",".$expire.",".$token.",".$extend.");";
}
$CodeLine = " SetPWUMInt(\".$name."\",".$value.",".$expire.",".$token.",".$extend.");";
}elseif($type == "STR"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMString(\".$name."\",\".$VarTable[$name]."\",".$expire.",".$token.",".$extend.");";
}
$CodeLine = " SetPWUMString(\".$name."\",\".$value."\",".$expire.",".$token.",".$extend.");";
}elseif($type == "FLT"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMFloat(\".$name."\",".$VarTable[$name].",".$expire.",".$token.",".$extend.");";
}
$CodeLine = " SetPWUMFloat(\".$name."\",".$value.",".$expire.",".$token.",".$extend.");";
}elseif($type == "LOC"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMInt(\".$name."\",".$VarTable[$name].",".$expire.",".$token.",".$extend.");";
}
$CodeLine = "SetPWUMInt(\".$name."\",".$value.",".$expire.",".$token.",".$extend.");";
}

if($VarTable[$name] != "){
$Result = str_replace($OldCodeLine,$CodeLine,$Result);
$VarTable[$name] = $value;
}else{
$Result .= $CodeLine.";
$VarTable[$name] = $value;
}
}
}
echo $Result;
DrawSourceFooter();
DrawFooter();
?>

Par Tynril le 22/11/2002 à 13:30:51 (#2618621)

Nouvelle version, j'avais pas remarqué qu'il y avait un énorme bug au niveau des locations http://forums.jeuxonline.info/ubb/tongue.gif C'est corrigé !<?php
//:://////////////////////////////////////////////
//:: Scanneur de log PHP pour Neverwinter Nights
//:: pwum.php
//:://////////////////////////////////////////////
/*
Ce script décrit les variables enregistrées
par le système PWUM sur une page web.
*/
//:: Créé par : Tynril
//:: Créé le : 01/10/2002
//:: Updt par : Tynril
//:: Updt le : 22/11/2002
//:://////////////////////////////////////////////

//Vous devez ici entrer l'adresse WEB ou FTP de vos logs serveurs.
//Ceux-ci doivent donc évidemment être partagés sur Internet!
//Vous pouvez néanmoins les proteger via HTACCESS,
//mais vous devrez alors ajouter votre nom d'utilisateur et
//mot de passe dans l'adresse (http://username:pass@www.monadresse.com/meslogs.txt)
$NeverWinterNightsLogsPath = "http://www.monsite.com/nwn/meslogs.txt";

function DrawSourceHeader(){
echo "\n//::///////////////////////////////////////////////
//:: Variables préenregistrées PWUM
//:: pwum.nss
//:: Copyright (c) Althea 2002
//:://////////////////////////////////////////////
/*
Ce script a été généré par le parser PWUM-Web
programmé par Tynril.
*/
//:://////////////////////////////////////////////
//:: Créé par : PWUM-Web Parser
//:: Créé le : ";
echo date("d/m/Y à H:i:s");
echo "
//:://////////////////////////////////////////////
#include \"inc_alt_generic\"

void main()
{
object oUMArea;
vector vUMVector;
location lUMLoc;";
}
function DrawSourceFooter() {
echo "}";
}
function ParseLogs2($Logs) {
$fp = fopen($Logs,"r");

$Result = ";

while(!feof($fp)){
$line = fgets($fp,8192);
if(ereg(",$line))
{
//Cette ligne contient une valeur PWUM
//On efface la date et le sigle PWUM
$temp = ";
for($i = 0;$i < 4; $i++){
$temp = ";
for($j = 0; $j < strpos($line," ") + 1; $j++){
$temp .= $line[$j];
}
$line = str_replace($temp,",$line);
}
$line = str_replace(",",$line);



//On récupère le type de variable
$type = ";
for($i = 0;$i < strpos($line,"#");$i++){
$type .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On récupère son nom
$name = ";
for($i = 0;$i < strpos($line,"#");$i++){
$name .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On récupère sa valeur
$value = ";
for($i = 0;$i < strpos($line,"#");$i++){
$value .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On recupere son expiration
$expire = ";
for($i = 0;$i < strpos($line,"#");$i++){
$expire .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On recupere son Token
$token = ";
for($i = 0;$i < strpos($line,"#");$i++){
$token .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//On recupere son extend
$extend = ";
for($i = 0;$i < strpos($line,"#");$i++){
$extend .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";

//S'il s'agit d'une location, on recupere le tag, les coordonées et le facing
if($type == "LOC"){
$loctag = ";
$locx = ";
$locy = ";
$locz = ";
$locfacing = ";
//Le tag
for($i = 0;$i < strpos($value,"*");$i++){
$loctag .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
//La coordonée X
for($i = 0;$i < strpos($value,"*");$i++){
$locx .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
//La coordonée Y
for($i = 0;$i < strpos($value,"*");$i++){
$locy .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
//La coordonée Z
for($i = 0;$i < strpos($value,"*");$i++){
$locz .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
//Le facing
for($i = 0;$i < strpos($value,"*");$i++){
$locfacing .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
}

//echo $line;
//On test si la variable a déjà été enregistrée
if($type == "INT"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMInt(\".$name."\",".$VarTable[$name].",".$expire.",".$token.",".$extend.");";
}
$CodeLine = " SetPWUMInt(\".$name."\",".$value.",".$expire.",".$token.",".$extend.");";
}elseif($type == "STR"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMString(\".$name."\",\".$VarTable[$name]."\",".$expire.",".$token.",".$extend.");";
}
$CodeLine = " SetPWUMString(\".$name."\",\".$value."\",".$expire.",".$token.",".$extend.");";
}elseif($type == "FLT"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMFloat(\".$name."\",".$VarTable[$name].",".$expire.",".$token.",".$extend.");";
}
$CodeLine = " SetPWUMFloat(\".$name."\",".$value.",".$expire.",".$token.",".$extend.");";
}elseif($type == "LOC"){
if($VarTable[$name][loctag] != "){
$OldCodeLine1 = "oUMArea=GetObjectByTag(\".$VarTable[$name][loctag]."\");";
$OldCodeLine2 = "vUMVector=Vector(".$VarTable[$name][locx].",".$VarTable[$name][locy].",".$VarTable[$name][locz].");";
$OldCodeLine3 = "lUMLoc=Location(oUMArea,vUMVector,".$VarTable[$name][locfacing].");";
$OldCodeLine4 = "SetPWUMLocationC(\".$name."\", lUMLoc, ".$expire.",".$token.",".$extend.");";
}
$CodeLine1 = "oUMArea=GetObjectByTag(\".$loctag."\");";
$CodeLine2 = "vUMVector=Vector(".$locx.",".$locy.",".$locz.");";
$CodeLine3 = "lUMLoc=Location(oUMArea,vUMVector,".$locfacing.");";
$CodeLine4 = "SetPWUMLocationC(\".$name."\", lUMLoc, ".$expire.",".$token.",".$extend.");";
}

if($VarTable[$name] != "){
if($type "LOC"){
$Result = str_replace($OldCodeLine,$CodeLine,$Result);
$VarTable[$name] = $value;
} else {
$Result = str_replace($OldCodeLine1,$CodeLine1,$Result);
$Result = str_replace($OldCodeLine2,$CodeLine2,$Result);
$Result = str_replace($OldCodeLine3,$CodeLine3,$Result);
$Result = str_replace($OldCodeLine4,$CodeLine4,$Result);
$VarTable[$name][loctag] = $loctag;
$VarTable[$name][locx] = $locx;
$VarTable[$name][locy] = $locy;
$VarTable[$name][locz] = $locz;
$VarTable[$name][locfacing] = $locfacing;
}
}else{
if($type "LOC"){
$Result .= $CodeLine.";
$VarTable[$name] = $value;
} else {
$Result .= $CodeLine1.";
$Result .= $CodeLine2.";
$Result .= $CodeLine3.";
$Result .= $CodeLine4.";
$VarTable[$name][loctag] = $loctag;
$VarTable[$name][locx] = $locx;
$VarTable[$name][locy] = $locy;
$VarTable[$name][locz] = $locz;
$VarTable[$name][locfacing] = $locfacing;
}
}
}
}
if($Result == ") $Result = "//Pas de variables PWUM stockées dans le log !";
echo $Result;
}
function ParseLogs($Logs) {
$Return = DrawSourceHeader();
$Return .= ParseLogs2($Logs);
$Return .= DrawSourceFooter();
return $Return;
}
echo ParseLogs($NeverWinterNightsLogsPath);
?>

Par Tynril le 7/12/2002 à 18:52:27 (#2732686)

Encore une nouvelle version qui marche maintenant sous Linux (ce qui n'était pas le cas avant :rolleyes: ) :<?php
//:://////////////////////////////////////////////
//:: Scanneur de log PHP pour Neverwinter Nights
//:: pwum.php
//:://////////////////////////////////////////////
/*
Ce script décrit les variables enregistrées
par le système PWUM sur une page web.
*/
//:: Créé par : Tynril
//:: Créé le : 01/10/2002
//:: Updt par : Tynril
//:: Updt le : 22/11/2002
//:://////////////////////////////////////////////

//Vous devez ici entrer l'adresse WEB ou FTP de vos logs serveurs.
//Ceux-ci doivent donc évidemment être partagés sur Internet!
//Vous pouvez néanmoins les proteger via HTACCESS,
//mais vous devrez alors ajouter votre nom d'utilisateur et
//mot de passe dans l'adresse (http://username:pass@www.monadresse.com/meslogs.txt)
$NeverWinterNightsLogsPath = "/logs.0/nwserverLog1.txt";
function DrawSourceHeader(){
echo "\n//::///////////////////////////////////////////////
//:: Variables préenregistrées PWUM
//:: pwum.nss
//:: Copyright (c) Althea 2002
//:://////////////////////////////////////////////
/*
Ce script a été généré par le parser PWUM-Web
programmé par Tynril.
*/
//:://////////////////////////////////////////////
//:: Créé par : PWUM-Web Parser
//:: Créé le : ";
echo date("d/m/Y à H:i:s");
echo "
//:://////////////////////////////////////////////
#include \"inc_alt_generic\"

void main()
{
object oUMArea;
vector vUMVector;
location lUMLoc;";
}
function DrawSourceFooter() {
echo "}";
}
function ParseLogs2($Logs) {
$fp = file($Logs);

$Result = ";

foreach ($fp as $key => $value){
$line = $value;
if(ereg(",$line))
{
//Cette ligne contient une valeur PWUM
//On vire les ptits points a la con
$del = strpos($line,"[") + 29;
$line = trim(substr($line,$del,strlen($line)-$del));
//On efface la date et le sigle PWUM

//On récupère le type de variable
$type = ";
for($i = 0;$i < strpos($line,"#");$i++){
$type .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";
$type = trim($type);

//On récupère son nom
$name = ";
for($i = 0;$i < strpos($line,"#");$i++){
$name .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";
$name = trim($name);

//On récupère sa valeur
$value = ";
for($i = 0;$i < strpos($line,"#");$i++){
$value .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";
$value = trim($value);

//On recupere son expiration
$expire = ";
for($i = 0;$i < strpos($line,"#");$i++){
$expire .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";
$expire = trim($expire);

//On recupere son Token
$token = ";
for($i = 0;$i < strpos($line,"#");$i++){
$token .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";
$token = trim($token);

//On recupere son extend
$extend = ";
for($i = 0;$i < strpos($line,"#");$i++){
$extend .= $line[$i];
$line[$i] = ";
}
$line[$i] = ";
$extend = trim($extend);

//S'il s'agit d'une location, on recupere le tag, les coordonées et le facing
if($type == "LOC"){
$loctag = ";
$locx = ";
$locy = ";
$locz = ";
$locfacing = ";
//Le tag
for($i = 0;$i < strpos($value,"*");$i++){
$loctag .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
$loctag = trim($loctag);
//La coordonée X
for($i = 0;$i < strpos($value,"*");$i++){
$locx .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
$locx = trim($locx);
//La coordonée Y
for($i = 0;$i < strpos($value,"*");$i++){
$locy .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
$locy = trim($locy);
//La coordonée Z
for($i = 0;$i < strpos($value,"*");$i++){
$locz .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
$locz = trim($locz);
//Le facing
for($i = 0;$i < strpos($value,"*");$i++){
$locfacing .= $value[$i];
$value[$i] = ";
}
$value[$i] = ";
$locfacing = trim($locfacing);
}

//echo $type."\n";
//On test si la variable a déjà été enregistrée
if($type == "INT"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMInt(\".$name."\",".$VarTable[$name].",".$expire.",".$token.",".$extend.");";
}
$CodeLine = "SetPWUMInt(\".$name."\",".$value.",".$expire.",".$token.",".$extend.");";
}elseif($type == "STR"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMString(\".$name."\",\".$VarTable[$name]."\",".$expire.",".$token.",".$extend.");";
}
$CodeLine = "SetPWUMString(\".$name."\",\".$value."\",".$expire.",".$token.",".$extend.");";
}elseif($type == "FLT"){
if($VarTable[$name] != "){
$OldCodeLine = "SetPWUMFloat(\".$name."\",".$VarTable[$name].",".$expire.",".$token.",".$extend.");";
}
$CodeLine = "SetPWUMFloat(\".$name."\",".$value.",".$expire.",".$token.",".$extend.");";
}elseif($type == "LOC"){
if($VarTable[$name][loctag] != "){
$OldCodeLine1 = "oUMArea=GetObjectByTag(\".$VarTable[$name][loctag]."\");";
$OldCodeLine2 = "vUMVector=Vector(".$VarTable[$name][locx].",".$VarTable[$name][locy].",".$VarTable[$name][locz].");";
$OldCodeLine3 = "lUMLoc=Location(oUMArea,vUMVector,".$VarTable[$name][locfacing].");";
$OldCodeLine4 = "SetPWUMLocationC(\".$name."\", lUMLoc, ".$expire.",".$token.",".$extend.");";
}
$CodeLine1 = "oUMArea=GetObjectByTag(\".$loctag."\");";
$CodeLine2 = "vUMVector=Vector(".$locx.",".$locy.",".$locz.");";
$CodeLine3 = "lUMLoc=Location(oUMArea,vUMVector,".$locfacing.");";
$CodeLine4 = "SetPWUMLocationC(\".$name."\", lUMLoc, ".$expire.",".$token.",".$extend.");";
}
if($VarTable[$name] != "){
if($type != "LOC"){
$Result = str_replace($OldCodeLine,$CodeLine,$Result);
$VarTable[$name] = $value;
} else {
$Result = str_replace($OldCodeLine1,$CodeLine1,$Result);
$Result = str_replace($OldCodeLine2,$CodeLine2,$Result);
$Result = str_replace($OldCodeLine3,$CodeLine3,$Result);
$Result = str_replace($OldCodeLine4,$CodeLine4,$Result);
$VarTable[$name][loctag] = $loctag;
$VarTable[$name][locx] = $locx;
$VarTable[$name][locy] = $locy;
$VarTable[$name][locz] = $locz;
$VarTable[$name][locfacing] = $locfacing;
}
}else{
if($type != "LOC"){
$Result .= $CodeLine.";
$VarTable[$name] = $value;
} else {
$Result .= $CodeLine1.";
$Result .= $CodeLine2.";
$Result .= $CodeLine3.";
$Result .= $CodeLine4.";
$VarTable[$name][loctag] = $loctag;
$VarTable[$name][locx] = $locx;
$VarTable[$name][locy] = $locy;
$VarTable[$name][locz] = $locz;
$VarTable[$name][locfacing] = $locfacing;
}
}
}
}
if($Result == ") $Result = "//Pas de variables PWUM stockées dans le log !";
echo $Result;
}
DrawSourceHeader();
ParseLogs2($NeverWinterNightsLogsPath);
DrawSourceFooter();
?>

Par Iridian le 5/1/2003 à 11:29:39 (#2948265)

Petite question.
Je vois :
$OldCodeLine = "SetPWUMInt(\".$name."\",".$VarTable[$name].",".$expire.",".$token.",".$extend.");";

Pourtant lorsque j'ouvre pwum_functions je trouve :

void SetPWUMInt(string var_name, int var_val)


Que deviennent $expire, $token et $extend ?

Par Tynril le 5/1/2003 à 15:23:25 (#2949727)

La version du PWUM qui était utilisée pour ce parser possedait des attributs token, expire et extend. Je ne sais pas pour les plus récentes. :)

Par coolstar le 5/1/2003 à 15:35:31 (#2949803)

Què boulot!!! :eek:

Par RAT le 5/1/2003 à 16:47:20 (#2950234)

c'est la plus recente , celle qui possede des token , expire et extend etc... lol

Par Iridian le 5/1/2003 à 17:59:23 (#2950802)

Arf pourtant je possède la plus récente que j'ai pu trouver (sur le vault) !

Par RAT le 5/1/2003 à 19:51:02 (#2951670)

normal sur vault c'est l'une des plus anciennes, j'avais fais l'erreur aussi.

je t'envoie par email la derniere si tu veux.

Par coolstar le 5/1/2003 à 20:23:53 (#2951916)

Heeuuu... ça serait pas mieux d'en faire profiter tout le monde par un lien, genre?? :D

Par RAT le 5/1/2003 à 20:28:53 (#2951952)

Heuuu oui... tu as raison , excuse moi lol, je pensais que tout le monde avait cette version, je l'avais télécharger directement du site ambrosia.


voici le lien :

pwum 2.1

Par coolstar le 5/1/2003 à 20:35:58 (#2951996)

Tout le monde?? Tu veux dire que Iridian n'est pas tout le monde? :D

Par RAT le 5/1/2003 à 20:58:24 (#2952153)

Mdr coolstar, je parlais d'une généralité de personne :). :D:D


On va réussir à se comprendre loool :D

Par Iridian le 5/1/2003 à 21:10:30 (#2952242)

Merci pour la version :)
De mon coté je n'ai plus qu'a remettre tout ces trucs la (que j'avais mis en commentaire en attendant), ajouter la compilation du code (qui pour l'instant est dans un fichier test) et on a un parser en delphi.

Le reste ne sera que détail (lancer le serveur avec ligne de commande).

A condition que mon code soit suffisamment rapide et sans trop de failles bien sur :)

Par coolstar le 5/1/2003 à 22:30:26 (#2952752)


/* Script servant à noyer les RATS - By coolstar - */

void Pudding(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE)
{
location lLocation = "Généralité" == "Presque Tout le Monde" != "Tout le Monde";
CreateObject(OBJECT_TYPE_ITEM, "pwum 2.1", lLocation);
}


Mais si on se comprends RAT! C'est Just que je suis un PUDDER... :ange:

Par RAT le 5/1/2003 à 23:27:35 (#2953056)

trop fort coolstar :D:D:D lol


il faudrait au moins pour commencer, que le parser lance automatiquement le nwnserver kan le parser delphi se lance, et une petite interface qui permettrait de relancer le server en cas de crash au bout de n minutes. Ce qui aménerait un super avantage pour commencer, plus besoin de relancer le server manuellement. plus besoin d'avoir un admin présent 24h/24 et 7jrs/7 quand on sait qu un serveur nwn a tendance à tomber super facilement.

Par Iridian le 6/1/2003 à 8:03:08 (#2954453)

Provient du message de RAT
trop fort coolstar :D:D:D lol


il faudrait au moins pour commencer, que le parser lance automatiquement le nwnserver kan le parser delphi se lance, et une petite interface qui permettrait de relancer le server en ças de crash au bout de n minutes. Ce qui aménerait un super avantage pour commencer, plus besoin de relancer le server manuellement. plus besoin d'avoir un admin présent 24h/24 et 7jrs/7 quand on sait qu un serveur nwn a tendance à tomber super facilement.


Oui, et pour ça il faut intégrer les différentes options de lancement en lignes de commandes à l'interface sus nommée :)

Quand au fait de surveiller une appli pour détecter un crash, je me renseigne de suite mais ca ne doit pas être bien sorcier.

A noter que j'attends toujours de gros logs pour tester le programme plus en profondeur ;)

Par Dudu99 le 6/1/2003 à 12:58:05 (#2955843)

arg, rien à dvlp pour surveiller un crash sous windows NT/2000/xp et linux:

lancer l'application en tant que service/deamon suffit:

tout cela est gérer en natif par le systeme:

- demander l'etat du service: (demarré, stoppé, en cours de demarrage, en cours d'extinction ...)

- lancer un fichier de commande à l'arret, au demarrage ...

et puis si tous ces outils en ligne de commande ne suffisent pas il en existe une ribambelle de dispo dont des totalement gratuit.

exemple ici pour la version lite: http://www.firedaemon.com/ pour un avec environnement graphique.

de plus j'aimerai vs faire reflechir sur la possibilité de ne pas tout inclure dans le parseur, est ce vraiment lui qui doit se charger de touttes les taches y compris lancer/relancer nwnserver?

plus volubile là dessus plus tard se fait grand faim

Par coolstar le 6/1/2003 à 13:07:39 (#2955915)

:mdr:

Par RAT le 6/1/2003 à 14:17:43 (#2956406)

Provient du message de Iridian
A noter que j'attends toujours de gros logs pour tester le programme plus en profondeur ;)



Je ne sais pas si je peux t'aider la dessus,car n'ayant que des modules de tests, je ne brasse pas beaucoup d'information là dessus. Mon plus gros ne fait que 30ko lol. Par contre, je peux l'augmenter en le modifiant lègérement :D:D:D

Par Iridian le 6/1/2003 à 15:25:12 (#2956815)

En fait ce qu'il me faudrai, c'est un log avec au moins 3-4 variables de chaque type, chacune modifié au moins une fois, certaines effacées, d'autres effacées puis recréés, enfin tu vois le tableau quoi :)

L'ideal aurait-été un "vrai" log, mais si personne n'en a, je vais en faire un a la main pour tester.

Par Jaha Effect le 7/1/2003 à 21:51:33 (#2968391)

Alors il dis quoi se parser?

Jaha Effect :D

Par Iridian le 7/1/2003 à 23:15:32 (#2968958)

Pour l'instant :
-Parser/codeur = fini et testé
-Interface serveur (pour définir la ligne de commande de lancement) = fini et testé (a l'instant)

Reste a brancher le compilateur et le serveur, puis tester en "réel".

pour info voici le code fournis suite au parsing du log de test fournis avec la dernière version de PWUM :


#include "pwum_functions"
void main()
{
SetPWUMInt("iPWUMDate", 461161, 121000000, 0, 0);
SetPWUMInt("iExpire", 1, 461162, 3, 0);
SetPWUMInt("iRenew", 1, 461162, 2, 1);
SetPWUMFloat("fTest", 360.500000000, 461176, 2, 0);
SetPWUMString("sTest", "TestString,alldefault", 121000000, 0, 0);
SetPWUMLocationA("lTest", "PreGameArena", 26.285684586, 14.379094124, 0.000009537, -44.999870300, 121000000, 0, 0);
}


Moi ca me parait correct, mais je ne suis pas expert (loin de la) de PWUM, donc si quelqu'un pouvait confirmer/infirmer que ca fonctionne ...

Par RAT le 8/1/2003 à 0:17:28 (#2969304)

Hmmm c presque ça!
on fait tu as oublié juste de définir 3 variables au début et pour la localisation ce n'est pas exactement ça.

voila ce que cela doit donner normalement.




/* Persistent World Universal Mind System
DESC: Contains the function that brings in the persistent data from another module.
ORIGINAL CREATOR, v1.8: drako_wolfheart
v2.0 CHANGES: DragonTayl
*/
#include "pwum_functions"

void main()
{
object oUMArea;
vector vUMVector;
location lUMLoc;

SetPWUMInt("iPWUMDate", 461161, 121000000, 0, 0);
SetPWUMInt("iExpire", 1, 461162, 3, 0);
SetPWUMInt("iRenew", 1, 461162, 2, 1);
SetPWUMString("sTest", "Test String, all default", 121000000, 0, 0);
SetPWUMFloat("fTest", 360.500000000, 461176, 2, 0);
oUMArea=GetObjectByTag("PreGameArena");
vUMVector=Vector( 26.285684586, 14.379095078, 0.000009537);
lUMLoc=Location(oUMArea, vUMVector, -44.999866486);
SetPWUMLocationC("lTest", lUMLoc, 121000000, 0, 0);

}




En fait tu as oublié d'enregistrer les différentes valeurs des vecteurs et après de le placer dans une nouvelle location et enfin de l'affecter au SetPWUMLocation, qui est la lettre C :) et non A.

Sinon bravo à toi iridian, et désolé de ne pas pouvoir t'aider pour l'instant n'ayant pas eu le temps encore d installer delphi. Par contre est ce ke je pourrai avoir l'open source pour t'aider des que je l'ai "installé" et commencer avec toi à prévoir la suite de ce qu'on voulait :).

Par coolstar le 8/1/2003 à 0:28:27 (#2969377)

:maboule:

Par Iridian le 8/1/2003 à 8:44:08 (#2970434)

Provient du message de RAT

En fait tu as oublié d'enregistrer les différentes valeurs des vecteurs et après de le placer dans une nouvelle location et enfin de l'affecter au SetPWUMLocation, qui est la lettre C :) et non A.


C'est bien noté, je suis content d'être si prêt du vrai :) Merci

Provient du message de RAT

Sinon bravo à toi iridian, et désolé de ne pas pouvoir t'aider pour l'instant n'ayant pas eu le temps encore d installer delphi. Par contre est ce ke je pourrai avoir l'open source pour t'aider des que je l'ai "installé" et commencer avec toi à prévoir la suite de ce qu'on voulait :).


Sans problèmes, je ne te le fournis pas pour l'instant pour éviter la prolifération de version a différents stades de développements, mais des que tu as installé Delphi préviens moi :)
(si tu ne te dépêches pas ce sera fini :maboule: )

[edit] bon bin j'ai terminé tout ca, me reste a refaire un grand test (ce soir) et creer un module de demonstration.

J'en profite pour demander humblement à Tynril s'il me permet de reprendre ses scripts et y ajouter quelques fonctions. :merci:
[/edit]

JOL Archives 1.0.1
@ JOL / JeuxOnLine