La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 21/09/2024 22:37:21


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 08/07/2005 03:11:32 Sujet du message : Tricheur, Prener garde

Je cherche quelqu'un qui pourrait concevoir un script pour empêcher la duplication d'arme et d'armure. J'aimerais que ce script fonctionne de la façon suivante si c'est faisable bien sur!!
Si un joueur tente une duplication,(Duplication qui se produit la majorité du temps lors d'un déco-reco après une modification d'arme ou d'armure) il meurt sur le coup sans que personne, autre qu'un MD puisse le ressusciter.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
Répondre en citant
Posté le : 08/07/2005 05:42:14 Sujet du message :

Je suis confronté aussi a ce problème, de plus, cela n'agit pas que sur la duplication des objet mais une personne n'ayant pas investit de point dans la competence artisanat peu crafter un item sans depenser d'or et sans savoir le faire.Sad


Mon module utilise le CEP, je vais donc me servir du dialogue d'artisanat. J'utilise aussi une base de donnée qui fixe une variable locale de campagne au personnage lors de sa connexion qui me permet de savoir si c'est un nouveau joueur ou non.

Voici comment je vais proceder.
Dans le menu Artisanat, a chaque fois qu'un joueur vas activer une branche de dialogue qui modifie un item (armure, robe, bouclier, arme ou casque) un script dans le action consequente vas fixer une variable d'artisanat activé.
Lorsque le joueur vas annuler les modifications ou valider les modification, la variable sera effacée.

Ensuite je vais modifier mon script de OnClientEnter du module et verifier le statut du personnage, si la variable est vierge (0) le reste du script se poursuit, sinon, il meurt avec une phrase qui explique la situation (eventuellement je le teleporterais a un endrit spécifique pour eviter que d'autre joueurs le rez).
Je modifierais aussi mon script de Respawn pour l'empecher de ressussiter si sa variable est activée. Ainsi seul un DM pourra le ressuciter.
Je placerais ici les morceau de scripts à integrer dans ceux deja existant. Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 08/07/2005 15:00:51 Sujet du message :

Hé hé!
Je ne sais pas ce qui m'arrive ce matin, mais j'ai compris ce que tu veux faire...
Je trouve que c'est une excellente idée, de plus j'ai déjà une zone prévue où j'enverrai les joueurs indésirables réfléchir sans porte ni moyen de sortir. Le but de cette salle est de pouvoir y emmener un joueur pour qu'un MD puisse discuter avec lui sans qu'il puisse en sortir.. avant d'avoir entendu raison..
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 08/07/2005 20:03:53 Sujet du message :

Des methodes d'espionages pour MD via fichiers log sont déja au point pour choper les " duplicateurs " , ça permet de pouvoir choper les tricheurs même 2 semaines aprés qu'ils aient triché , et ça marche trés bien.
Il suffit de compter le nombre d'objets Y sur un joueur a la déconexion , et de comparer le nombre d'objets X qu'il posséde a la reconnexion.
Si X = Y , alors tout va bien , par contre , si X = Y +1 ou plus largement si X =! Y , ça veut dire qu'il a dupliqué , et donc qu'il a triché........

J'ai l'intuition qu'il va prochainement apparaitre une methode pour detecter , mettre en tôle , et bannir de maniére automatisé les tricheurs qui pratiquent la duplication.

Ils vont être dégoutés .... !

J'aimerais déja voir ça ! Laughing

j'ai un peu de temps ce soir , je vais tenter de mettre ce script au point , je pense même savoir comment essayer de faire...!

Voiçi l'idée :
A chaque fois qu'un pj rajoute ou enlêve un objet a son inventaire , on compte le nombre d'objets qu'il posséde grace au script :
NWScript :

    int nombre_objets_PJ;
    object objet = GetFirstItemInInventory(oPC);
        while(GetIsObjectValid(objet))
        {
        nombre_objets_PJ =nombre_objets_PJ + 1 ;
        objet = GetNextItemInInventory(oPC);
        }
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

et on mémorise le nombre d'objets qu'il posséde en "permanent" dans la database.

Ensuite a la reco on fait pareil et on compare avec le nombre d'objets a la sortie , et si il n'a pas le même nombre d'objets , il y a un pb.

Reste a voir si ça marche ..... tout dépends de quand sont comptés les objets et quand est rajouté l'objet dans l'inventaire , lors de la reco ou de la déco , avant ou aprés les lancements du script ?
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
Répondre en citant
Posté le : 08/07/2005 22:11:48 Sujet du message :

Bon pour moi cela avance a grand pas.
Je modifie le dialogue du menu artisanat. JE demande si on veux activer le menu artisanat.
Oui => je fixe ma variable (dans le action consequente)
Non => je ferme le dialogue

Je signale que toute fermeture du dialogue sans desactiver le menu entrainera une mort avec comme seul rez une action MD

Dans le Dialogue, je repasse ma variable a 0 quand on ferme le dialogue en choisisant l'option fermer le dialogue.

Dans le onclient enter, je teste ma variable, si elle = 0 je poursuit mon script, sinon il meur et est teleporter.
Dans le respawn, je teste ma variable, si =1 le pj reste mort, sinon je poursuit mon script normalement.

Au final je n'ai que 2 script a créer (2 action consequente pour l'ouverture et la fermeture du dialogue d'artisanat) et d'ajouter une petite ligne de commande à mes script de onenter et de resp.

actuelement j'ai deja les script des action consequente. mais pour parfaire mon system, je doit tester le resp. Comme j'en ai profiter pour finir de traduire completement le dialogue du cep, j'ai du faire une pettie erreur car mon dial s'interomp prematurement. JE pense pouvoir fournir les script d'ici la fin de ce we.

L'incovegnent de cette methode est que si le serveur plante quand tu fait du craft, ben t'est mort a la reco, mais faut vraiment pas avoir de bol.Very Happy

La methode proposer par Semcatala impose par contre de verifier l'inventaire de chaque personage qui deco, de verifier celui de chaque perso qui se conecte et de comparer aux valeurs memorisé dans la BDD. De plus je ne sait pas si le craft ne crée pas une copie de l'item modifié dans l'inventaire en le randant invisible. Il faudra que je teste pour voir, c'est aussi une option valide
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 09/07/2005 03:30:49 Sujet du message :

COOL..
Je vous remercie de vous donner tout ce mal...Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 09/07/2005 07:06:50 Sujet du message :

voici mes solutions pour avoir des " infos " , c'est pas encore aussi élaboré que ce que je voudrais faire a l'avenir , mais ce sera un début bien utilise pour " contrôler " un pj sur lequel on a un doute.

Le but de ces scripts suivants est de pouvoir avoir un maximum d'informations dans le fichier log , sur chaque joueur , non pas pour les espionner et les pister , on a autre chose a faire de notre journée , mais tout simplement pour avoir les outils et la possibilité de pouvoir mener une enquête pour déterminer si il y a eu triche ou duplication d'objets , même longtemps aprés les faits.

Par exemple , si un joueur déco avec 6 objets et qu'il se reco avec 7 objets , il y a donc eu un soucis.
Si un joueur a gagné 20 levels entre 03h25 et matin et 03H30 du matin , c'est manifestement qu'il y a eu triche pour gagner 20 levels en 5 minutes.




le script suivant est a mettre dans le " onacquireritem" , il sert a t'informer quand un pj gagne un objet , pour savoir de quel objet il sagit et quelle est sa valeur en Po:

NWScript :

void main()
{

object objet = GetModuleItemAcquired();
string str_objet = GetTag(objet);
object oPC = GetItemPossessor(objet);
////////////////////////////// ////////////////////////////// ///////////
/////////// Script pour informer du gain d'un objet et de sa valeur
////////////////////////////// ////////////////////////////// ///////////

string nom_joueur = GetName(oPC);
int valeur_objet = GetGoldPieceValue(objet);
string nom_objet = GetName(objet);
string str_valeur_objet = IntToString(valeur_objet);

    if(GetIsPC(oPC))
    {
    WriteTimestampedLogEntry(" ");
    WriteTimestampedLogEntry("===== "+nom_joueur+""+ nom_objet +" *** qui vaut "+str_valeur_objet+" Po =====");
    WriteTimestampedLogEntry(" ");
    }
////////////////////////////// ////////////////////////////// ///////////
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.




script suivant a mettre dans le " oncliententer " , ce script sert a te dire a propos du pj qui se connecte combien il posséde de Po , d'XP , et combien il à d'objets dans son inventaire :

NWScript :


void main()
{

    object oPC = GetEnteringObject();

    string sCDKey = GetPCPublicCDKey(oPC);
    string sPlayerName = GetPCPlayerName(oPC);


////////////////////////////// ////////////////////////////// //////////////
////////////////////// Infos Joueur a la conection ///////////////////////
////////////////////////////// ////////////////////////////// //////////////

if(!GetIsDM(oPC))
{
int nombre_objets_PJ;
object objet = GetFirstItemInInventory(oPC);

    while(GetIsObjectValid(objet))
    {
    nombre_objets_PJ = nombre_objets_PJ + 1 ;
    objet = GetNextItemInInventory(oPC);
    }

  int or = GetGold(oPC);
  int xp = GetXP(oPC);
  string or_str = IntToString(or);
  string xp_str = IntToString(xp);
  string nombre_objets_pj_str = IntToString(nombre_objets_PJ);
  string nom = GetName(oPC);
  WriteTimestampedLogEntry(" ");
  WriteTimestampedLogEntry("******************************************************************************************************************************************");
  WriteTimestampedLogEntry("Infos sur " + nom + " : "+"OR = " + or_str + " Po "+"XP = " + xp_str+" xp");
  WriteTimestampedLogEntry(nom + " a " + nombre_objets_pj_str + " objets sur lui a la connexion ENTREE DE : "+nom);
  WriteTimestampedLogEntry("******************************************************************************************************************************************");
  WriteTimestampedLogEntry(" ");

}
}
////////////////////////////// ////////////////////////////// //////////////

Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.



le script suivant est le même que le précédant , sauf que c'est pour la déconexion , a mettre dans le " onclientleave "

NWScript :



void main()
{

object oPC = GetExitingObject();

////////////////////////////// ////////////////////////////// ////////////////////
//                Script anti triche                                        //                //
////////////////////////////// ////////////////////////////// ////////////////////

    if(!GetIsDM(oPC))
    {
    int nombre_objets_PJ;
    object objet = GetFirstItemInInventory(oPC);
        while(GetIsObjectValid(objet))
        {
        nombre_objets_PJ =nombre_objets_PJ + 1 ;
        objet = GetNextItemInInventory(oPC);
        }

  int or = GetGold(oPC);
  int xp = GetXP(oPC);
  string or_str = IntToString(or);
  string xp_str = IntToString(xp);
  string nombre_objets_pj_str = IntToString(nombre_objets_PJ);
  string nom = GetName(oPC);
  WriteTimestampedLogEntry(" ");
  WriteTimestampedLogEntry("####################################################################################################################################");
  WriteTimestampedLogEntry("Infos sur " + nom + ": "+"OR = " + or_str + " Po "+"XP = " + xp_str +" xp");
  WriteTimestampedLogEntry(nom + " a " + nombre_objets_pj_str + " objets sur lui a la deconnexion SORTIE DE : "+nom);
  WriteTimestampedLogEntry("####################################################################################################################################");
  WriteTimestampedLogEntry(" ");
////////////////////////////// ////////////////////////////// ////////////////////
  }
}

Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


et le dernier script a mettre dans le " onplayerlevelup"


NWScript :


void main()
{

object oPC = GetPCLevellingUp();
string sPC = GetName (oPC);
int iLevel = GetHitDice(oPC);
string sLevel = IntToString(iLevel);
string sAreaName = GetName(GetArea(oPC));
SendMessageToAllDMs (sPC+" a atteint le niveau "+sLevel+" dans "+sAreaName);



  WriteTimestampedLogEntry(" ");
  WriteTimestampedLogEntry("_______________________________________________");
  WriteTimestampedLogEntry(sPC+" vient d'atteindre le Niveau "+ sLevel);
  WriteTimestampedLogEntry("_______________________________________________");
  WriteTimestampedLogEntry(" ");

}

Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 20/07/2005 09:55:32 Sujet du message :

Bon , mon systéme de " mouchard " fonctionne a merveille pour fliquer les tricheurs via les fichiers logs , mais il reste pénible de se retaper a lire les fichiers log , et mon systéme ne permet pas de pouvoir automatiser les sanctions et le contrôle.

C'est chose faite grace a la methode se Seth de Sombrelune qui consiste a utiliser le dial du craft. Seth de Sombrelune postera probablement sa solution , quand a moi je posterais la mienne d'ici peu.

En gros , si un mec triche en se déconectant pour dupliquer , lorsqu'il revient sur le mod , il sera transféré en tôle pendant quelques minutes ( ou 30 secondes ) avant d'être kiké du mod comme un malpropre , et ce , de maniére automatique.

J'ai hâte que cette solution soit fonctionelle , les tricheurs ça commence a me saouler ..... !!!
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
Répondre en citant
Posté le : 20/07/2005 19:24:07 Sujet du message :

Bon voici ce que je vous propose, je l'ai tester sur mon dodule, ça marche assez bien.
Cela necessite de revisiter le dialogue de crafting, créer 2 nouveaux scripts et de modifier 2 scripts importants de votre module.

1 :Créer le script d'ouverture du dialogue.
Ce script place sur le pj une balise qui signal que dialogue d'artisanat a été ouvert.
NWScript :
//::////////////////////////// /////////////////////
//:: Name ac_openartisanat
//:: Copyright (c) 2001 Bioware Corp.
//::////////////////////////// ////////////////////
/*
      Balise d'ouverture du dialogue Artisanat
*/

//::////////////////////////// ////////////////////
///:: Created By: Seth de Sombrelune
//:: Created On: 08/07/2005
//::////////////////////////// ////////////////////
void main()
{
object oPC=GetLastSpeaker(); // on definit le joueur
SetCampaignInt("BDDModule", "menu_artisanat", 1, oPC);// on affecte la valeur 1 dans la BDD

}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

(BDDModule est un nom de base de donnée, choisisez le votre).


2 :Créer le script de fermeture du dialogue
NWScript :
//::////////////////////////// /////////////////////
//:: Name ac_closartisanat
//:: Copyright (c) 2001 Bioware Corp.
//::////////////////////////// ////////////////////
/*

*/

//::////////////////////////// ////////////////////
///:: Created By: Seth de Sombrelune
//:: Created On: 08/07/2005
//::////////////////////////// ////////////////////
void main()
{
object oPC=GetLastSpeaker(); // on definit le joueur
SetCampaignInt("BDDModule", "menu_artisanat", 0, oPC);// on affecte la valeur 0 dans la BDD

}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


3 :Modifier le fichier de dialogue d'artisanat : x0_skill_ctrap

Mon dialogue signale que l'ouverture du menu artisanat impose qu'il soit refermer en utilisant la branche de dialogue "fermer le menu artisanat"
Code :


Racine
   |
   |__ Prop :Impossible d'utiliser vos compétences Artisanat en ce moment.
   |         ---> Condition d'Execution :x2_im_polymorphd
   |         ---> Action Conséquente :
   |
   |__ Prop :Ouverture du Menu Artisanat <StartAction>[Atention, si vous choisissez 
       d'activer le menu Artisana, vous devez absolument quiter ce menu par la
       fonction "Fermer le menu Artisanat" sinon votre personnage sera bloqué jusqu'a
       l'intervention d'un MD !]</Start>
        |     --->CE :
        |     --->AC :
        * Ouvrir le menu Artisanat
        |  |   --->CE:
        |  |   --->AC:ac_openartisanat
        |  |
        |  |_Prop :Menu compétences Artisanat
        |      |   --->CE:
        |      |   --->AC:
        |      |
        |      * (ici se place le menu normal : modifier armure, casque, robe, arme et
        |         bouclier)
        |
        * Quiter le menu Artisanat [Fin du Dialogue]
              --->CE:
              --->AC: ac_closartisanat


Atention ! Chaque branche de dialogue qui normalement termine le dialogue doit avoir comme action conséquente le script ac_closartisanat. Vous serez sans doute amener a modifier legerement la structure du dialogue pour que cela soi possible (j'ai personnellement fait en sorte que toute fin d'action reviene à la seconde branche de ma racine).
Lors de la modification de votre fichier dialogue, faite tres atention, certaine branche qui existait en tant que "copie en tant que lien" risque de disparaitre. Conservez toujour une copie du dialogue original !

4 : je modifie le script de l'evenement module OnClientEnter

(ce code ne possede pas de fonction void main car ce n'est qu'une partie a ajouter à votre propre code. C'est la premiere condition qu'il regardera, votre script vient ensuite, pensez à refermer avec un } ! ).
NWScript :
////////////////////////////// ////////////////////////////// ////////
////////////////////////////// ////////////////////////////// ////////
///  Bloquage des tricheurs avec le menu Artisanat              ///
////////////////////////////// ////////////////////////////// ////////
////////////////////////////// ////////////////////////////// ////////

   
int iArtisanat = GetCampaignInt("BDDModule", "menu_artisanat", oPC);

if(iArtisanat == 1)
{
    DelayCommand(15.0,AssignCommand(oPC, JumpToLocation(GetLocation(GetWaypointByTag("WP_TRICHEUR")))));
    DelayCommand(17.0,PlayVoiceChat(VOICE_CHAT_DEATH, oPC));
    DelayCommand(17.5,ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), oPC));
    DelayCommand(17.5,ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(FALSE, FALSE), oPC));
    DelayCommand(18.0,SendMessageToPC(oPC,""));
    SendMessageToAllDMs("");
}
else
{
////////////////////////////// ////////////////////////////// /////////
////////////////////////////// ////////////////////////////// /////////
/* warning: 1 unclosed block {} */
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


5 : je modifie le script de l'evenement module OnPlayerRespawn
(ce code ne possede pas de fonction void main car ce n'est qu'une partie a ajouter à votre propre code de respawn juste apres la declaration de la fonction void main et du pj ayant cliquer sur respawn. C'est la premiere condition qu'il regardera, votre script vient ensuite, pensez à refermer avec un } ! ).


