La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/09/2024 20:30:28


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Dreams
Ecuyer
Inscrit le: 30 Juil 2004
Messages: 41
Localisation: val de marne
Répondre en citant
Posté le : 24/01/2005 23:38:36 Sujet du message : Système de PVP élaboré

C'est encore moi, désolé mais je patauge. Je cherche depuis une heure sur le forum sans trouver exactement ce que je souhaiterai.

Voici ce que j'aimerais avoir. En fait je fais un module où j'aimerais incorporer un système complexe du PVP.

J'ai plusieurs factions sur le module : Des bons, des mauvais, des drows, des duergars, des drows renégats etc... et j'en passe.

Ce que j'aimerais, c'est que le joueur, selon son appartenance à sa faction, soit hostile envers telle ou telle faction, ou amical avec une autre.

Exemple : un PJ jouant un bon serait hostile envers les drows, les duergars et les mauvais, mais amical envers nains, drows rebelles etc... En fait que la faction reconnaisse le PJ comme étant amical.

Je pense que le plus simple serait de donner un objet au PJ lorsqu'il choisira sa faction, et que les divers peuples puissent d'une part voir l'objet en question dans l'inventaire du joueur, et d'autre part devenir amical ou hostile selon l'objet. Je crois que cela est fait sur certains modules, mais je me souviens plus lesquels.

L'intéret ? Ben en fait les PJ ne se contenteront pas de faire du PVP, mais pourront aussi monter des raids contre les citées et ses habitants

En prenant l'exemple de l'objet dans l'inventaire, quelqu'un aurait un script à me proposer s'il vous plait ? Question subsidiaire : l'objet en question pourrait-il être une "peau" ? Ca éviterait d'encombrer l'inventaire...

Aucune de mes connaissances alentoure n'a d'idée sur le sujet.

C'est peut-être culotté de demander si l'on pouvait me fournir le script mais je suis hélas complêtement perdu.

remerciements d'avance
cordialement
_________________
La raison de la réussite des gens du mal est l'inaction des gens du bien
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 25/01/2005 19:37:20 Sujet du message :

Il y a un script pour 2 factions opposées ici :
[http]
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Dreams
Ecuyer
Inscrit le: 30 Juil 2004
Messages: 41
Localisation: val de marne
Répondre en citant
Posté le : 25/01/2005 22:58:41 Sujet du message :

