Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Portail de retour mixte
Portail de retour mixte
Par Blam le 21/8/2002 à 12:12:33 (#1996610)
les deux liens restent valable.
////////////////////////////////////////////////////////////////////////////////////
/////Moded'emploipasapas///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
A)-Edit/module properties/events/onActiveItem/it_10_plot
ce script:
#include "NW_I0_Plot"
void main()
{
IsRecall();
}
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
B)-Creer le Waypoint appelé NW_DEATH_TEMPLE
NW_DEATH_TEMPLE pas de changements dans ses caracteristiques. C'est la que vous respawn en cas de deces.
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
C)-Maintenant le Portail de retour NW_RECALL_PORTAL
Script: nw_recall_portal dans le OnUsed du portail
ce script:
/////debut//////
void main()
{
ActionStartConversation(GetLastUsedBy());
}
/////fin/////////
Lance une conversation dans advanced/conversation
conversation: nw_00_retour
------------------------------------------------------------------------------------------------------
D)-Conversation pour un choix
(creer une conversation)
"Acces a la dernière téléportation ou au dernier déces ?"
-REPONSE a)_"Dernière téléportation "
action taken/script teleporte
ce script teleporte
/////debut/////
#include "nw_i0_plot"
int CanAffordIt()
{
int nCost = 0; //Change 0 to the number of gold to take from Player
//As the cost of portal use.
// * remove the gold from the player
// * I'm having the player remove it from himself
// * but since I'm also destroying it, this will work
if (GetGold(GetPCSpeaker()) >= nCost)
{
TakeGold(nCost, GetPCSpeaker());
return TRUE;
}
return FALSE;
}
void main()
{
CanAffordIt();
location lLoc = GetLocalLocation(GetPCSpeaker(), "NW_L_LOC_RECALL");
// * Portal stores last location to jump to for future players
SetLocalInt(OBJECT_SELF, "NW_L_LOC_EVERUSED", 1);
SetLocalLocation(OBJECT_SELF, "NW_L_LOC_LAST_RECALL", lLoc);
ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_UNSUMMON), lLoc);
AssignCommand(GetPCSpeaker(), JumpToLocation(lLoc));
}
/////fin/////
-REPONSE b)"Dernier déces"
action taken/script retourdeces
ce script retourdeces:
/////debut/////
void main()
{
object oSelf = OBJECT_SELF;
effect eVis = EffectVisualEffect(VFX_IMP_UNSUMMON);
ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, eVis, GetLocalLocation(GetPCSpeaker(),"NW_L_I_DIED_HERE"));
SetLocalInt(GetPCSpeaker(), "NW_L_I_DIED", 0);
object oPC = GetPCSpeaker();
ActionCastFakeSpellAtObject(SPELL_FREEDOM_OF_MOVEMENT, OBJECT_SELF);
AssignCommand(GetPCSpeaker(), DelayCommand(0.5, JumpToLocation(GetLocalLocation(oPC,"NW_L_I_DIED_HERE"))));
}
/////fin/////
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Le portail en USEABLE (comme le dit plus bas Anteus)
petite notification
Par anteus le 27/8/2002 à 16:37:00 (#2038657)
Il s'agit du portail de recall : penser a le mettre en useable, c'est idiot mais le novice que je suis a été bon pour quelques reload avant de trouver :hardos:
a bientôt , Anteus..xxxx
JOL Archives 1.0.1
@ JOL / JeuxOnLine