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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

drop random item

Par kilvan le 6/7/2002 à 9:40:13 (#1766544)

j'ai besoin d aide pour un ptit problême

avant de commencer le random je voudrais deja attribuer une item droppable a mon mob a partir du spawn et la j ai plusieurs problême.

j'ai essayer comme sa mais au dans le spawn du mob mais j ai un probleme de compilation

06/07/2002 09:36:34: Error. 'dropgen' did not compile.
dropgen.nss(19): ERROR: UNKNOWN STATE IN COMPILER




#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"

void main()
{
//ligne 18 j essaye avec sa mais le probleme
ActionEquipItem(object "blabka",int 1);

SetListeningPatterns(); // Goes through and sets up which shouts the NPC will listen to.
WalkWayPoints(); // Optional Parameter: void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)
// 1. Looks to see if any Way Points in the module have the tag "WP_" + NPC TAG + "_0X", if so walk them
// 2. If the tag of the Way Point is "POST_" + NPC TAG the creature will return this way point after
// combat.
GenerateNPCTreasure(); //* Use this to create a small amount of treasure on the creature
}








j ai aussi essayer avec

object CreateItemOnObject(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1)

mais même erreur.



Si kkun pourrait m'aider a donner au spawn une item droppable a mon mob , je m'occuperais facilement ensuite d'une routine de random pour que le mob est tant pourcent de chance de dropper cette item.Dans ce cas le joueur pourra looter l'item

sinon reste l'autre solution si c est pas faisable mais la pareil, j'ai besoin d'aide a la mort du mob je crée un objet par terre en random que le joueur pourra ramasser .




Please help me , la je suis desesperer

Par kilvan le 6/7/2002 à 21:02:42 (#1769225)

bon j ai reussis a créer une item a la mort de la créature mais reste un petit probleme les items au sol disparaissent un jour?
ou y a moyen de les faire disparaitre au bout de disont 10 minute??
SVP


SInon
voici le code a rajouté dans le void d'un ondeath d 'un mob pour le random item drop


//::Random Drop
//::by allensan
//::6 juillet 2002

location ldied = GetLocation(GetObjectByTag (sTemplate));//lieu de la mort du mob
int randrop=Random(101);
//pour les items vous pouvez en mettre 5 si vous en metter pas laissez le string libre
string sdrop1="barbareaxe1";//blueprint de l item 1
string sdrop2="jewelarmor";//blueprint de l item 2
string sdrop3="jewelhelmet";//blueprint de l item 3
string sdrop4=";//blueprint de l item 4
string sdrop5=";//blueprint de l item 5
//pourcentage entrer un int de pourcentage de chance d'un drop verifiez le calcul pour arriver a 100% ne pas mettre 0
int pcent1 =5;
int pcent2 =pcent1+35;
int pcent3 =pcent2+40;
int pcent4 =pcent3+20;
int pcent5 =pcent4+0;

if((randrop>0)&&(randroppcent1)&&(randroppcent2)&&(randroppcent3)&&(randroppcent4)&&(randrop0)&&(randroppcent1)&&(randroppcent2)&&(randroppcent3)&&(randroppcent4)&&(randrop<=pcent5)&&(sdrop5!="))
{
CreateObject(OBJECT_TYPE_ITEM,sdrop5,ldied, TRUE);
}
SetIsDestroyable(FALSE);
AssignCommand(OBJECT_SELF, DelayCommand(fSeconds, VoidCreateObject(sTemplate,lLoca, TRUE)));
}

}

void VoidCreateObject(string sTemplate, location lLoca, int bUseAppearAnimation=TRUE)
{
CreateObject(OBJECT_TYPE_CREATURE, sTemplate,lLoca,TRUE);
SetIsDestroyable(TRUE);
}

//****************




Si kkun a des idées pour améliorer ce systême je suis interresser.
Par ailleur on peut pas créer de array dans le module de script??

Par Machin le 6/7/2002 à 22:58:19 (#1769630)

A la lecture de ton script, il y a une chose qui ne parrait pas tres claire avec les blueprints/tag/template

par exemple, ici


string sTemplate = "gobos";//blueprint du monstre - same as initial monster - use blueprint name
location ldied = GetLocation(GetObjectByTag (sTemplate));//lieu de la mort du mob



Il est bien dit que sTemplate est le nom du blueprint du monstre, mais apres tu utilise ce nom pour rechercher un objet a partir de son tag :confus:

Tout ca demande quelques éclaicissements ... notamment la signification exacte du parametre sTemplate de la fonction CreateObject. S'agit il du nom du blueprint ou du tag assigné au blueprint ?

De meme pour les items à créer, s'agit il du nom du blueprint ou du tag ?

Sinon, pour répondre a tes questions :

- Si le premier script que tu proposais ne compilait pas, c'est a cause de cette ligne


ActionEquipItem(object "blabka",int 1);


Que ne correspond par du tout à la syntaxe des scripts

tu aurais du mettre :

ActionEquipItem("blabla", 1);

en supposant que les parametres soient corrects.

Je ne sais pas vraiment ce que tu a voulu dire sur cette ligne, mais les types de variables n'apparaissent qu'a la déclaration d'une variable.
Le compilo peut connaitre le type d'une variable grace à sa déclaration, donc inutile de le répéter à l'utilisation. Cela impose bien sur de devoir déclarer les variables à l'avance. Mais bon, consulte un tutoriel sur le langage de script, tu saisira vite le principe.


-

y a moyen de les faire disparaitre au bout de disont 10 minute??


J'ai déjà vu un script faisant office du "garbage collector". C'est a dire qu'il supprimme automatiquement les objets trainant sur le sol depuis trop longtemps.
Fouille sur les sites recenssant des scripts pour nwn, tu va tomber dessus a coup sur.

-

Par ailleur on peut pas créer de array dans le module de script??


Il existe une bibliothèque simulant le fonctionnement des tableaux, mais il ne sont pas prévus par defaut.
Idem, fouille sur les sites de scripts

Par kilvan le 6/7/2002 à 23:50:17 (#1769775)

merci pour la reponse mais conceran le


string sTemplate = "gobos";//blueprint du monstre - same as initial monster - use blueprint name
location ldied = GetLocation(GetObjectByTag (sTemplate));//lieu de la mort du mob

Tout ca demande quelques éclaicissements ... notamment la signification exacte du parametre sTemplate de la fonction CreateObject. S'agit il du nom du blueprint ou du tag assigné au blueprint ?



c'est expliquer dans un autre poste je crois pour le respawn de mob .
La partie que j ai rajouter c est l'autre qui crée un random de 1 a 5 item voir rien pouvant etre donner par le mob a sa mort.


Il est bien dit que sTemplate est le nom du blueprint du monstre, mais apres tu utilise ce nom pour rechercher un objet a partir de son tag


en faite non c est pas un objet en fonction du blueprint que tu cherche mais plutot l'endroit ou est mortle mob donc la location au moment ou le mob est mort d'ou son blue print dans le script



De meme pour les items à créer, s'agit il du nom du blueprint ou du tag ?

En faite il s agit du blueprint de l'item qui existe dans les customs ou items déja existante mais existe pas sur la scène en elle même.

//pour les items vous pouvez en mettre 5 si vous en metter pas laissez le string libre
string sdrop1="barbareaxe1";//blueprint de l item 1
string sdrop2="jewelarmor";//blueprint de l item 2
string sdrop3="jewelhelmet";//blueprint de l item 3
string sdrop4=";//blueprint de l item 4
string sdrop5=";//blueprint de l item 5
//pourcentage entrer un int de pourcentage de chance d'un drop verifiez le calcul pour arriver a 100% ne pas mettre 0
int pcent1 =5;
int pcent2 =pcent1+35;
int pcent3 =pcent2+40;
int pcent4 =pcent3+20;
int pcent5 =pcent4+0;

j'avais bien preciser blueprint justement et pas tag de l'item.


Sinon merci pour les réponses , j'èspère arrive a trouver le truc pour virer les items sur le sol.
Pour les arrays on peut se debrouiller sans, surtout si c est un script lourds qu'il émule les arrays sa risque d'être chiant pour les compilations.

JOL Archives 1.0.1
@ JOL / JeuxOnLine