Je te remercie pour ton intervention. Je suis allé voir le script, mais au risque de passer pour un boulet (ca arrive^^) je ne comprends pas comment il marche, ni ce qu'il fait au juste. Je cherche juste un truc qui ferait qu'une créature serait hostile envers un PNJ, ou amical envers un autre (en allant chercher un item de type "peau" par exemple dans l'inventaire). Ce ne serait pas plus simple ainsi ? C'est juste une question, je n'y connais rien là.
_________________
La raison de la réussite des gens du mal est l'inaction des gens du bien
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 26/01/2005 20:45:54 Sujet du message :


Dreams a écrit :
Je cherche juste un truc qui ferait qu'une créature serait hostile envers un PNJ, ou amical envers un autre
Une créature? T'es sur?

Dans ce cas c'est plus du PvP (Player Versur Player -> Joueur contre joueur),
mais du PvM (Player Versus Monster -> je te laisse faire la traduction! lol!)

C'est donc dans les script de tes creature qu'il faut jouer,
en particulier le OnPerception, se déclanchant des qu'il voit quelquechose.

Voici l'algo que j'entrevois :

si le truc qu'on voit est un joueur,
--> si le joueur à l'objet "mechant" -> attaque
-------> sinon -> rien

voilà le script suivant cet algo :
NWScript :
// OnPerception du monstre
void main()
{
object oPJ = GetLastPerceived();
object oMechant = GetItemPossessedBy(oPJ, "Tag de l'objet du mechant");

if (GetIsPC(oPJ)==TRUE)
{
  if (GetIsObjectValid(oMechant)==TRUE)
  {
    ActionAttack(oPJ);
  }
  else return;
}
}
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.


Heu... Bah voila... Surprised
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
S@ntoS
Seigneur
Inscrit le: 12 Déc 2004
Messages: 169
Localisation: J'aimerais bien le savoir.
Répondre en citant
Posté le : 26/01/2005 23:44:56 Sujet du message :

Salut,

J'allai également proposer le même genre de solution avec la fonction « ActionAttack ». On peut même se passer d'objets et affecter une variable différente à chacune des factions. D'autres part, je ne comprends pas bien le but de la manœuvre. Le système de faction intégré de NWN ne permet-il pas justement d'obtenir des rivalités ou affinités entre groupes de PJ et PNJ ? Autre chose encore, est-ce pour jouer un module solo, multi, on-line ??? Je ne comprends pas bien...

@+.f€r. Surprised
_________________
L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Surprised
Le RP, cé vrémant tro z'injuste !Calimero
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Dreams
Ecuyer
Inscrit le: 30 Juil 2004
Messages: 41
Localisation: val de marne
Répondre en citant
Posté le : 27/01/2005 22:46:04 Sujet du message :

Merci à toi Kiki c'est super, juste petite question, l'objet du mechant peut-il etre une peau invisible dans l'inventaire ? Et autre chose, je sais je suis très embêtant, imaginons qu'il y aie plusieurs objets de méchants ? Genre les paladins doivent reconnaitre et les drows, et les duergars, et les mauvais etc... Comment puis-je intégrer plusieurs conditions sur plusieurs TAG dans ton script ? Je sais je suis pas très doué et m'en excuse Embarassed

Pour répondre à Santos, il s'agit d'un module on-line en ce moment mais en béta et est amélioré quotidiènement. C'est un monde persistant rp, et le but de la manoeuvre est que la faction drow (qui sera un exemple) RECONNAISSE un joueur n'étant pas des leurs et l'attaque à vue. S'ils le reconnaissent comme étant l'un des leurs ils n'attaquent donc pas. Ca permettra aux PJ drow d'avoir une citée ou eux seuls, et accessoirement les duergars, pourront acceder, autre humains, elfe, nain et demi-orcs étant attaqués à vue. J'essaie de déployer un systeme où les joueurs pourront organiser des raids de temps en temps contre une citée, pendant que d'autres joueurs les défendent.

Voilà pour la chtite histoire ^^
_________________
La raison de la réussite des gens du mal est l'inaction des gens du bien
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Dreams
Ecuyer
Inscrit le: 30 Juil 2004
Messages: 41
Localisation: val de marne
Répondre en citant
Posté le : 28/01/2005 23:18:16 Sujet du message :

En fait voici comment je vais procéder pour alléger le script. Je voudrais que si le PJ n'a pas l'objet méchant dans son inventaire, alors le drow l'attaque. Ainsi dans ton script, en changeant le "TRUE" par "FALSE", est-ce que le fait de ne pas avoir l'objet entrainera l'attaque ?

Sinon que dois-je changer ?

Merci encore.
_________________
La raison de la réussite des gens du mal est l'inaction des gens du bien
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 29/01/2005 11:07:29 Sujet du message :


Dreams a écrit :
Pour répondre à Santos, il s'agit d'un module on-line (...) où la faction drow (qui sera un exemple) RECONNAISSE un joueur n'étant pas des leurs et l'attaque à vue.
Attend, attend, on parle de pvp (joueur contre joueur)
ou de pvm (joueur contre monstre), là?
Je suis un peu largué là...
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Dreams
Ecuyer
Inscrit le: 30 Juil 2004
Messages: 41
Localisation: val de marne
Répondre en citant
Posté le : 29/01/2005 12:09:13 Sujet du message :

non non du PVM, je me suis tres mal exprimé excuses moi Embarassed. Les PNJ drows devront reconnaitre un joueur comme étant l'un des leurs, sinon ils attaquent, voici en simplifiant. Ainsi les PJ drows pourront aller dans leur cité sans crainte, tandis que les autres joueurs seront attaqués ^^
_________________
La raison de la réussite des gens du mal est l'inaction des gens du bien
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 29/01/2005 14:26:37 Sujet du message : Re: Système de PVP élaboré


Dreams a écrit :
non non du PVM, je me suis tres mal exprimé excuses moi Embarassed. Les PNJ drows devront reconnaitre un joueur comme étant l'un des leurs, sinon ils attaquent, voici en simplifiant. Ainsi les PJ drows pourront aller dans leur cité sans crainte, tandis que les autres joueurs seront attaqués ^^
Oki, comment distingue tu les factions des PNJ?
Ont ils aussi l'objet en question? (peau ou autre, peu importe)
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Dreams
Ecuyer
Inscrit le: 30 Juil 2004
Messages: 41
Localisation: val de marne
Répondre en citant
Posté le : 31/01/2005 01:47:04 Sujet du message :

Comment je distingue mes factions des PJ ?? Ben heu j'avoue ne pas avoir réfléchi à cela en fait... En fait les factions et les PJ n'ont rien du tout en commun à vrai dire. Les factions sont justes editées pour etre alliées ou ennemies entre elles, à part cela les joueurs je ne les ai pas gérés de la meme facon.

Cela a une importance ? De quoi as-tu besoin reelement ?
_________________
La raison de la réussite des gens du mal est l'inaction des gens du bien
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 31/01/2005 07:00:48 Sujet du message :

Sinon, lorsque tu mets des peaux à tes PJs lorsqu'ils entrent dans ton module, en même temps, tu leur attribue un localstring, par exemple en mettant ca dans ton script :

NWScript :
SetLocalString( oPJ, "race", "drow");
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.


Ensuite, sur tes monstres (ici on va prendre les drow) :

NWScript :
// OnPerception du monstre
void main()
{
  object oPJ = GetLastPerceived();
  string sRace = GetLocalSring(oPJ, "race");

  if (GetIsPC(oPJ)==TRUE)
  {
    if (sRace != "drow")
    {
      ActionAttack(oPJ);
    }
    else return;
  }
}
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.

_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Dreams
Ecuyer
Inscrit le: 30 Juil 2004
Messages: 41
Localisation: val de marne
Répondre en citant
Posté le : 31/01/2005 09:55:31 Sujet du message :

Merci à toi pour ce script

Sinon d'une race à l'autre je change juste "drow" pas race ?

cordialement
_________________
La raison de la réussite des gens du mal est l'inaction des gens du bien
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
daeron
Voyageur
Inscrit le: 28 Jan 2005
Messages: 4
Répondre en citant
Posté le : 31/01/2005 14:57:34 Sujet du message :

Sinon tu peux aussi te baser sur l'environnement.
Les scripts qui sont sur ces posts pourront surement t'aider:

[http]
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 31/01/2005 17:16:57 Sujet du message :


Dreams a écrit :
Sinon d'une race à l'autre je change juste "drow" pas race ?
Oui, tu remplaces "drow" par le nom de ton autre race.
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Dreams
Ecuyer
Inscrit le: 30 Juil 2004
Messages: 41
Localisation: val de marne
Répondre en citant
Posté le : 31/01/2005 19:54:38 Sujet du message :

Merci beaucoup pour votre aide ! Mais je sais pas si je comprends mal, ton script fera qu'un drow reconnaitra un autre drow ? Ou alors fait-il autre chose ?


Ah et quand je le place dans les script, il ne se compile pas et j'ai l'erraur --> variable parsing list
_________________
La raison de la réussite des gens du mal est l'inaction des gens du bien
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 31/01/2005 20:31:57 Sujet du message :

avec le script que tu as posté dans un autre post :

NWScript :
void main()
{
object oPC = GetLastSpeaker();


object oItem = GetFirstItemInInventory( oPC );
    while( oItem != OBJECT_INVALID )
    {
        DestroyObject( oItem );

      oItem = GetNextItemInInventory( oPC );
    }

  DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARMS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BELT, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOOTS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CHEST, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_HEAD, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_NECK, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC));


