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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

[Scrip] nouveau , il marche mais je narrive pas a le completer : /

Par TyKeM le 30/10/2002 à 18:32:48 (#2442808)

en traficotant un script existant jarrive a sa :

-------------------------------------------------------------------------------
// aj01_ibr_g0_1
// OnDisturbe : metre chaque livre sur la bonne etagere

void main()
{
object oDoor= GetObjectByTag("DO_I0_I");

object oBS1 = GetObjectByTag("AJ01_G0_BS1");
object oBS2 = GetObjectByTag("AJ01_G0_BS2");
object oBS3 = GetObjectByTag("AJ01_G0_BS3");
object oBS4 = GetObjectByTag("AJ01_G0_BS4");
object oBS5 = GetObjectByTag("AJ01_G0_BS5");
object oBS6 = GetObjectByTag("AJ01_G0_BS6");

object oBK1 = GetFirstItemInInventory(oBS1);
object oBK2 = GetFirstItemInInventory(oBS2);
object oBK3 = GetFirstItemInInventory(oBS3);
object oBK4 = GetFirstItemInInventory(oBS4);
object oBK5 = GetFirstItemInInventory(oBS5);
object oBK6 = GetFirstItemInInventory(oBS6);

int nOK = 0;

if (GetLocalInt(oDoor,"AJ_UNLOCK") == 1)
return;

if (GetIsObjectValid(oBK1)) {
if (GetTag(oBK1) == "AJ01_G0_BK1") {
nOK++;
}
}
if (GetIsObjectValid(oBK2)) {
if (GetTag(oBK2) == "AJ01_G0_BK2") {
nOK++;
}
}
if (GetIsObjectValid(oBK3)) {
if (GetTag(oBK3) == "AJ01_G0_BK3") {
nOK++;
}
}
if (GetIsObjectValid(oBK4)) {
if (GetTag(oBK4) == "AJ01_G0_BK4") {
nOK++;
}
}
if (GetIsObjectValid(oBK5)) {
if (GetTag(oBK5) == "AJ01_G0_BK5") {
nOK++;
}
}
if (GetIsObjectValid(oBK6)) {
if (GetTag(oBK6) == "AJ01_G0_BK6") {
nOK++;
}
}

//SpeakString("NB OK " + IntToString(nOK));

if (nOK == 6)
{
PlaySound("as_cv_bell2");
SetLocked(oDoor, FALSE);
AssignCommand(oDoor, ActionOpenDoor(oDoor));
SetLocalInt(oDoor,"AJ_UNLOCK" , 1);
}
}

--------------------------------------------------------------------------------

il sert a avoir 6 contenant avec 6 item et chaque item doit etre a la bonne place ..

jai reusit a le faire marcher
jaimerais rajouter que quand les items sont a la bonne place on gagne un de l' xp ...

voila si vous savez comment maider :)

ceci est une enigme et si lon pe gagné de lxp a la facon role plays cela change un peu non ?

Par Tyn' le 31/10/2002 à 3:46:40 (#2445935)

void main()
{
//Initialize variables
object oBS, oBK;
int nCount = 0;
int nNumberContainers = 6;
int nGoodResponses = 0;

//Let's loop
while(nCount < nNumberContainers)
{
nCount++;
oBS = GetObjectByTag("AJ01_G0_BS"+IntToString(nCount));
oBK = GetFirstItemInInventory(oBS);
if(GetTag(oBK) == "AJ01_G0_BK"+IntToString(nCount))
nGoodResponses++;
}

if (nGoodResponses == nNumberContainers)
{
object oDoor = GetObjectByTag("DO_I0_I");
PlaySound("as_cv_bell2");
SetLocked(oDoor, FALSE);
AssignCommand(oDoor, ActionOpenDoor(oDoor));
SetLocalInt(oDoor,"AJ_UNLOCK" , 1);
GiveXPToCreature(GetLastDisturbed(),100); //Replace 100 by the amount of XP you want
}
}
Make it simple !

Par TyKeM le 31/10/2002 à 11:10:00 (#2447286)

je tadore tyn'

serieu tu menleve une de ces epines la :)))

c aplikable a toute les script de resolution de quetes ta ligne de comande ?


GiveXPToCreature(GetLastDisturbed(),100);

?

