La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 16:11:37
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Und3rWorld Voyageur Messages: 3 |
Bonjour tout le monde je suis un tres gros joueur de Neverwinter Nights et je vien juste de commencer a me mettre sur l'editeur pour cree un module et je voudrai savoir comment faire tirer une catapult qui est activer par un PNJ et que c'est projectil fasse des domage et je supose que je doit me servir de script je voudrait faire la meme chose pour Balliste si quelqu'un pourrait me donner directement le scripte sa serai tres tres gentil de sa par @++ all
|
Revenir en haut | |
Raudgers Ecuyer Messages: 46 Localisation: En furtif à coter de toi... |
Alors si je comprend bien c'est le PNJ (Personnage non joueur) qui doit activer la catapulte pour qu'elle tire un boulet, car si c'est ça il faut aussi un scrypt sur le PNJ pour qu'il vienne activer la catapulte à un certain moment, donc j'ai besoin de savoir si tu n'a pas fait une ereure dans la demande et si tu est bien sur que c'est le PNJ qui doit activer la catapulte.
_________________ I need your help.Give light to me please. J'ai besoin de votre aide. Donnez-moi la lumière s'il vous plaît. |
Revenir en haut | |
Und3rWorld Voyageur Messages: 3 |
Eu ba en faite je voudrais que se soit un PNJ et qui lactive on va dire a un temps de 10secondes sa veut dire que tout les 10secondes je voudrais que le PNJ l'active et pareil pour des balliste comment je doit mis prendre??
|
Revenir en haut | |
Lemli Grand Chevalier Messages: 114 |
Je pose la même question mais avec un PJ
|
Revenir en haut | |
Raudgers Ecuyer Messages: 46 Localisation: En furtif à coter de toi... |
Alors avec un PJ ca donne ca :
- OnUsed de la catapulte : NWScript :
#include "xs_detonate_loc" int iRandFar=17; int iRandNear=17; int iTurnToFaceTarget=FALSE; void main() { object oUser = GetLastUsedBy(); effect eStop = EffectCutsceneParalyze(); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStop, oUser, 9.0); int iReloading = GetLocalInt(OBJECT_SELF,"reloading"); if(iReloading==TRUE) return; SetLocalInt(OBJECT_SELF,"reloading",TRUE); float fFacing = GetLocalFloat(OBJECT_SELF,"FACING"); fFacing = GetFacing(OBJECT_SELF); SetLocalFloat(OBJECT_SELF,"FACING",fFacing); vector vMyPos = GetPosition(OBJECT_SELF); int iRandomDist = Random(iRandFar-iRandNear)+iRandNear; float fRandomDist =IntToFloat(iRandomDist); vector vNewPos = vMyPos + (fRandomDist * AngleToVector(fFacing)); location lTarget = Location(GetArea(OBJECT_SELF),vNewPos, 0.0); float fX_Pos = vNewPos.x; float fY_Pos = vNewPos.y; object oCheckZ = GetNearestObjectToLocation(OBJECT_TYPE_ALL,lTarget,1); vector vNewZCord = GetPosition(oCheckZ); float fZ_Pos = vNewZCord.z; vector vFinalLocation = Vector(fX_Pos,fY_Pos,fZ_Pos); location lFinalTarget = Location(GetArea(OBJECT_SELF),vFinalLocation, 0.0); if(iTurnToFaceTarget==TRUE) SetFacingPoint(vFinalLocation); float fRange = GetDistanceBetweenLocations(lTarget, GetLocation(OBJECT_SELF)); float fDelay = fRange / 12.0; AssignCommand(OBJECT_SELF, ActionCastFakeSpellAtLocation(SPELL_FIREBALL, lFinalTarget, PROJECTILE_PATH_TYPE_BALLISTIC)); PlaySound("sim_explsun"); DelayCommand(fDelay, BlastArea(lFinalTarget)); DelayCommand(fDelay, SetLocalInt(OBJECT_SELF,"reloading",FALSE)); } - OnUserDefined NWScript :
#include "NW_I0_SPELLS" effect eShake = EffectVisualEffect(VFX_FNF_SCREEN_BUMP); effect eDark = EffectVisualEffect(VFX_DUR_DARKNESS); effect eBoom = EffectVisualEffect(VFX_FNF_FIREBALL,FALSE); effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); effect eFire = EffectVisualEffect(VFX_IMP_PULSE_FIRE); effect knockdown = EffectKnockdown(); effect dazed = EffectDazed(); effect eSmoke = EffectVisualEffect(320); effect eDebris = EffectVisualEffect(354); effect eDam; float fDelay; int nDamage; effect eDest = EffectDeath(); object oDetinator = GetLocalObject(OBJECT_SELF, "GZ_OBJECT_ACTIVATOR"); int iRoll6 = d6(10); int iRoll5 = d6(15); int iRoll4 = d6(20); int iRoll3 = d6(25); int iRoll2 = d6(30); int iRoll1 = d6(30); void BlastArea(location lLoc); void Knock_Down(location lLoc) { object oPC = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lLoc, TRUE, OBJECT_TYPE_CREATURE); while (GetIsObjectValid(oPC)) { int iKnock = d10(); float fKnock = IntToFloat(iKnock); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, knockdown, oPC, fKnock); SetLocalInt(oPC, "Blast_Radius",6); SetIsTemporaryEnemy(oDetinator, oPC, FALSE); oPC = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lLoc, TRUE, OBJECT_TYPE_CREATURE); } } void Assign_Damage(location lLoc, float fRadius, int iBlastEffect) { object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fRadius, lLoc, TRUE, OBJECT_TYPE_CREATURE); while (GetIsObjectValid(oTarget)) { if (!GetPlotFlag(oTarget)) SetLocalInt(oTarget, "Blast_Radius", iBlastEffect); oTarget = GetNextObjectInShape(SHAPE_SPHERE, fRadius, lLoc, TRUE, OBJECT_TYPE_CREATURE); } } void Do_Damage(location lLoc) { object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lLoc, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); while (GetIsObjectValid(oTarget)) { if (!GetPlotFlag(oTarget)) { int iDamageApply = GetLocalInt(oTarget, "Blast_Radius"); fDelay = GetDistanceBetweenLocations(lLoc, GetLocation(oTarget))/20; if (GetObjectType(oTarget) == OBJECT_TYPE_DOOR) nDamage = GetCurrentHitPoints(oTarget)+1; if (GetTag(oTarget) == "XS_BOULDER") nDamage = GetCurrentHitPoints(oTarget)+1; else if (GetTag(oTarget) =="gz_obj_pkeg") nDamage = d6(2); else if (iDamageApply==6) nDamage = iRoll6; else if (iDamageApply==5) nDamage = iRoll5; else if (iDamageApply==4) nDamage = iRoll4; else if (iDamageApply==3) nDamage = iRoll3; else if (iDamageApply==2) nDamage = iRoll2; else if (iDamageApply==1) nDamage = iRoll1; else nDamage = 0; nDamage = GetReflexAdjustedDamage(nDamage, oTarget, 40, SAVING_THROW_TYPE_SONIC); //GetSpellSaveDC() eDam = EffectDamage(nDamage, DAMAGE_TYPE_SONIC); if(nDamage > 0 ) { DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); } DeleteLocalInt(oTarget, "Blast_Radius"); } oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lLoc, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); } } void BlastArea(location lLoc) { ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eBoom, lLoc); DelayCommand(0.3f,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eDest,lLoc)); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,eDark,lLoc,0.5); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eFire, lLoc); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eDebris, lLoc); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eDebris, lLoc); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eDebris, lLoc); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eDebris, lLoc); PlaySound("sim_explsun"); ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eShake, lLoc); Knock_Down(lLoc); Assign_Damage(lLoc, RADIUS_SIZE_GARGANTUAN, 5); Assign_Damage(lLoc, RADIUS_SIZE_HUGE, 4); Assign_Damage(lLoc, RADIUS_SIZE_LARGE, 3); Assign_Damage(lLoc, RADIUS_SIZE_MEDIUM, 2); Assign_Damage(lLoc, RADIUS_SIZE_SMALL, 1); Do_Damage(lLoc); } Alors celuila il va pas le compiler, ne t' inquiete pas c'est normal tu le save avec le nom "xs_detonate_loc" et tout ira bien, d'apres mes testes ca marche impec.(Je me suis permit de rajouter un timing de 9 secondes entre chaque utilisation pour éviter le spam). Bon je regarde ce que je peut fair pour la personne qui veut qu'elle tire toute les 10 secondes. _________________ I need your help.Give light to me please. J'ai besoin de votre aide. Donnez-moi la lumière s'il vous plaît. |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Page 1 sur 1 ¤
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum