Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > [Script PHP] Parser online pour PWUM
[Script PHP] Parser online pour PWUM
Par Tyn' le 14/10/2002 à 15:51:51 (#2333815)
//:://////////////////////////////////////////////
//:: 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)
//:://////////////////////////////////////////////
//:: 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)
//:://////////////////////////////////////////////
//:: 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)
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)
Par coolstar le 5/1/2003 à 15:35:31 (#2949803)
Par RAT le 5/1/2003 à 16:47:20 (#2950234)
Par Iridian le 5/1/2003 à 17:59:23 (#2950802)
Par RAT le 5/1/2003 à 19:51:02 (#2951670)
je t'envoie par email la derniere si tu veux.
Par coolstar le 5/1/2003 à 20:23:53 (#2951916)
Par RAT le 5/1/2003 à 20:28:53 (#2951952)
voici le lien :
pwum 2.1
Par coolstar le 5/1/2003 à 20:35:58 (#2951996)
Par RAT le 5/1/2003 à 20:58:24 (#2952153)
On va réussir à se comprendre loool :D
Par Iridian le 5/1/2003 à 21:10:30 (#2952242)
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)
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)
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)
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)
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)
Jaha Effect :D
Par Iridian le 7/1/2003 à 23:15:32 (#2968958)
-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)
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)
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 :) MerciProvient 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