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:39:28
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 |
kadz_OnE Voyageur Messages: 1 |
voila en fait j'ai telecharger le lootable corp pour pj mon probleme d'une je ne sais pas scripter .. et donc vus que j'aimerais des modification de ses scripts je demande si quelqu'un voudrais bien m'aider pour modifier cela...
voila deja les scripts OnActivateItem NWScript :
#include "corpse_lib" void main() { object item = GetItemActivated(); object PC = GetItemActivator(); object target = GetItemActivatedTarget(); if(GetTag(item) == CorpseSkinToolsTag) { CorpseCutOffCreatureSkin(PC,target); } } OnClientLeave NWScript :
#include "corpse_lib" void main() { object pc = GetExitingObject(); object corpse = GetLocalObject(pc,CorpsePCCorpse); if(GetIsObjectValid(corpse)) { /*DestroyEquipment(corpse); AssignCommand(GetOriginalCorps e(corpse),giveBackItems(corpse ,TRUE,FALSE,TRUE)); AssignCommand(corpse,SetIsDest royable(TRUE));*/ string PCID = GetLocalString(pc,CorpsePCID); /*int size = GetStringArraySize(CorpseDeadP CLeftArray); SetStringInArray(CorpseDeadPCL eftArray,PCID,size);*/ //object corpse2 = GetOriginalCorpse(corpse); AssignCommand(pc,giveBackItems(corpse,FALSE)); SetLocalString_Corpse(corpse,CorpseDeadPCLeftID,PCID); SetLocalObject(OBJECT_SELF,PCID,corpse); StoreCampaignObject(CorpseCampainName,PCID,corpse,pc); SetCampaignLocation(CorpseCampainName,PCID+"Location",GetLocation(corpse),pc); DeleteLocalObject(pc,CorpsePCCorpse); DeleteLocalObject(corpse,CorpsePCCorpse); } } OnPlayerDeath NWScript :
/*void ClearAllFactionMembers(object oMember, object oPlayer)
{ // AssignCommand(oMember, SpeakString("here")) ; AdjustReputation(oPlayer, oMember, 100); SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad&qu ot;, 10); // * Player bad object oClear = GetFirstFactionMember(oMember, FALSE); while (GetIsObjectValid(oClear) == TRUE) { ClearPersonalReputation(oPlaye r, oClear); oClear = GetNextFactionMember(oMember, FALSE); } } */ void Raise(object oPlayer) { effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION); effect eBad = GetFirstEffect(oPlayer); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPlayer)), oPlayer); //Search for negative effects while(GetIsEffectValid(eBad)) { if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS || GetEffectType(eBad) == EFFECT_TYPE_DEAF || GetEffectType(eBad) == EFFECT_TYPE_PARALYZE || GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL) { //Remove effect if it is negative. RemoveEffect(oPlayer, eBad); } eBad = GetNextEffect(oPlayer); } //Fire cast spell at event for the specified target SignalEvent(oPlayer, EventSpellCastAt(OBJECT_SELF, SPELL_RESTORATION, FALSE)); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oPlayer); } void main() { object oPlayer = GetLastPlayerDied(); // * Handle Spirit of the Wood Death // * make friendly to Each of the 3 common factions AssignCommand(oPlayer, ClearAllActions()); // * Note: waiting for Sophia to make SetStandardFactionReptuation to clear all personal reputation if (GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oPlayer) <= 10) { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 80, oPlayer); } if (GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oPlayer) <= 10) { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 80, oPlayer); } if (GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oPlayer) <= 10) { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 80, oPlayer); } effect resurrection = EffectResurrection(); //DelayCommand(3.0,ApplyEffect ToObject(DURATION_TYPE_INSTANT ,resurrection,oPlayer)); DelayCommand(2.5,ExecuteScript("corpse_dying",oPlayer)); //DelayCommand(2.5, PopUpGUIPanel(oPlayer,GUI_PANE L_PLAYER_DEATH)); } OnUnAcquierItem NWScript :
#include "corpse_lib" void main() { object item = GetModuleItemLost(); if( (GetTag(item) == CorpseFPickableCorpseTag || GetTag(item) == CorpseMPickableCorpseTag) &&!GetIsObjectValid(GetItemPossessor(item)) ) { if(GetIsObjectValid(MoveCorpseTo(GetLocation(GetModuleItemLostBy()),GetPickableCorpse(item)))) { DestroyObject(item); } } else { //Put other unAcquire events here. } } Sur le placable invisible ayant le tag "CorpseInvisibleObject" et resf "deadinv" il y a OnClose NWScript :
#include "corpse_lib" void main() { /*if(GetCommandable()) { */ object target = GetOriginalCorpse(); object pc = GetLocalObject(target,CorpsePCCorpse); /*if(GetIsObjectValid(pc)) { target = pc; }*/ giveBackItems(target,FALSE); /* } else { SetCommandable(TRUE); ActionDoCommand(giveBackItems( GetOriginalCorpse(),FALSE)); ActionDoCommand(SetCommandable (TRUE)); SetCommandable(FALSE); }*/ } Sur le placable invisible ayant le tag "CorpseInvisibleObject" et resf "deadinv" il y a OnClose NWScript :
#include "corpse_lib" void main() { /*if(GetCommandable()) { */ object target = GetOriginalCorpse(); object pc = GetLocalObject(target,CorpsePCCorpse); /*if(GetIsObjectValid(pc)) { target = pc; }*/ giveBackItems(target,FALSE); /* } else { SetCommandable(TRUE); ActionDoCommand(giveBackItems( GetOriginalCorpse(),FALSE)); ActionDoCommand(SetCommandable (TRUE)); SetCommandable(FALSE); }*/ } OnDamaged NWScript :
#include "corpse_lib" void main() { if(GetUseSaves()) { object target = GetOriginalCorpse(); object item = GetFirstItemInInventory(); int dammages = GetLocalInt(OBJECT_SELF,CorpseItemLastHP) - GetCurrentHitPoints(); SetLocalInt(OBJECT_SELF,CorpseItemLastHP,GetCurrentHitPoints()); while(GetIsObjectValid(item)) { if(!GetPlotFlag(item) && item != GetPickableCorpse()) { /*WriteTimestampedLogEntry(&qu ot;Total Dammages = "+IntToString(GetTotalDam ageDealt())); SetDamageTaken(GetTotalDamageD ealt(),0,item); WriteTimestampedLogEntry(" ;Fire Dammages = "+IntToString(GetDamageDe altByType(DAMAGE_TYPE_FIRE))); SetDamageTaken(GetDamageDealtB yType(DAMAGE_TYPE_FIRE),1,item ); WriteTimestampedLogEntry(" ;Acid Dammages = "+IntToString(GetDamageDe altByType(DAMAGE_TYPE_ACID))); SetDamageTaken(GetDamageDealtB yType(DAMAGE_TYPE_ACID),1,item );*/ SetDamageTaken(dammages,0,item); ExecuteScript(SavesScriptName,item); } item = GetNextItemInInventory(); } item = GetFirstItemInInventory(target); while(GetIsObjectValid(item)) { if(!GetPlotFlag(item)) { SetDamageTaken(dammages,0,item); ExecuteScript(SavesScriptName,item); } item = GetNextItemInInventory(target); } } } OnDisturbed NWScript :
#include "corpse_lib" void main() { //GetLastDisturbed int type = GetInventoryDisturbType(); object item = GetInventoryDisturbItem(); if(type == INVENTORY_DISTURB_TYPE_REMOVED || type == INVENTORY_DISTURB_TYPE_STOLEN) { object linked = GetLocalObject(item,CorpseOriginalObject); //WriteTimestampedLogEntry(&qu ot;Corpse: object taken"); if(GetIsObjectValid(linked)) { SetPlotFlag(linked,FALSE); DestroyObject(linked); if(GetIsObjectValid(GetLocalObject(item,CorpsePCCorpse))) { DestroyObject(GetLocalObject(item,CorpsePCCorpse)); } //WriteTimestampedLogEntry(&qu ot;Destroying object: " + GetTag(linked)); DeleteLocalObject(item,CorpseOriginalObject); } else if(item == GetPickableCorpse()) { object copy = MoveCorpseTo(GetLocation(GetWaypointByTag(CorpsePickableWayPoint))); DestroyObject(GetPickableCorpse(copy)); SetPickableCorpse(GetPickableCorpse(),copy); SetPickableCorpse(copy,GetPickableCorpse()); } else { } } } OnOpen NWScript :
#include "corpse_lib" int searchTest(object player) { int retval = -1; if( !GetLocalInt(OBJECT_SELF,CorpseFindAttemptRoot+GetPCID(player))) { int dice; int level = GetLevelByClass(CLASS_TYPE_ROGUE,player); int score = 0; string suffix = GetPCID(player); SetLocalInt(OBJECT_SELF,CorpseFindAttemptRoot+suffix,TRUE); int attemptNumber = GetLocalInt(OBJECT_SELF,CorpseFindAttemptNumber); SetLocalInt(OBJECT_SELF,CorpseFindAttemptNumber,attemptNumber+1); SetLocalString(OBJECT_SELF,CorpseFindAttemptRoot+IntToString(attemptNumber),suffix); if(level > 0) { int rank = GetSkillRank(SKILL_PICK_POCKET,player); int try = 0; int success = FALSE; while(try < level && !success) { dice = d20(); score = dice + rank; int value = score - GetLocalInt(OBJECT_SELF,CorpseFindDifficultyVarName); if(dice == 1) { level--; } else if(value >= 0 || (score >= GetMaxDD(OBJECT_SELF) && getFindDifficulty() < GetMaxDD(OBJECT_SELF)) || dice == 20) { success = TRUE; retval = value; } try++; } } else { dice = d20(); int rank = GetSkillRank(SKILL_SEARCH,player); score = dice + rank; int value = score - GetLocalInt(OBJECT_SELF,CorpseFindDifficultyVarName); if(value >=0) { retval = value; } } //Score is high enought to find all items if(score >= GetMaxDD(OBJECT_SELF) && getFindDifficulty() < GetMaxDD(OBJECT_SELF)) { SetLocalInt(OBJECT_SELF,CorpseCriticalResult,3); } switch(dice) { case 1: SetLocalInt(OBJECT_SELF,CorpseCriticalResult,2); break; case 20: SetLocalInt(OBJECT_SELF,CorpseCriticalResult,1); break; default: //SetLocalInt(OBJECT_SELF,Corp seCriticalResult,0); break; } //WriteTimestampedLogEntry(&qu ot;searchTest dice value = "+IntToString(dice)); //debug //WriteTimestampedLogEntry(&qu ot;searchTest score value = "+IntToString(score)); //debug } //WriteTimestampedLogEntry(&qu ot;searchTest return value = "+IntToString(retval)); //debug //WriteTimestampedLogEntry(&qu ot;searchTest DD value = "+IntToString(getFindDiff iculty())); //debug return retval; } void main() { if(GetArea(OBJECT_SELF) != GetArea(GetWaypointByTag(CorpsePickableWayPoint))) { SetLocalInt(OBJECT_SELF,CorpseCriticalResult,0); object opener = GetLastOpenedBy(); object target = GetLocalObject(OBJECT_SELF,CorpseCreatureCorpse); object pc = GetLocalObject(target,CorpsePCCorpse); /*if(GetIsObjectValid(pc)) { target = pc; }*/ if(GetLocalInt(OBJECT_SELF,CorpseFindDifficultyVarName) > 0 && !GetIsDM(opener)) { int value = searchTest(opener); if(value >= 0) { if(GetLocalInt(OBJECT_SELF,CorpseCriticalResult) == 1 ) { //WriteTimestampedLogEntry(&qu ot;Getting objects, critical success..."); GetItemsInInventory(target,0,TRUE,opener); SetCorpseDialogFound(TRUE); } else if(GetLocalInt(OBJECT_SELF,CorpseCriticalResult) == 3) { GetItemsInInventory(target,0,TRUE,opener); SetCorpseDialogFound(TRUE); } else if(GetLocalInt(OBJECT_SELF,CorpseCriticalResult) == 0) { int itemNumber = (value/5) + 1; //WriteTimestampedLogEntry(&qu ot;Getting objects..."); GetItemsInInventory(target,itemNumber,TRUE,opener); SetCorpseDialogFound(TRUE); } SetCommandable(TRUE); ActionDoCommand(SpeakOneLinerConversation(CorpseOneLinerDialogName,opener)); ActionDoCommand(SetCommandable(TRUE)); SetCommandable(FALSE); } else { //WriteTimestampedLogEntry(&qu ot;Getting allready found objects..."); GetFoundItemsInInventory(target,opener); } TakeGoldFromCreature(GetGold(target),target); } else { //WriteTimestampedLogEntry(&qu ot;Getting allready found objects..."); GetItemsInInventory(target); //SetCorpseDialogFound(TRUE); //WriteTimestampedLogEntry(&qu ot;searchTest DD value = "+IntToString(getFindDiff iculty())); //debug TakeGoldFromCreature(GetGold(target),target); } DeleteLocalInt(OBJECT_SELF,CorpseCriticalResult); } } OnspellcastAt NWScript :
#include "corpse_lib" void getInventory(object target,location moveTo) { TakeGoldFromCreature(GetGold(target),target); GetItemsInInventory(target,0,FALSE,OBJECT_INVALID,TRUE); SetCommandable(TRUE); /*object ghost = GetObjectByTag("CorpseGho st"); object player = OBJECT_SELF; //SetCutsceneMode(player,TRUE) ; object item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_ARMS)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_ARMS); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_ARROWS)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_ARROWS); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_BELT)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_BELT); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_BOLTS)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_BOLTS); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_BOOTS)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_BOOTS); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_BULLETS)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_BULLETS); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_CARMOUR)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_CARMOUR); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_CHEST)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_CHEST); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_CLOAK)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_CLOAK); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_HEAD)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_HEAD); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_LEFTHAND)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_ARMS); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_LEFTRING)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_LEFTRING); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_NECK)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_NECK); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_RIGHTHAND)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_RIGHTHAND); item = GetLocalObject(ghost,GetPCID(p layer)+IntToString(INVENTORY_S LOT_RIGHTRING)); ActionTakeItem(item,ghost); ActionEquipItem(item,INVENTORY _SLOT_RIGHTRING); ActionJumpToLocation(moveTo);* / ActionDoCommand(SetCutsceneMode(OBJECT_SELF,FALSE)); //SetCutsceneMode(OBJECT_SELF, FALSE); } /*void next2(object corpse,string script); void next1(object PC,int spell) { location moveTo = GetLocation(OBJECT_SELF); effect resurrection = EffectResurrection(); ApplyEffectToObject(DURATION_T YPE_INSTANT,resurrection,PC); object corpse = OBJECT_SELF; AssignCommand(PC,ClearAllActio ns(TRUE)); AssignCommand(PC,ActionJumpToL ocation(moveTo)); //AssignCommand(PC,ActionDoCom mand(next2(corpse,script))); AssignCommand(PC,ActionDoComma nd(SetCommandable(TRUE))); AssignCommand(PC,SetCommandabl e(FALSE)); effect eVis = EffectVisualEffect(VFX_IMP_RAI SE_DEAD); ApplyEffectAtLocation(DURATION _TYPE_INSTANT,eVis,GetLocation (OBJECT_SELF)); if(spell == SPELL_RESURRECTION) { ApplyEffectToObject(DURATION_T YPE_INSTANT,EffectHeal(GetMaxH itPoints(PC)),PC); } DeleteLocalObject(PC,CorpsePCC orpse); giveBackItems(PC,TRUE,TRUE,TRU E); } void next2(object corpse,string script) { object PC = OBJECT_SELF; effect death = EffectDeath(FALSE,FALSE); SetLocalObject(PC,CorpsePCCorp se,PC); ApplyEffectToObject(DURATION_T YPE_INSTANT,death,PC); //AssignCommand(corpse,SetLoca lObject(OBJECT_SELF,CorpseCrea tureCorpse,PC)); AssignCommand(corpse,giveBackI tems(PC,TRUE,TRUE,TRUE)); AssignCommand(corpse,SetComman dable(TRUE)); //AssignCommand(corpse,ActionW ait(3.0)); AssignCommand(corpse,ActionDoC ommand(ExecuteScript(script,OB JECT_SELF))); //AssignCommand(corpse,ActionD oCommand(DeleteLocalObject(PC, CorpsePCCorpse))); AssignCommand(corpse,ActionDoC ommand(SetCommandable(TRUE))); AssignCommand(corpse,SetComman dable(FALSE)); }*/ void main() { int spell = GetLastSpell(); object this = OBJECT_SELF; object caster = GetLastSpellCaster(); object target = GetLocalObject(OBJECT_SELF,CorpseCreatureCorpse); object PC = GetLocalObject(target,CorpsePCCorpse); SetLocalObject(OBJECT_SELF,CorpseSpellCaster,caster); //WriteTimestampedLogEntry(&qu ot;Spell casted on corpse: "+IntToString(spell)); if(!GetCorpseIsNotResurectable(target) && GetLocalString(target,CorpseDeadPCLeftID) == "") { if(SPELL_RESURRECTION == spell) { if(GetIsObjectValid(PC)) { //target = PC; SetCutsceneMode(PC); AssignCommand(PC,ClearAllActions(TRUE)); DestroyEquipment(target); //GetItemsInInventory(target,0 ,FALSE,OBJECT_INVALID,TRUE); ActionDoCommand(SetLocalObject(OBJECT_SELF,CorpseCreatureCorpse,PC)); location moveTo = GetLocation(OBJECT_SELF); effect resurrection = EffectResurrection(); ApplyEffectToObject(DURATION_TYPE_INSTANT,resurrection,PC); object corpse = OBJECT_SELF; effect eVis = EffectVisualEffect(VFX_IMP_RAISE_DEAD); ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVis,GetLocation(OBJECT_SELF)); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(PC)),PC); AssignCommand(PC,ActionJumpToLocation(moveTo)); //AssignCommand(PC,ActionDoCom mand(SetCommandable(TRUE))); DeleteLocalObject(PC,CorpsePCCorpse); //AssignCommand(PC,ActionDoCom mand(SetCutsceneMode(PC,FALSE) )); giveBackItems(PC,TRUE,TRUE,TRUE); AssignCommand(PC,ActionDoCommand(getInventory(target,moveTo))); /*AssignCommand(target,giveBac kItems(PC,TRUE,FALSE,TRUE)); AssignCommand(target,SetComman dable(TRUE)); AssignCommand(target,ActionDoC ommand(SetIsDestroyable(TRUE)) );*/ } else { AssignCommand(target,giveBackItems(OBJECT_SELF,TRUE,TRUE)); ExecuteScript(ResurectionScriptName,OBJECT_SELF); giveBackItems(target,TRUE,TRUE,TRUE); } } else if(SPELL_RAISE_DEAD == spell) { if(GetIsObjectValid(PC)) { //target = PC; SetCutsceneMode(PC); AssignCommand(PC,ClearAllActions(TRUE)); DestroyEquipment(target); //GetItemsInInventory(target,0 ,FALSE,OBJECT_INVALID,TRUE); ActionDoCommand(SetLocalObject(OBJECT_SELF,CorpseCreatureCorpse,PC)); location moveTo = GetLocation(OBJECT_SELF); effect resurrection = EffectResurrection(); ApplyEffectToObject(DURATION_TYPE_INSTANT,resurrection,PC); object corpse = OBJECT_SELF; effect eVis = EffectVisualEffect(VFX_IMP_RAISE_DEAD); ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVis,GetLocation(OBJECT_SELF)); AssignCommand(PC,ActionJumpToLocation(moveTo)); //AssignCommand(PC,ActionDoCom mand(SetCommandable(TRUE))); DeleteLocalObject(PC,CorpsePCCorpse); //AssignCommand(PC,ActionDoCom mand(SetCutsceneMode(PC,FALSE) )); giveBackItems(PC,TRUE,TRUE,TRUE); AssignCommand(PC,ActionDoCommand(getInventory(target,moveTo))); /*SetCommandable(TRUE); ActionDoCommand(next1(PC,spell )); ActionDoCommand(SetCommandable (TRUE)); SetCommandable(FALSE);*/ } else { AssignCommand(target,giveBackItems(OBJECT_SELF,TRUE,TRUE)); ExecuteScript(RaiseDeadScriptName,OBJECT_SELF); giveBackItems(target,TRUE,TRUE,TRUE); } } } } Walla ... donc les modifications qui m'interesseraient .. serais .. une fois le pj mort la creation d'un sac contenant tout son or. un respawn en fonction de son alignement enlever le drop dans le corp de tout l'inventaire du pj. juste que en ouvrant l'inventaire (une fois le pj respawn ) on ne trouve que l'objet d'inventaire corp. inclure dés que le pj est mort ( encore a l'ecran de mort ) une perte d'xp et aucune perte au respawn. j'ai regarder dans anphillia il y des parties de scripts qui m'interesserais mais je ne sais pas dechiffrer cela pour prendre les parties qui m'interessent .... Voila si quelqu'un voulais bien m'aider ... ^^ c'est pour la creation d'un monde persistant ^^ Mercii d'avance _________________ heureux l'etudiant qui comme la riviere peut suivre son cour sans quitter son lit |
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