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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

ce script me fatigue

Par ruru666 le 11/2/2003 à 15:20:53 (#3214852)

OBJECTIF / Commentaire : Transformer un PC en loup-garou la nuit tombée, brrrr... Buffy niveau 12 recommandée

Créez un NPC et un Loup-garou avec le creature Wizard.
Mettez ce script sur le OnHeartBeat de chacun.
Ensuite, mettez le tag du NPC comme la ResRef du loup-garou et inversement.
Nommez votre loup-garou "Werewolf"
à faire pour chaque couple NPC/LG.

Mettez NPC en commoner et Loup-Garou en Hostile, c'est plus crédible;-)


Début du script


/////////////////////////////////////////////////////
//:Le loup-garou
//:de VorpalBlade depuis Bioware
//:Traduit/Modifié par MrCocktail pour NWN-fr.com
/////////////////////////////////////////////////////

void ChangeWerewolf(object oObject, string sTemp);
void ChangeTo(string sTemp, location lLoc);
void main()
{
int bDay = GetIsDay();
string sMyName = GetName(OBJECT_SELF);
string sChangeTo = GetTag(OBJECT_SELF);
object oMe = OBJECT_SELF;
// If I'm a man and its night or I'm a WW and it is day.
if (((sMyName != "Werewolf") && (!bDay)) || ((sMyName == "Werewolf") && (bDay))){
AssignCommand(GetModule(), ChangeWerewolf(oMe, sChangeTo));
}

}
void ChangeWerewolf(object oObject, string sTemp)
{
// Prend la location de l'un, le détruit, fait apparaitre l'autre
effect eVis = EffectVisualEffect(VFX_FNF_HOWL_MIND);
location lLoc = GetLocation(oObject);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, lLoc, 2.0f);
DestroyObject(oObject);
DelayCommand(0.5f, ChangeTo(sTemp, lLoc));
}
void ChangeTo(string sTemp, location lLoc)
{
CreateObject(OBJECT_TYPE_CREATURE, sTemp, lLoc);
effect eVis = EffectVisualEffect(VFX_COM_CHUNK_RED_SMALL);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, lLoc, 2.0f);
}




Tres interressant mais g des problemes :

Je met le meme blueprint du loup garou au nivo du tag du npc, et le blueprint du npc dans le tag du loup garou, consequance : la nuit mon loup garou clignote au rythm du OHB (disparait pour devenir humain, puis redisparait pour devenir loup).
Et le jour tout s arrete sil etait en humain il reste humain et s 'il etait loup il reste loup