// equipe les nouveaux objets
    // vetement
    object oVet = CreateItemOnObject ("resresf du vetement", oPC, 1);
    AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST));

    // peau
    object oPeau = CreateItemOnObject ("resref de la peau", oPC, 1);
    AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR));
    //essaye si possible de mettre en resref, sinon ca risque de compliquer beaucoup les choses
    SetLocalString( oPC, "race", "resref_de_la_peau" );

}
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.


L'autre script doit être mis dans le OnPerception de chacun de tes pnj, en modifiant a chaque fois "drow" par la race du pnj. Il fait en sorte que le pnj qui voit un pj ne soyant pas de sa race l'attaque.
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 31/01/2005 20:32:22 Sujet du message :

avec le script que tu as posté dans un autre post :

NWScript :
void main()
{
object oPC = GetLastSpeaker();


object oItem = GetFirstItemInInventory( oPC );
    while( oItem != OBJECT_INVALID )
    {
        DestroyObject( oItem );

      oItem = GetNextItemInInventory( oPC );
    }

  DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARMS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BELT, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOOTS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CHEST, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_HEAD, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_NECK, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC));


// equipe les nouveaux objets
    // vetement
    object oVet = CreateItemOnObject ("resresf du vetement", oPC, 1);
    AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST));

    // peau
    object oPeau = CreateItemOnObject ("resref de la peau", oPC, 1);
    AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR));
    //essaye si possible de mettre en resref le nom de la race correspondante, sinon ca risque de compliquer beaucoup les choses
    SetLocalString( oPC, "race", "resref_de_la_peau" );

}
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.


L'autre script doit être mis dans le OnPerception de chacun de tes pnj, en modifiant a chaque fois "drow" par la race du pnj. Il fait en sorte que le pnj qui voit un pj ne soyant pas de sa race l'attaque.


Edit : oups, désolé pour le double post, il n'est pas voulu, si un modo pouvait effacer le premier, ce serait sympa
_________________
...
 
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 105.725ms