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 05/12/2024 03:28:48
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 |
metallick Chevalier Messages: 88 |
Bonjour a tous... J'ai un souci sur mon serveur, lorsqu'un pj attaque un pnj "populace" par exemple, tous les populaces l'attaquent... jusque la tout est normal! Mais mon souci, c'est que lorsque le pj est remis sur pieds, tous les "populace" sont toujours hostiles et l'attaquent... comment régler ce souci??
|
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Toi tu as touché au script du module "OnRespawn". Dans ce script, des que le joueur renait, il se retrouve avec une faction normale, donc, il faut que tu aille voir ou est ton erreur dans ce script.
_________________ [http] |
Revenir en haut | |
metallick Chevalier Messages: 88 |
Voila mon script du "OnRespawn" si quelqu'un peux m'aider....
NWScript :
void main() { object oPC = GetLastRespawnButtonPresser(); object oTarget = GetWaypointByTag("RESPAWN"); int nLevel = GetHitDice(oPC); //son niveau actuel int nXPLastLevel = nLevel*(nLevel-1)*500; //Nb de points d'XP pour son dernier level int nSeuil = nXPLastLevel+nLevel*500; //Nombre de pts d'XP a la moitie du level int nCurrentXP = GetXP(oPC);//XP actuelle int nNewXP = 0; int nGold = FloatToInt(0.30 * GetGold(oPC)); string sCampaign = GetName(GetModule()); int nDay = GetCalendarDay(); int nMonth = GetCalendarMonth(); int nYear = GetCalendarYear(); int nHour = GetTimeHour(); int nMinute = GetTimeMinute(); int nSecond = GetTimeSecond(); int nMillisecond = GetTimeMillisecond(); if (nCurrentXP< nXPLastLevel + 100) nNewXP = nXPLastLevel-100; //100xp avant le level else if (nCurrentXP>nSeuil+100) nNewXP = nSeuil; //moitie du level else nNewXP =nXPLastLevel; SetXP(oPC,nNewXP); if (nGold > 5000) { nGold = 5000; } // Teleport a la zone de Respawn AssignCommand(oPC, JumpToObject(oTarget)); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPC); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPC)), oPC); RemoveEffects(oPC); // Sauvegarde de la date SetCampaignInt(sCampaign,"DAY",nDay); SetCampaignInt(sCampaign,"MONTH",nMonth); SetCampaignInt(sCampaign,"YEAR", nYear); SetCampaignInt(sCampaign,"HOUR", nHour); SetCampaignInt(sCampaign,"MINUTE", nMinute); SetCampaignInt(sCampaign,"SECOND", nSecond); SetCampaignInt(sCampaign,"MILLISECOND", nMillisecond); /* warning: 1 unclosed block {} */ |
Revenir en haut | |
lylver Héros Messages: 274 |
Bonjour, vérifie que tu aies laissé les remises à zéro envers les factions STANDARDS de la réputation du personnage à sa mort.
(populace,marchand,défenseur) NWScript :
object oMod = GetModule() ; object oDead = GetLastPlayerDied(); location lDead = GetLocation(oDead) ; object oKiller = GetLastKiller(); // /.../ // * Note: waiting for Sophia to make SetStandardFactionReptuation to clear all personal reputation // Lylver : modification de reputation personnelle a faire le cas echeant. if (GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oDead) < 50) { SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 50, oDead); } if (GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oDead) < 50) { SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 50, oDead); } if (GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oDead) < 50) { SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 50, oDead); } ClearPersonalReputation(oDead,oKiller) ; // permanent en cas de mort ClearPersonalReputation(oKiller,oDead) ; // simultanee et respawn // ceux qui ont vu le deces perdent leur inimitie personnelle // envers le mort, l'amitie reste. object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 40.0f, lDead); while (GetIsObjectValid(oTarget)) { if(!GetIsReactionTypeFriendly(oTarget)) { ClearPersonalReputation(oDead,oTarget) ; ClearPersonalReputation(oTarget,oDead) ; } // creature suivante dans un rayon de 4 tiles oTarget = GetNextObjectInShape(SHAPE_SPHERE, 40.0f, lDead); } Note : tu peux monter l'ajustement à 80 (vers ami) si tu veux laisser encore plus de marge aux joueurs |
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