Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrĂ´le

Recherche | Retour aux forums

JOL Archives

Script de prison, nouvelle Ă©dition

Par Elmo le 16/2/2003 Ă  20:03:39 (#3250008)

bon vous vous rappelez du script de prison?, bon le voici:

#include "NW_I0_GENERIC"
//::///////////////////////////////////////////////
//:: Name EN TAULE!
//:: FileName
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/* Ce script est a mettre dans ele OnDamaged d'une creature
Pour que son agresseur soit teleporte en prison.
*/
//:://////////////////////////////////////////////
//:: Created By: Elmo, eMRaistlin et Coolstar
//:: Created On: 10/01/2003
//:://////////////////////////////////////////////
void main()
{
if (!GetFleeToExit())
{
if (!GetSpawnInCondition (NW_FLAG_SET_WARNINGS))
{
if (!GetIsObjectValid (GetAttemptedAttackTarget ()) && (!GetIsObjectValid (GetAttemptedSpellTarget ())))
{
if (GetBehaviorState (NW_FLAG_BEHAVIOR_SPECIAL))
{
DetermineSpecialBehavior (GetLastDamager ());
}
else if (GetIsObjectValid (GetLastDamager ()))
{
DetermineCombatRound ();
if (!GetIsFighting (OBJECT_SELF))
{
object oTarget = GetLastDamager();
if (!GetObjectSeen(oTarget) && GetArea (OBJECT_SELF) == GetArea(oTarget))
{
ActionMoveToLocation (GetLocation (oTarget), TRUE);
ActionDoCommand (DetermineCombatRound ());
}
}
}
}
else if (!GetIsObjectValid (GetAttemptedSpellTarget ()))
{
object oTarget = GetAttackTarget();
object oAttacker = GetLastHostileActor();
if (GetIsObjectValid(oAttacker) && oTarget != oAttacker && GetIsEnemy(oAttacker) &&(GetTotalDamageDealt() > (GetMaxHitPoints(OBJECT_SELF) / 4) ||(GetHitDice(oAttacker) - 2) > GetHitDice(oTarget) ) )
{
DetermineCombatRound (oAttacker);
}
}
}
}
if (GetSpawnInCondition (NW_FLAG_DAMAGED_EVENT))
{
SignalEvent (OBJECT_SELF, EventUserDefined (1006));
}
object oPC = GetLastDamager();
int iPC = GetIsPC(oPC);
if (iPC)
{
string sTagWP;
int iRandom = Random(9); //ici tu changes le 9 en nombre de waypoints total que tu as dans ta prison.

switch (iRandom)
//ici tu dois mets tes lignes pour les cellules ATTENTION: le 0 compte donc si tu as 9 cellule tu vas jusqu'a huit en commenant par 0
{
case 0: sTagWP = "wp_taule1"; break;
case 1: sTagWP = "wp_taule2"; break;
case 2: sTagWP = "wp_taule3"; break;
case 3: sTagWP = "wp_taule4"; break;
case 4: sTagWP = "wp_taule5"; break;
case 5: sTagWP = "wp_taule6"; break;
case 6: sTagWP = "wp_taule7"; break;
case 7: sTagWP = "wp_taule8"; break;
case 8: sTagWP = "wp_taule9"; break;
}
int nDurationType = DURATION_TYPE_TEMPORARY;
object oTarget = GetObjectByTag(sTagWP);
DelayCommand(1.5, SpeakString("Allez hop, au trou!"));
DelayCommand(2.0, AssignCommand(oPC, JumpToObject(oTarget)));
}
}


je trouve un peu brinqueballant de directement téléporter le joueur en taule, pas très RP j'avais pensé mettre un Clearallactions suivi d'un EffectKnockDown, mais quand je les ai ajouté dans la suite de delay command, le PJ restait comme une andouille à terre sans etre téléporté, ou l'inverse il étéait téléporté et ne tombait pas KO si quelqu'un à une idée ça serait cool

Par caarheim le 16/2/2003 Ă  21:13:46 (#3250434)

Je peux pas te repondre directement mais g deja vu quelquechose de ce genre dans le module suivant : Orcs - l'Éveil d'Arak-Hur.mod, au moment de rentrer dans une grotte !!
Des elfes assoment et emene le corps dans une autre zone !

Par RAT le 16/2/2003 Ă  23:15:31 (#3250992)

moi je suis en train de prévoir un système d'emprisonnement rp, comme je possède déjà le système HRP. Qui bloquera le pj jusqu'à sa cellule. Après , il aura des PNJ ou certains moyens de pouvoir s'échapper.

Mais pour l'instant ce n'est qu'un projet. Par contre cela sera très RP.:)

JOL Archives 1.0.1
@ JOL / JeuxOnLine