Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > [Scrip] nouveau , il marche mais je narrive pas a le completer : /
[Scrip] nouveau , il marche mais je narrive pas a le completer : /
Par TyKeM le 30/10/2002 à 18:32:48 (#2442808)
-------------------------------------------------------------------------------
// 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()
Make it simple !
{
//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
}
}
Par TyKeM le 31/10/2002 à 11:10:00 (#2447286)
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)
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)
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)
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
Je fais rarement plus que ce qu'on me demande, sauf quand c'est moi qui me le demande :p
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. :)
Par TyKeM le 1/11/2002 à 11:41:00 (#2454767)
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)
EDIT: lapsus
Par TyKeM le 3/11/2002 à 17:28:55 (#2470545)
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)
Par TyKeM le 6/11/2002 à 23:16:02 (#2500707)
Par eMRaistlin le 7/11/2002 à 0:06:25 (#2501033)
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)
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)
JOL Archives 1.0.1
@ JOL / JeuxOnLine