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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Tester la présence d'un Paladin

Par Archamedes_Fr le 7/1/2003 à 16:28:43 (#2965763)

Bon, la fonction recherche du Forum semble avoir pris une journée de congés, et l'éditeur avoir pactisé avec Plix le pixie.
Du coup, j'ai un peu de mal à finir une partie de mon script.

J'aimerais qu'il ne s'exécute qu'à la condition qu'un Paladin soit présent dans le groupe.

Il me semblait qu'un fonction CheckPartyMemeber ou un truc du style existait... mais je trouve pas. Elle existe cette fonction fantôme ou je l'ai rêvé et il faut l'écrire ?

Par Mastokk le 7/1/2003 à 16:34:31 (#2965816)

Peut être GetClassByPosition ?


// A creature can have up to three classes. This function determines the
// creature's class (CLASS_TYPE_*) based on nClassPosition.
// - nClassPosition: 1, 2 or 3
// - oCreature
// * Returns CLASS_TYPE_INVALID if the oCreature does not have a class in
// nClassPosition (i.e. a single-class creature will only have a value in
// nClassLocation=1) or if oCreature is not a valid creature.
int GetClassByPosition(int nClassPosition, object oCreature=OBJECT_SELF)


Edit\ d'ailleurs je pense bien que c'est ça. Va voir ce qu'a fait Shadow ici :) . Je pense que ça devrait t'aider pas mal :).

Par eMRaistlin le 7/1/2003 à 17:54:36 (#2966529)

y'a mieux :

tu fais un GetLevelByClass(CLASS_TYPE_*)... si tu as 0, c'est qu'il est pas paladin... sinon, c'est qu'il l'est ^^ (et tu as même son niveau :))

Par Archamedes_Fr le 7/1/2003 à 18:31:47 (#2966811)

Merci pour vos réponses.

J'ai déjà noté ton script d'entrée Mastokk, pour la même raison que toi d'ailleurs...
GetLevelByClass... intéressant pour une autre idée qui commençait à germer. Merci eM.

L'inconvénient, avec ces méthodes, c'est que ça ne fonctionnera que si celui qui déclenche le script est Paladin. Je cherche en fait un moyen de savoir si un des membres du groupe, de celui qui déclenche le script, est un Paladin.

Ca complique un peu.

Un personnage déclenche le script
- Y-a-til un Paladin dans son groupe ( <== cette condition me bloque. Comment je test ça ?) et proche
-- Oui, je fais
-- non, je fais pas

Je l'ai rêvé cette fonction CheckPartyMember ? Elle existe pas ? Elle ou une lointaine cousine...

Par coolstar le 7/1/2003 à 19:08:14 (#2967141)

Bon, je suis pas devant mon PC là, alors pas d'Aurora sur la main pour les Tests et Confirmations... Mais ce que je puis dire c'est que 'CheckPartyMember' est un Include (tu peux le retrouver avec l'Assitant script en sollicitant dans les 'Condition d'exécution' la "Possession d'Objet"!)... :D

D'autre part, pour tester si le PC est un 'Paladin', l'idéal demeure la proposition de eMR... Mais, encore une fois, n'ayant pas Aurora sous la main je ne saurais te donner la solluce complète.. voici donc ma maigre contribution... ;)


int StartConditional()
{
return GetLevelByClass(CLASS_TYPE_*) > 0;
}

Par Archamedes_Fr le 7/1/2003 à 19:35:20 (#2967363)

Provient du message de coolstar
Bon, je suis pas devant mon PC là, alors pas d'Aurora sur la main pour les Tests et Confirmations... Mais ce que je puis dire c'est que 'CheckPartyMemeber' est un Include (tu peux le retrouver avec l'Assitant script en sollicitant dans les 'Condition d'exécution' la "Possession d'Objet"!)... :D

Merci ! Je vais farfouiller de ce côté, c'est ce que je cherchais !!

* Retourne dans Aurora en espérant ne pas faire fausse route... *

Par coolstar le 7/1/2003 à 20:03:13 (#2967580)

A noter que 'CheckPartyMember' n'est jamais qu'un petit script exploitant le while... donc un truc que tu peux faire en définitif tout seul... :D

Par Jedaï le 7/1/2003 à 20:04:17 (#2967586)

Je pense que ça n'existe pas : le Lexicon parle bien de CheckPartyForItem() mais vu son nom, c'est pas ce qu'il te faut...:D

Je te propose plutôt de faire une boucle dans cette party et de vérifier chaque membre :


void main()
{
object oPC = GetPCSpeaker();
object oParty = GetFirstFactionMember(oPC);
int bIsPal = FALSE;

while(GetIsObjectValid(oParty))
{
if(GetLevelByClass(CLASS_TYPE_PALADIN, oParty))
{
bIsPal = TRUE; break;
}
oParty = GetNextFactionMember(oPC);
}

if(bIsPal)
{
//mettre ici le code si il y a un paladin dans le groupe
}
}

Le pal c'est a l'odeur

Par Blam le 7/1/2003 à 20:58:20 (#2968005)

que ca se detecte !!!!

la preuve ? vous prenez un chien, meme chaotique, vous lui mettez du pal dans sa gamelle a 1 km, ben, il le detecte
comme quoi le pal c'est pour les chiens !!!!
Noooooon! Aribeth, pas la tête ! pas la tête !

pfff depuis que les gonzesses peuvent faire pal !

Par Jaha Effect le 7/1/2003 à 21:27:19 (#2968243)

Il suffit de crier très fort " Du Sang et des Ames pour Ariock"
La première épée dans la gueule que tu prends c'est un Paladin :)

Jaha Effect :D

Par Archamedes_Fr le 7/1/2003 à 22:41:17 (#2968712)

Provient du message de coolstar
A noter que 'CheckPartyMember' n'est jamais qu'un petit script exploitant le while... donc un truc que tu peux faire en définitif tout seul... :D

mm oui, il m'avait semblé que ça existait... visiblement non.

Provient du message de Blam
vous prenez un chien, meme chaotique, vous lui mettez du pal dans sa gamelle a 1 km, ben, il le detecte
comme quoi le pal c'est pour les chiens !!!!

Excellent... Plier en deux :mdr: :mdr: :mdr: :mdr: Je l'envoi illico à un des mes joueurs...

Provient du message de Jedaï
Je pense que ça n'existe pas : le Lexicon parle bien de CheckPartyForItem() mais vu son nom, c'est pas ce qu'il te faut...

Oui, pas trop.
Oui, ça doit être ça... visiblement je l'ai rêvé...

Provient du message de Jedaï
Je te propose plutôt de faire une boucle dans cette party et de vérifier chaque membre :


Merci Jedaï. Juste une interrogation sur GetFirstFactionMember.
Ca va tester les membre du groupe ? Ou toutes les créatures de la même faction ? Et dans ce cas, tous les personnages présent sur le serveurs ? Bon, va me chercher des cobayes pour tester ça...

Encore merci pour vos réponses.

Par coolstar le 8/1/2003 à 1:03:42 (#2969566)

K! J'ai légèrement confondu l'appellation (à défaut d'avoir été devant mon PC & Aurora!)... le truc étant en fait bien 'CheckPartyForItem', situé dans l'Include #include "nw_i0_tool"... Il avait l'avantage cependant de pouvoir donner de grandes indications quant à la procédure de CheckUp (quand on s'ait s'y prendre à partir de rien!)... Comme quoi c'était bien une histoire de while... Hein mon petit Jedaï! :D



///////////////////////////////////////////////////////////////////////////////
//
// CheckPartyForItem
//
///////////////////////////////////////////////////////////////////////////////
// Checks everyone in the party for an item
///////////////////////////////////////////////////////////////////////////////
// Created By: Brent, September 13, 2001
///////////////////////////////////////////////////////////////////////////////

int CheckPartyForItem(object oMember, string sItem)
{
object oPartyMember = GetFirstFactionMember(oMember, TRUE);
while (GetIsObjectValid(oPartyMember) == TRUE)
{
if(HasItem(oPartyMember, sItem))
return TRUE;
oPartyMember = GetNextFactionMember(oMember, TRUE);
}

return FALSE;
}

;)

JOL Archives 1.0.1
@ JOL / JeuxOnLine