En fait j'ai déja un object oPlayer= ... en début de script
faut dire c'est un peu le bazar ce script ...
Bon je le mets ce sera plus simple .. les commandes que tu m'as donné sont tout en bas ,pour le "ResumePCLocation()" simple, je le mettais tout en bas pour que ça marche bien dans le module (que les autres actions s'effectuent avant en fait)
//Hardcore Client Entering
//Archaegeo 2002 Jun 24
// This script goes in OnClientEnter in Module Properties - Events
// It checks to see if they have a Death Amulet on them, and if so
// It sets thier player state to Dead and rekills them.
#include "pwum_functions"
#include "hc_inc"
#include "hc_inc_on_enter"
#include "hc_text_enter"
#include "hc_inc_remeff"
#include "hc_inc_rezpen"
#include "hc_inc_htf"
#include "i_tagtests"
#include "anph_persist_inc"
void HCRBoot(object oPC, string sReason)
{
SendMessageToPC(oPC,sReason);
DelayCommand(3.0,BootPC(oPC));
}
void main()
{
object oPC;
oPC = GetEnteringObject();
if(!preEvent()) return;
int nPKT = GetLocalInt(oMod,"PKTRACKER");
int nDM = GetIsDM(oPC);
string sCDK = GetPCPublicCDKey(oPC);
string sName = GetName(oPC);
int iStripItems = FALSE;
int iLvl;
if(GetLocalInt(oMod,"DMRESERVE"))
{
int nC;
object oPlayers=GetFirstPC();
if(!nDM)
{
while(GetIsObjectValid(oPlayers))
{
if(!GetIsDM(oPlayers)) nC++;
oPlayers=GetNextPC();
}
}
if(nC > GetLocalInt(oMod,"DMRESERVE") && nDM==FALSE)
{
HCRBoot(oPC,DMRES);
postEvent();
return;
}
}
if (GetIsPC (oPC) && !GetXP (oPC) && !GetIsDM (oPC))
iStripItems = TRUE;
if (iStripItems)
{
int iGold = GetGold (oPC);
AssignCommand (oPC, TakeGoldFromCreature (iGold, oPC, TRUE));
iLvl = AnphGetPlayerLevel (oPC);
int STARTING_GOLD = iLvl * iLvl * 60 + 100;
GiveGoldToCreature(oPC, STARTING_GOLD);
object oGear = GetItemInSlot(INVENTORY_SLOT_ARMS, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_BELT, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_BOOTS, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
//oGear = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
//if(GetIsObjectValid(oGear))
// DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_HEAD, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC);
if(GetIsObjectValid(oGear) && !GetIsNoDrop(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_NECK, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC);
if(GetIsObjectValid(oGear) && !GetIsNoDrop(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
oGear = GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC);
if(GetIsObjectValid(oGear))
DestroyObject(oGear);
// Removing PC's inventory.
object oStuff = GetFirstItemInInventory(oPC);
while(GetIsObjectValid(oStuff))
{
if (!GetIsNoDrop(oStuff))
{
DestroyObject(oStuff);
}
oStuff = GetNextItemInInventory(oPC);
}
// Greet PC.
DelayCommand(3.0, SendMessageToPC(oPC, NOGOLD + IntToString(STARTING_GOLD) + " gp."));
// Give new PC's some food.
if(GetLocalInt(oMod,"FOODSYSTEM") || GetLocalInt(oMod,"HUNGERSYSTEM"))
{
if(!GetXP(oPC) && !nDM)
CreateItemOnObject("FoodRation", oPC);
}
// Give new PC's a bedroll for the rest system
if(GetLocalInt(oMod,"BEDROLLSYSTEM"))
{
if(!GetXP(oPC) && !nDM)
if(GetIsObjectValid(GetItemPossessedBy(oPC,"bedroll"))==FALSE)
CreateItemOnObject("bedroll", oPC);
}
// Give new PC's the server info book.
if(GetIsObjectValid(GetItemPossessedBy(oPC,"AnphilliaInformation"))==FALSE)
CreateItemOnObject("AnphilliaInformation", oPC);
if(GetIsObjectValid(GetItemPossessedBy(oPC,"AmuletOfLife"))==FALSE)
CreateItemOnObject("amuletoflife", oPC);
if (!GetIsObjectValid(GetItemPossessedBy(oPC,"AnphilliaRuleBook")))
CreateItemOnObject("anphilliaruleboo", oPC);
// Give PC's an EmoteWand if using the DMHelper set.
if(!GetIsObjectValid(GetItemPossessedBy(oPC,"EmoteWand")))
CreateItemOnObject("emotewand", oPC);
}
// Check for tensers sword.
object oGear = GetItemPossessedBy (oPC, "NW_WSWMLS013");
if (GetIsObjectValid (oGear))
{
SendMessageToPC (oPC, "Tensors sword crumbles to dust..");
DestroyObject (oGear);
}
// Remember Factions.
if (GetAnphInt (AnphPCID (oPC) + "LamirFaction") == 1)
{
object oLamirFaction = GetObjectByTag ("LamirFaction");
AdjustReputation (oPC, oLamirFaction, 1);
}
if (GetAnphInt (AnphPCID (oPC) + "RanzingtonFaction") == 1)
{
object oRanzingtonFaction = GetObjectByTag ("RanzingtonFaction");
AdjustReputation (oPC, oRanzingtonFaction, 1);
}
Subraces_InitSubrace( GetEnteringObject() );
if (nDM || (sCDK!="" && sCDK==GetPersistentString(oMod,"PLAYERDM")))
{
effect eImmune = EffectImmunity(IMMUNITY_TYPE_TRAP);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eImmune, oPC);
}
int nComingBack = GetLocalInt (oMod, sName + sCDK + "HaveBeenHere");
if (nComingBack == 1)
{
int nHitPoints = GetLocalInt (oMod, sName + sCDK + "CurrentHitPoints");
int nCurHitPoints = GetCurrentHitPoints (oPC);
int nDam = nCurHitPoints - nHitPoints;
if (nDam > 0)
{
effect eDam = EffectDamage (nDam);
DelayCommand (3.0, ApplyEffectToObject (DURATION_TYPE_INSTANT, eDam, oPC));
}
}
SetLocalInt (oMod, sName + sCDK + "HaveBeenHere", 1);
if(GetLevelByClass(CLASS_TYPE_RANGER,oPC) &&
GetIsObjectValid(GetItemPossessedBy(oPC,"TrackerTool"))==FALSE)
CreateItemOnObject("trackertool", oPC);
// Give Paladins their tools that simulate missing abilities
if(GetLevelByClass(CLASS_TYPE_PALADIN,oPC)>1 &&
GetIsObjectValid(GetItemPossessedBy(oPC,"hc_palbadgecour"))==FALSE)
CreateItemOnObject("paladinsbadgeofc", oPC);
if(GetLevelByClass(CLASS_TYPE_PALADIN,oPC) &&
GetIsObjectValid(GetItemPossessedBy(oPC,"hc_paladinsymb"))==FALSE)
CreateItemOnObject("paladinsholysymb", oPC);
// Give PC's a Trap Tool in inventory
if(GetLocalInt(oMod,"HCRTRAPS") && GetIsObjectValid(GetItemPossessedBy
(oPC,"searchtool"))==FALSE)
CreateItemOnObject("searchtool", oPC);
// Give PC's the ball of saving.
// if(!GetIsObjectValid(GetItemPossessedBy(oPC,"ballofsaving")))
// CreateItemOnObject("ballofsaving", oPC);
// Give PC DM's a wand version of the HCR helper
if(sCDK != "" && sCDK==GetPersistentString(oMod,"PLAYERDM"))
{
if(GetIsObjectValid(GetItemPossessedBy(oPC,"HCRHelpwand"))==FALSE)
CreateItemOnObject("HCRHelpwand", oPC);
}
if (nDM)
{
// Give DM's a HCR Helper in inventory
if(GetIsObjectValid(GetItemPossessedBy(oPC,"HCRHelpwand"))==FALSE)
CreateItemOnObject("hcrhelpwand", oPC);
if(GetIsObjectValid(GetItemPossessedBy(oPC,"DMsHelper"))==FALSE)
CreateItemOnObject("DMsHelper", oPC);
if(GetIsObjectValid(GetItemPossessedBy(oPC,"WandOfFX"))==FALSE)
CreateItemOnObject("wandoffx", oPC);
if(!GetIsObjectValid(GetItemPossessedBy(oPC,"WandOfEnemies")))
CreateItemOnObject("wandoffriends003", oPC);
if(!GetIsObjectValid(GetItemPossessedBy(oPC,"WandOfFriends")))
CreateItemOnObject("wandoffriends004", oPC);
if(!GetIsObjectValid(GetItemPossessedBy(oPC,"WandOfAxfell")))
CreateItemOnObject("wandoffriends006", oPC);
if(!GetIsObjectValid(GetItemPossessedBy(oPC,"WandOfCleaven")))
CreateItemOnObject("wandoffriends005", oPC);
if(!GetIsObjectValid(GetItemPossessedBy(oPC,"XPWand")))
CreateItemOnObject("xpwand", oPC);
}
if (!GetXP (oPC))
SetXP (oPC, 1);
WriteTimestampedLogEntry (" -- New Player " +
GetName (oPC) +
", handle " +
GetPCPlayerName (oPC) +
", CD KEY " +
GetPCPublicCDKey (oPC));
// Send a login message to all players if one exists
if(GetLocalString(oMod,"LOGINMESSAGE") != "NONE")
SendMessageToPC(oPC,GetLocalString(oMod,"LOGINMESSAGE"));
postEvent();
object oPlayer = GetLastEnteringObject();
if (GetLocalInt(GetModule(), GetName(oPlayer) + "LocationSaved") == FALSE)
{
ResumePCLocation(oPlayer);
SetLocalInt(GetModule(), GetName(oPlayer) + "LocationSaved", TRUE);
}
}