NWScript :
////////////////////////////// ////////////////////////////// ////////
////////////////////////////// ////////////////////////////// ////////
///  Bloquage des tricheurs avec le menu Artisanat              ///
////////////////////////////// ////////////////////////////// ////////
////////////////////////////// ////////////////////////////// ////////

   
int iArtisanat = GetCampaignInt("BDDModule", "menu_artisanat", oPC);

if(iArtisanat == 1)
{
    DelayCommand( 6.0,SendMessageToPC(oPC,""));
    SendMessageToAllDMs("");
}
else
{
////////////////////////////// ////////////////////////////// /////////
////////////////////////////// ////////////////////////////// /////////
/* warning: 1 unclosed block {} */
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.



J'espère être assez clair dans mes explication. voilà !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 27/07/2005 01:51:46 Sujet du message :

Merci,.
Je suis convaincu que tu as été asser clair...
beau travail...
Mais j'en suis pas a ce niveau... J'ai rien compris.. ou presque
je vais tacher de pas tout foirer LOL
Merci encore:lol
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
tsubasafr
Voyageur
Inscrit le: 04 Juil 2005
Messages: 3
Répondre en citant
Posté le : 31/08/2005 15:44:22 Sujet du message :

Hello all Smile
Dabord merci d'avoir reflechi a ce probleme qui moi aussi me pose soucis, et ca fait plaisir de voir des gens qui ont deja des solutions.

Enfin j'ai une petite question comment on edite le dialogue x0_skill_ctrap ?
Il faut en recreer un ? comment ouvrir les dialogue des ressources originel du jeu ?

Merci a tous Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ailesnoires
Grand Chevalier
Inscrit le: 21 Oct 2004
Messages: 110
Localisation: Vendée
Répondre en citant
Posté le : 31/08/2005 16:05:29 Sujet du message :

Salut, tout d'abord tu parles de dialogue mais je suppose que tu veux dire script.

Pour ouvrir les script originel du module tu dois cocher la case toutes les ressources (à peu prêt j'ai pas aurora là) dans la fenêtre de dialogue ouvrant les scripts.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
tsubasafr
Voyageur
Inscrit le: 04 Juil 2005
Messages: 3
Répondre en citant
Posté le : 01/09/2005 10:14:51 Sujet du message : re

Nonon je parle bien du dialogue:

Celui qu'il modifie ici:

Citation :
3 :Modifier le fichier de dialogue d'artisanat : x0_skill_ctrap

Mon dialogue signale que l'ouverture du menu artisanat impose qu'il soit refermer en utilisant la branche de dialogue "fermer le menu artisanat"
Code :


Racine
|
|__ Prop :Impossible d'utiliser vos compétences Artisanat en ce moment.
| ---> Condition d'Execution :x2_im_polymorphd
| ---> Action Conséquente :
|
|__ Prop :Ouverture du Menu Artisanat <StartAction>[Atention, si vous choisissez
d'activer le menu Artisana, vous devez absolument quiter ce menu par la
fonction "Fermer le menu Artisanat" sinon votre personnage sera bloqué jusqu'a
l'intervention d'un MD !]</Start>
| --->CE :
| --->AC :
* Ouvrir le menu Artisanat
| | --->CE:
| | --->AC:ac_openartisanat
| |
| |_Prop :Menu compétences Artisanat
| | --->CE:
| | --->AC:
| |
| * (ici se place le menu normal : modifier armure, casque, robe, arme et
| bouclier)
|
* Quiter le menu Artisanat [Fin du Dialogue]
--->CE:
--->AC: ac_closartisanat
Si c'est un dialogue de jeu, comment y avoir accés ? ou faut-il en recreer un ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Elandil2
Chevalier
Inscrit le: 14 Fév 2005
Messages: 97
Localisation: sur mon ordi loir-et-cher
Répondre en citant
Posté le : 01/09/2005 11:18:54 Sujet du message :

Il faut que tu récréé ce dialogue ^^
ou que tu demande un erf si ce dialogue existe ...
_________________
Rejoignez nous sur notre forum
Aelor, module en construction
Vive Gimli

 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
Répondre en citant
Posté le : 01/09/2005 21:00:07 Sujet du message :

en fait il faut aller dans la partie diallogue et rechercher le dialogue x0 ect... un double clic suffit a l'ouvrir et l'editer

Par contre lorsque j'ai modifier mon dialogue, j'ai remarquer que la conversion en français ne se fait pas bien du tout, et que des liens collé ne fonctionnait plus. j'ai du reprendre le fichier dial completement, en plus j'en ai profiter por le traquire un peu. Je peu eventuellement envoyer l'erf par email a ceux qui m'en font la demande par mp


LE système que je propose a un petit inconvegnent, en cas de plantage lors d'une modification sous artisanat, le pj se retrouve coincé jussqu'a ce qu'un md soit present.
Mais depuis, il n'y a plus de duplication sur mon serveur ! Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 15/10/2005 20:26:55 Sujet du message :

Ca marche trop bien ! Very Happy

En plus , j'ai mis en ligne en même temps que mon mod , un mod " prison " sur lequel les tricheurs sont envoyés par paserelle IP , et les tricheurs sont téléportés dans cette prison , seuls , abandonnés .......

C'est plus élégant que d'ejecter le tricheur , et ça libére une place sur le mod ! Very Happy

Trop bien ce systéme antiduplication !

Sinon , une truc qui serais sympa pour nwn2 sur le forum des scripts ce serais de répertorier les bugs connus et possibles a corriger comme la duplication , et qu'on cherche un moyen de les corriger le plus rapidement possible par les scripts , avant que les tricheurs ne polluent trop les mods !Very Happy
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 69.805ms