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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Npc pas content apres ouverture d'un coffre

Par Gorgam le 9/1/2003 à 7:29:14 (#2978488)

bon voila, j'ai besoin d'un scripteuh pour qu'un npc soit telement pas content qu'un joueur ai ouvert un coffre qu'il l'attaque.

Enfin voila, si y'en a un qui peut me faire ca sa serais super cool :)

Par Zariel le 9/1/2003 à 11:17:07 (#2979235)

A mettre sur le OnDisturbed de ton coffre, ton NPC attaquera le PJ si il se fait prendre.


void main()
{
object oCoffre = OBJECT_SELF;
object oJoueur = GetLastDisturbed();
object oProprio = GetNearestObjectByTag ("TAG_DU_PROPRIO");//Indiquer le tag du propri
// On peut aussi faire: object oProprio = GetNearestCreature (CREATURE_TYPE_IS_ALIVE, TRUE); pour avoir un script non générique.
// Jet de pickpocket du joueur.
int iPPSkillCheck = d20(1) + 1 + GetSkillRank (SKILL_PICK_POCKET, oJoueur);
// Jet de reperer du marchand.
int iSpotCheck = d20(1) + 3 + GetSkillRank (SKILL_SPOT, oProprio);
// Affichage du résultat du jet.
string sSkillCheck = "Pickpocket " + IntToString(iPPSkillCheck) + " vs Reperer " + IntToString(iSpotCheck);
if (iPPSkillCheck > iSpotCheck)
{
// Personne ne remarque le vol.
FloatingTextStringOnCreature (sSkillCheck + " - Personne n'a remarque votre chapardage...", oJoueur);
// Legere baisse de la reputation du joueur. La où il passe, les objets disparaissent...
AdjustReputation (oJoueur, oProprio, -5);
return;
}
else
{
// Vol remarque!
FloatingTextStringOnCreature (sSkillCheck + " - Oups, on vous a vu!", oJoueur);
// Grosse baisse de la reputation
AdjustReputation (oJoueur, oProprio, -20);
//Premiere fois avertissement...
if (GetLocalInt (OBJECT_SELF,"Reac_Marchand") == 0)
{
AssignCommand (oProprio, ActionMoveToObject (oCoffre, TRUE));
AssignCommand (oProprio, ActionSpeakString ("He la! Que je ne vous y reprenne pas!"));
SetLocalInt (OBJECT_SELF, "Reac_Marchand", 1);
}
else
{
//Deuxieme fois attaque...
AssignCommand (oProprio, ActionEquipMostDamagingMelee ());
AssignCommand (oProprio, ActionAttack (oJoueur));
}
}
}

Par Holrick le 9/1/2003 à 11:54:19 (#2979477)

il est bien ton script es qu'il marche aussi dans le cas le pj au lieu de le crocheter le brise avec une arme ?????

dans se cas faut rajouter quoi pour cela ???? Zareil

Par Falathrim Lloth PIM le 9/1/2003 à 12:20:34 (#2979678)

C'est pas exactement ce que tu veux mais c'est une variante :p


#include "nw_i0_generic"
void main()
{
object oNaughtyOne = GetLastAttacker( OBJECT_SELF );
if ((OBJECT_INVALID == oNaughtyOne) && GetLastSpellHarmful()) {
oNaughtyOne = GetLastSpellCaster();
}
if (OBJECT_INVALID == oNaughtyOne) {
SpeakString("Attention, prends garde à toi");
return; //Prevention
}
SpeakString("Je t'avais prévenu ! ");
ApplyEffectToObject( DURATION_TYPE_INSTANT,
EffectDamage( GetMaxHitPoints(oNaughtyOne), DAMAGE_TYPE_DIVINE),
oNaughtyOne,
0.0f);
}// Infliges des dégats de magie divine égale au points de vie maximum du pj


La c'est pas un NPC qui prévient mais une phrase , et après la prévention elle n'attaque , elle tue directement , ca peut aussi servir...:D

Par sarda le 9/1/2003 à 12:23:57 (#2979706)

et je peux compiler les deux pour faire que si on le casse on meurt et si on le crochete le serrure le pj devient agressif c ca ok bah j'essaye ce soir merci c cool

Par Gorgam le 10/1/2003 à 0:32:23 (#2985578)

Je remerci deja Zariel et Falathrim :)

En faite, c'est pas tout a fait ca que je recherchais, mais je me suis surment tres mal exprimé en bon barbare que je suis :)

Donc voila, mon pnj previendra le joueur de pas ouvrir le coffre, et si le joueur ouvre quand meme le coffre, en retournant voir le pnj il lui dirais qu'il a ouvert le coffre que c'est pas bien, qu'il fallais pas et donc qu'il va le tué :)


Vous avez pas compris? moi non plus :p

Par syrtis2 le 14/1/2003 à 16:58:08 (#3019685)

ton script (le tout premier)me plait beaucoup mais j'aimerai une petite variante:
au lieu de perdre en reputation pour le seul proprio vole ne peux tu paas elargir la perte a toute la faction?

je m'explique:
j'ai mis des coffre dans un marche et je voudrai qu'en cas de vol tous les marchands du marche s'insurgent!

merci

Par eMRaistlin le 14/1/2003 à 17:12:34 (#3019846)

Et tout simplement en mettant la faction du coffre sur celle des PNJ ?

Par Zariel le 14/1/2003 à 17:21:09 (#3019932)

En ce qui concerne les factions, pour ceux qui commencent leur module:

Creez une faction pour chaque clan de votre module (marchand, guide, etc...). Vous ne le regrettez pas ! C'est plus long mais sur l'efficacité et l'organisation, vous y trouverez un sacré avantage !

C'était juste comme ca en passant, désolé pour le HS ;)

Donc, Syrtis, comme disait EM, edite la faction "Marchand" dans sur tes NPC pour la mettre ensuite sur le coffre.

Par Jaha Effect le 14/1/2003 à 17:29:40 (#3020020)

ouais y'a juste qu'un petit problème, il faut faire ça au tout début du module, parceque c'est carrément trop long à mettre en oeuvre après.
Moi ça met presque 20 minutes pour rajouter une faction, quand ça plante pas.

Jaha Effect :D

Par Zariel le 14/1/2003 à 17:34:13 (#3020063)

C'est pour ça que je le dis aux ch'tits nouveaux ;), aprés plus de 50 zones sur mon module, je ne peux plus me retaper toute les factions que je voudrais :sanglote:

JOL Archives 1.0.1
@ JOL / JeuxOnLine