Par Verchanal le 11/2/2003 à 15:23:28 (#3214872)

et si tu le met dans OnPercieved avec une perception longue?

L'idée c'est que dés qu'il voit un PC la nuit , il se change en Werewolf et dés que le werewolf voit un PC de jour, il se change en humain.

Par ruru666 le 11/2/2003 à 15:29:19 (#3214912)

je ne vois pas le raport (desolé), mais il sagit d un script permettant de transformer un NPC en loup garou la nuit et vice versa ?...

De plus je suis incapable de scripté je suis un simple utilisateur donc ce script a peutetre un defaut ou son utilisation est mal expliké pour un neophite comme moi...

Par ruru666 le 11/2/2003 à 15:38:02 (#3214959)

Ok g trouvé desolé de vous avoir embeter...


:merci: :maboule: :merci:

Par Jaha Effect le 11/2/2003 à 16:13:39 (#3215197)

Si tu as trouvé met au moins le script corrigé et fait un lien vers le persistant ;)

Jaha Effect :D

Par ruru666 le 11/2/2003 à 17:04:06 (#3215554)

ben mon cher jaha, g trouvé comment il marchait pas s'il y avait une erreure (j'en suis malheureusement incapable), mais toi ki est plutot bon comment explike tu ke deslors ke lon veut changer les blueprint et tag ca ne marche plus ? et ca me fait le symptome ke je decris au tout debut ?????????????????????

Car c lourd de pa pouvoir creer des loup avec d otres blueprint (pour les wp et tout...)

Par Thungril le 11/2/2003 à 19:11:48 (#3216534)

J'ai la nette impression que tu ne te sers pas du Créature Wizard...ben utilises le, et crées de "nouvelles" créatures, au lieu d'utiliser les pré-construites...

Par Jaha Effect le 11/2/2003 à 19:18:19 (#3216594)

Mais dis moi, quand tu change les nom de tes garous, est ce que tu les change aussi ici

if (((sMyName != "Werewolf") && (!bDay)) || ((sMyName == "Werewolf") && (bDay)))

Si tu change le tag de ta créature en jeu il faut le changer ici aussi dans cette partie du code.

Jaha Effect :D

Par Reyan le 11/2/2003 à 19:25:05 (#3216647)

Provient du message de ruru666
ben mon cher jaha, g trouvé comment il marchait pas s'il y avait une erreure (j'en suis malheureusement incapable), mais toi ki est plutot bon comment explike tu ke deslors ke lon veut changer les blueprint et tag ca ne marche plus ? et ca me fait le symptome ke je decris au tout debut ?????????????????????

Car c lourd de pa pouvoir creer des loup avec d otres blueprint (pour les wp et tout...)


en fait c'est à cause des astuces du script :D
pour vérifier que la créature est un loup, il vérifie que son nom est ou non Werewolf

je crois que tu fait une erreur jaha :chut:
les tags interviennent ici :
string sChangeTo = GetTag(OBJECT_SELF);

en fait l'astuce c'est que la creature va se transformer en "son tag", autrement dit, si tu change les tags, ba il faut qu'il y est une créature avec le tag changé, en bluesprint :)

Par ruru666 le 11/2/2003 à 19:25:25 (#3216649)

oui oui je suis tres nul mais ca g fais :(
ken je met autre chose ke "werewolf" pdt la nuit le loup meurt pour laisser la place a l'humain et vice versa sans arret et pdt le jour plus rien... HELP !!!

Par Reyan le 11/2/2003 à 19:39:02 (#3216746)

ce que tu peux faire, c'est creer un loup pour chaque gus, et un gus pour chaque loup, au gus 1 tu met comme tag "LOUP1" et au loup 1 "GUS1", au gus 2 "LOUP2" et au loup 2"GUS2"
avec gus1 comme bluesprint du gus1 etc.
mais il fau faire attention de bien laissé comme nom Werewolf à chaque loup :) ou alors faut faire un script par gus/loup :monstre:

Par Jaha Effect le 11/2/2003 à 19:49:41 (#3216805)

Autant pour moi ;)

Jaha Effect :D

Par ruru666 le 12/2/2003 à 16:50:54 (#3223420)

Provient du message de Reyan
ce que tu peux faire, c'est creer un loup pour chaque gus, et un gus pour chaque loup, au gus 1 tu met comme tag "LOUP1" et au loup 1 "GUS1", au gus 2 "LOUP2" et au loup 2"GUS2"
avec gus1 comme bluesprint du gus1 etc.
mais il fau faire attention de bien laissé comme nom Werewolf à chaque loup :) ou alors faut faire un script par gus/loup :monstre:


Et ben tu peu essayer si ca marche je te paye une epée +1

Je l ais fais et refais je modifier le script pour les nouveau en mettant le nouveau blueprint du werewolf2, et ce ki ce produit et ce ke g expliké au debut de mon pot c a d :

la nuit le loup n arrete pa de mourir et revenir en humain pour revenir en loup sans arret ! et le jour ki soit humain ou loup il reste sous cette aparence.... LASSANT !....

Par Reyan le 12/2/2003 à 17:46:35 (#3223948)

je confirme, ca marche, donne l'épée :p
mais il faut bien penser a mettre Werewolf comme nom des loups :p
bon, je te propose un truc pour pouvoir mettre le nom et le tag que tu veux à tes loups et à tes NPC :

dans le onspawn de tes loups, tu mets ca :


void main()
{
SetLocalInt(OBJECT_SELF, "LOUP", TRUE);
SetLocalString(OBJECT_SELF, "LOUP_GAROU", "TAG_DU_NPC");
//TAG_DU_NPC doit correspondre au tag du NPC qui se transforme en ce loup, à la majuscule près
}


et dans le onspawn des NPC tu met :

void main()
{
SetLocalInt(OBJECT_SELF, "LOUP", TRUE);
SetLocalString(OBJECT_SELF, "LOUP_GAROU", "TAG_DU_LOUP");
//TAG_DU_NPC doit correspondre au tag du Loup en qui se transforme ce NPC, à la majuscule près
}


et enfin dans le onheartbeat de tout ce petit monde :

/////////////////////////////////////////////////////
//:Le loup-garou
//:de VorpalBlade depuis Bioware
//:Traduit/Modifié par MrCocktail pour NWN-fr.com
//modif de Reyan : necessite un SetLocalInt et un SetLocalSring dans le onspawn
/////////////////////////////////////////////////////

void ChangeWerewolf(object oObject, string sTemp);
void ChangeTo(string sTemp, location lLoc);
void main()
{
int bDay = GetIsDay();
int nLoup = GetLocalInt(OBJECT_SELF, "LOUP");
string sChangeTo = GetLocalString(OBJECT_SELF, "LOUP_GAROU");
object oMe = OBJECT_SELF;
// If I'm a man and its night or I'm a WW and it is day.
if (((nLoup == FALSE) && (!bDay)) || ((nLoup == TRUE) && (bDay))){
AssignCommand(GetModule(), ChangeWerewolf(oMe, sChangeTo));
}

}
void ChangeWerewolf(object oObject, string sTemp)
{
// Prend la location de l'un, le détruit, fait apparaitre l'autre
effect eVis = EffectVisualEffect(VFX_FNF_HOWL_MIND);
location lLoc = GetLocation(oObject);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, lLoc, 2.0f);
DestroyObject(oObject);
DelayCommand(0.5f, ChangeTo(sTemp, lLoc));
}
void ChangeTo(string sTemp, location lLoc)
{
CreateObject(OBJECT_TYPE_CREATURE, sTemp, lLoc);
effect eVis = EffectVisualEffect(VFX_COM_CHUNK_RED_SMALL);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, lLoc, 2.0f);
}


enfin bon :maboule:

Par ruru666 le 12/2/2003 à 18:28:32 (#3224294)

encore merci, ton script (bien ke moi nul) ma fais comprendre pourkoi ca merdait, je metait ne nouvo blueprint dans un nouvo script a chake fois :(


ENCORE MERCI A TOI je t enverais une epee +2 pour la peine !!

JOL Archives 1.0.1
@ JOL / JeuxOnLine