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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

je comprend pas pkoica marche pas:

Par fauxninja le 24/12/2002 à 9:46:12 (#2867737)


void main()
{
object porte1=GetNearestObjectByTag("tole", OBJECT_SELF, 1);
object porte2=GetNearestObjectByTag("tole", OBJECT_SELF, 2);
if(GetLocked(porte1)==0)
{
ActionCloseDoor(porte1);
ActionCloseDoor(porte2);
ActionWait(2.0);
ActionLockObject(porte1);
ActionLockObject(porte2);
}
else
{
ActionUnlockObject(porte1);
ActionUnlockObject(porte2);
ActionWait(2.0);
ActionOpenDoor(porte1);
ActionOpenDoor(porte2);
}
}

c sur un levier, qui doit soi fermer els grilles et les verouiller. soit les ouvrir.
---> ca les ferme, mais pas de lock... et ca les ouvre pas...

Par Ormus le 24/12/2002 à 10:27:05 (#2867911)

Je sais pas si ça réglera ton problème mais déjà il ne faut pas mettre un "o" devant le nom d'un objet (oporte1 à la place de porte1...) ?

Par Anianka le 24/12/2002 à 11:58:48 (#2868581)

Je sais pas si c'est ça mais essaie comme ça ...

void main()
{
object porte1=GetNearestObjectByTag("tole", OBJECT_SELF, 1);
object porte2=GetNearestObjectByTag("tole", OBJECT_SELF, 2);
if(GetLocked(porte1)==0)
{
AssignCommand(porte1,ActionCloseDoor(porte1));
AssignCommand(porte2,ActionCloseDoor(porte2));
//ActionWait(2.0);
DelayCommand(2.0, AssignCommand(porte1,ActionLockObject(porte1)));
DelayCommand(2.0,AssignCommand(porte2,ActionLockObject(porte2)));
}
else
{
AssignCommand(porte1,ActionUnlockObject(porte1));
AssignCommand(porte2,ActionUnlockObject(porte2));
//ActionWait(2.0);
DelayCommand(2.0, AssignCommand(porte1,ActionOpenDoor(porte1)));
DelayCommand(2.0, AssignCommand(porte2,ActionOpenDoor(porte2)));
}
}

Par RAT le 24/12/2002 à 12:01:31 (#2868604)

non Ormus, cela ne changera rien dans l'affaire.
Pourquoi mettons-nous un "o" souvent pour les objets. C'est juste pour reconnaitre, que cette variable est du type object. Cela évite au bout de 500 lignes, de remonter tout en haut et de vérifier, si cette variable est bien un objet. voila :):)

et fauxninja, tu mets le scripts dans ton levier, c'est bien cela???

Si c'est ça, essaye de voir en faisant un ObjectByTag. cela marchera peut-être mieux. et tu donnes 2 tag différents pour tes portes.

Par Jaha Effect le 24/12/2002 à 12:13:35 (#2868715)

arf les mecs vous me faites peur des fois... :D
Déjà j'aime pas que tu commande deux portes avec des tag identique, c'est important de toujours différencier les tags du moins pour moi, c'est plus propre.
Puis il bouge pas ton levier comme ça :)
Essaye comme ça :)

void main()
{
object oPorte1 = GetObjectByTag ("porte1");
object oPorte2 = GetObjectByTag ("porte2");
object oLevier = GetObjectByTag ("Levier");

int Levier;

if ( GetLocalInt( OBJECT_SELF, "Actif" ) != TRUE )
{
SetLocalInt( OBJECT_SELF, "Actif", TRUE );
PlayAnimation( ANIMATION_PLACEABLE_ACTIVATE );
}
else
{
SetLocalInt( OBJECT_SELF, "Actif", FALSE );
PlayAnimation( ANIMATION_PLACEABLE_DEACTIVATE );
}
Levier = GetLocalInt (oLevier,"Actif");

if (Levier == TRUE)
{
SetLocked(oPorte1, FALSE);
ActionOpenDoor(oPorte1);
SetLocked(oPorte2, FALSE);
ActionOpenDoor(oPorte2);
}
else
{
SetLocked(oPorte1, TRUE);
ActionCloseDoor(oPorte1);
SetLocked(oPorte2, TRUE);
ActionCloseDoor(oPorte2);
}
}


Jaha Effect :D

Par RAT le 24/12/2002 à 13:35:35 (#2869374)

voila , j'avais bien raison :):) :p
jaha redit bien ce que je viens de dire :).

Remercier en tout cas Jaha :)

Par fauxninja le 24/12/2002 à 14:00:28 (#2869650)

SUPER!!! c impecable, ca marche tres bien! (je suis resté 10 minutes a faire jour-nuit

je sais aps trop trop faire avec les leviers, est ce que vous pourriez me donner un meilleur script pour le levier de l'acide:
il faudrai que l'acide tombe sans "boule d'acide" qui partent du levier.
il faudrai que le levier fasse le bruit et bouge
il faudrai (mais ca ca doi etre dur) qu'on puisse pas retoucher au levier avant que l'acide soi dissipé (car sinon, on aret pas d'utiliser le levier, et ya des litres et des litres d'acide qui tombent)
voila mon script:


void main()
{
int bInstantSpell=TRUE;
int nMetaMagic=METAMAGIC_ANY ;
int bCheat=TRUE ;
int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT ;
location lLocation1 = GetLocation(GetObjectByTag("piegealave"));
location lLocation2 = GetLocation(GetObjectByTag("piegealave2"));
location lLocation3 = GetLocation(GetObjectByTag("piegealave3"));
location lLocation4 = GetLocation(GetObjectByTag("piegealave4"));
location lLocation5 = GetLocation(GetObjectByTag("piegealave5"));
int nSpell=SPELL_ACID_FOG;
ActionCastSpellAtLocation(nSpell, lLocation1, nMetaMagic, bCheat, nProjectilePathType, bInstantSpell);
ActionCastSpellAtLocation(nSpell, lLocation2, nMetaMagic, bCheat, nProjectilePathType, bInstantSpell);
ActionCastSpellAtLocation(nSpell, lLocation3, nMetaMagic, bCheat, nProjectilePathType, bInstantSpell);
ActionCastSpellAtLocation(nSpell, lLocation4, nMetaMagic, bCheat, nProjectilePathType, bInstantSpell);
ActionCastSpellAtLocation(nSpell, lLocation5, nMetaMagic, bCheat, nProjectilePathType, bInstantSpell);
}

--> ca balance de l'acide sur 5 points

Par Jaha Effect le 24/12/2002 à 14:08:32 (#2869707)

Quand tu as un nouveau sujet essaye de faire un nouveau post, parce que ça peux intéresser quelqu'un d'autre et si c'est noyé dans la masse d'un post c'est pas évident à retrouver :)
Les noms de posts explicites sont important également :)

Jaha Effect :D

Par coolstar le 24/12/2002 à 14:49:08 (#2870022)

Vi! :D

JOL Archives 1.0.1
@ JOL / JeuxOnLine