Par LeProctophantasmiste le 31/10/2002 à 11:50:49 (#2447618)

Une remarque en passant Tyn a oublié le test sur la variable locale (ou alors je suis miro), ça peut être utile si tu ne veux pas te retrouver avec un distributeur automatique d'xp. :)


void main()
{
//Initialize variables
object oBS, oBK;
int nCount = 0;
int nNumberContainers = 6;
int nGoodResponses = 0;
if (GetLocalInt(oDoor,"AJ_UNLOCK") == 1)
return;

//Let's loop
while(nCount < nNumberContainers)
{
nCount++;
oBS = GetObjectByTag("AJ01_G0_BS"+IntToString(nCount));
oBK = GetFirstItemInInventory(oBS);
if(GetTag(oBK) == "AJ01_G0_BK"+IntToString(nCount))
nGoodResponses++;
}

if (nGoodResponses == nNumberContainers)
{
object oDoor = GetObjectByTag("DO_I0_I");
PlaySound("as_cv_bell2");
SetLocked(oDoor, FALSE);
AssignCommand(oDoor, ActionOpenDoor(oDoor));
SetLocalInt(oDoor,"AJ_UNLOCK" , 1);
GiveXPToCreature(GetLastDisturbed(),100); //Replace 100 by the amount of XP you want
}
}

Et sinon le fait que tu ne contrôles que le premier item de l'inventaire c'est voulu? Je dis ça parce que si ton énigme n'est pas parfaitement clair, qu'un joueur essaie un autre livre au départ, ça peut être cause de frustration.

Un autre truc, le local int est-il bien nécessaire, autrement dit y-a-t-il un autre moyen d'ouvrir la porte? S'il n'y en a pas, tu pourrais utiliser "if(GetLocked(oDoor))" pour le même effet, et sans avoir un local int qui traine derrière.

Par TyKeM le 31/10/2002 à 14:21:21 (#2448984)

je suis contant que sa marche comme sa en fait :)
lol
je nai pas encore esayer doptimiser ...
jaimerais deja le finir et quil marche parfaitement :)
se qui es le k a part que pour le moment on ne recoit pas dxp : /
lol enfin je v verifier de se pas tout sa :)

Par TyKeM le 31/10/2002 à 14:25:53 (#2449029)

au fait jai dit une betise .. oui il y a des sortes de balise :)
je ve dire que qd on a reusit a ouvrir la orte sa envoie une info ( une variable locale )
et sa augmente le % de zone decouverte ...
pkoi ?
bha en fait c un dongeon dentrainement pour bas level , ainsi des que la personne a 100 % elle pe en sortir :)
...

Par Tynril le 1/11/2002 à 0:07:07 (#2453089)

Provient du message de LeProctophantasmiste
Une remarque en passant Tyn a oublié le test sur la variable locale (ou alors je suis miro), ça peut être utile si tu ne veux pas te retrouver avec un distributeur automatique d'xp. :)
Je fais rarement plus que ce qu'on me demande, sauf quand c'est moi qui me le demande :p

Par TyKeM le 1/11/2002 à 11:41:00 (#2454767)

si je rajoute que sa ds mes scripts :

GiveXPToCreature(GetLastDisturbed(),100);


il ny a pas de gain d xp qd on arrive a resoudre lenigme :(((

snif
alors on est obliger de bouriner pour avoir de lxp ? : /

Par LeProctophantasmiste le 1/11/2002 à 12:41:23 (#2455126)

Ca doit être GetLastClosedBy(), vérifie quand même
EDIT: lapsus

Par TyKeM le 3/11/2002 à 17:28:55 (#2470545)

je v essayer sa :)
pas u le temps se WE avec sa : /
hi hi hi :)

jespere que sa marchera et mer(ci pour votre aide les gards :) ( et les filles si il y en a :) )

Par TyKeM le 4/11/2002 à 23:52:21 (#2482599)

sa marche toujours pas .. snof

Par TyKeM le 6/11/2002 à 23:16:02 (#2500707)

up the iron

Par eMRaistlin le 7/11/2002 à 0:06:25 (#2501033)

euh... ce qui serait bien, c'est que tu dise pourquoi ca marche pas ??

Un message ? Une erreur de compile ? c'est dans le jeu qu'il n'y a pas d'effet ? Tu te fait virer de ton PC par ton p'tit frere qui te menace de diffuser des photos de toi compromettantes sur le net ?

Nan, serieux, avec le message, on pourra analyser sans avoir a construire tout le module autour du script... (pask'on le vaut bien ^^)

Par TyKeM le 7/11/2002 à 7:15:02 (#2501987)

c sa le plus bizare il ne me dit rien a la compilation ; la quete marche tres bien :))
non mais il sobstine a ne pas donner dxp qd je finit la quete :(
jai essayer qq trucs mais tous sans resultat :(

Par TyKeM le 8/11/2002 à 22:12:16 (#2516592)

:upa:

JOL Archives 1.0.1
@ JOL / JeuxOnLine