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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Je cherche le moyen de faire apparaitre un nouveau perso "a poil" sans utiliser HCR

Par Lorelindor le 20/10/2002 à 14:46:13 (#2368891)

Bonjour a tous...

J'ai chercher dans les premiere page du forum et avec le moteur de recherche mais je n'ai trouver au'un post sur le

H_ard C_ore R_ulez

Mais bon... c'est un piti peu compliquer pour moi...

voila mon problem.

1- pour mon aventure je voudrais que mes joueur apparaissent dans la prison tout nu ou presque ( quelque haillons )

et qu'ils aillent chercher leur matériel et leur sou dans un coffre...

J'ai vu que c'était possible avec le HCR mais j'ai juste besoin de ça pour mon module et pas du reste...

2- Existe t'il un tuto sur le HCR autre que le poste de Tonton existant ?

voili :)

Par eMRaistlin le 20/10/2002 à 20:25:58 (#2370931)


//#include "onenterinfopc"

void main()
{
//Declaration des variables
location LastSave;
location prontera;
location izlude;
location morroc;
location payon;
object PlayerEnterer = GetEnteringObject();
int n1connection=GetLocalInt(PlayerEnterer,"connection");
object oInventory;
int nChemise=0;
location lSpawn;
string sLastNewz = "October. 11th";
string sWelcomingtxt = "Last news on the board was posted on "+sLastNewz+". Remember to check the news when necessary";


prontera=GetLocation(GetObjectByTag("PronteraTeleport"));
morroc=GetLocation(GetObjectByTag("MorrocTeleport"));
izlude=GetLocation(GetObjectByTag("IzludeTeleport"));
payon=GetLocation(GetObjectByTag("PayonTeleport"));

//Determine si il y a eu une sauvegarde quelquepart, sinon, sauve a prontera
LastSave=GetLocalLocation(PlayerEnterer,"SavePoint");
if ((LastSave!=prontera)||(LastSave!=morroc)||(LastSave!=izlude)||(LastSave!=payon))
{
SetLocalLocation (PlayerEnterer,"SavePoint",prontera);
}

//recherche la derniere position du personnage
location LastLocation = GetLocalLocation(PlayerEnterer,"LastLocation");

//donne a moi-mme et Nylou le DM-portor
if ((GetPCPlayerName(PlayerEnterer)== "eMRaistlin")&&( GetItemPossessedBy(PlayerEnterer,"dmportor")==OBJECT_INVALID))
{
CreateItemOnObject("dmportor",PlayerEnterer,1);
}
if ((GetPCPlayerName(PlayerEnterer)== "Nylou")&&( GetItemPossessedBy(PlayerEnterer,"dmportor")==OBJECT_INVALID))
{
CreateItemOnObject("dmportor",PlayerEnterer,1);
}

//Pour la premiere connection :
if ((n1connection!=1000)&&(GetPCPlayerName(PlayerEnterer)!= "eMRaistlin")&&(GetPCPlayerName(PlayerEnterer)!= "Nylou"))
{
//Mise a jour du nombre de connection
SetLocalInt(PlayerEnterer,"connection",1000);
//Verifie si le joueur Possede un item special RO : le belt ReadMe
object oBelt=GetItemInSlot(INVENTORY_SLOT_BELT,PlayerEnterer);
if (GetTag(oBelt)=="NeverWinterRoPlayer")
{
return;
}
//Joueur Mis a nu, puis quipe d'une shirt et un couteau
oInventory=GetFirstItemInInventory(PlayerEnterer);
while (oInventory!=OBJECT_INVALID)
{
DestroyObject(oInventory);
oInventory=GetNextItemInInventory(PlayerEnterer);
}
DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARMS,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARROWS,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_BELT,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOLTS,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOOTS,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_BULLETS,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_CARMOUR,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_CHEST,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_CLOAK,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_HEAD,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTHAND,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTRING,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_NECK,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,PlayerEnterer));
DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTRING,PlayerEnterer));
//Random Chemise
nChemise=Random(10)+1;
CreateItemOnObject("shirt"+IntToString(nChemise),PlayerEnterer,1);
CreateItemOnObject("dagger",PlayerEnterer,1);
CreateItemOnObject("readme",PlayerEnterer,1);

//Creation d'un anneau pour les paladins
if (GetClassByPosition(1,PlayerEnterer)==CLASS_TYPE_PALADIN)
{
CreateItemOnObject("anneaudupaladin",PlayerEnterer,1);
}
}


//Envoi un message au client
SendMessageToPC(PlayerEnterer,sWelcomingtxt);
SendMessageToPC(PlayerEnterer,"Message a taper");

//Info sur Pc Entrant pour DM
//InfoPc(PlayerEnterer);
}


Voici mon script d'OnEnterModule... (OnEnterClient)


bon, je te le fourni tel quel, vu que y'a 2 ou trois trus qui peuvent te sevir...

en gros :

- Je regarde si le joueur a deja fais un save sur le module (car dans mon module, suivant la ville ou tu a sauvegarde, tu respawn a un endroit different.

ca, c'est la :
prontera=GetLocation(GetObjectByTag("PronteraTeleport"));
morroc=GetLocation(GetObjectByTag("MorrocTeleport"));
izlude=GetLocation(GetObjectByTag("IzludeTeleport"));
payon=GetLocation(GetObjectByTag("PayonTeleport"));

//Determine si il y a eu une sauvegarde quelquepart, sinon, sauve a prontera
LastSave=GetLocalLocation(PlayerEnterer,"SavePoint");
if ((LastSave!=prontera)||(LastSave!=morroc)||(LastSave!=izlude)||(LastSave!=payon))
{
SetLocalLocation (PlayerEnterer,"SavePoint",prontera);
}


Puis, je donne a moi meme et a Nylou (ma co-DM) un item qui me permet d'avoir acces a certaine facilitées de DM, alors que je suis connecté en joueur.

C'est ca : (faut bien sur apres creer le matos necessaire dans ton module)
//donne a moi-mme et Nylou le DM-portor
if ((GetPCPlayerName(PlayerEnterer)== "eMRaistlin")&&( GetItemPossessedBy(PlayerEnterer,"dmportor")==OBJECT_INVALID))
{
CreateItemOnObject("dmportor",PlayerEnterer,1);
}
if ((GetPCPlayerName(PlayerEnterer)== "Nylou")&&( GetItemPossessedBy(PlayerEnterer,"dmportor")==OBJECT_INVALID))
{
CreateItemOnObject("dmportor",PlayerEnterer,1);
}


puis, dans l'ordre, je fais ceci :

- je verifie si c'est la premiere connection ou pas.

Si ca ne l'est pas, je saute tout ca, et je fais rien...

Si ca l'est :

- Je vide le PC de tout son matos (equipe ou non)

- Je lui donne une chemise et un couteau.

- Si c'est un paladin, je lui donne un anneau qui va lui donner la detection du mal.

Et bein sur, pour moi et ma co-DM, il ne fait pas de mise a nue.


Enfin, j'envoi un message au PC pour sa connection, lui rappellant la date des dernieres newz du module (ecrite sur un board, pour consultation) et Je lui envoi tout message complementaire...

Par eMRaistlin le 20/10/2002 à 20:38:18 (#2371009)

au fait, je viens de relire ta question : tu veux le creer dans un coffre...


tu remplace le

//Random Chemise
nChemise=Random(10)+1;
CreateItemOnObject("shirt"+IntToString(nChemise),PlayerEnterer,1);
CreateItemOnObject("dagger",PlayerEnterer,1);
CreateItemOnObject("readme",PlayerEnterer,1);


par un create dans ton coffre, tout simpelment...


Hope this 'll help ^^

Par Lorelindor le 26/10/2002 à 16:48:26 (#2412787)

wouaou merci boucoup :)

Par coolstar le 26/10/2002 à 17:28:37 (#2412919)

Décidément...

;)

Par Zariel le 28/10/2002 à 8:33:30 (#2421709)

C'est exacatement ce que je cherchais aussi ;)

Par Zariel le 28/10/2002 à 8:43:46 (#2421741)

EmRaislin, dans quel choix mais tu ce script excatement ? Car je ne vois pas ou es qu'il y a un OnEnterModule, c'est pas OnClientEnter non ?

Par eMRaistlin le 28/10/2002 à 9:40:15 (#2421958)

oui, oui, c'est ca : OnEnterClient...

Par Letox le 28/10/2002 à 10:09:59 (#2422127)

Quand je compile ton script, il ne trouve pas la source : #include "onenterinfopc"

C'est dus à quoi à ton avis ?

Par Zariel le 28/10/2002 à 10:14:27 (#2422163)

En fait, Letox, c'est Zariel, c'est mon pseudo à Anarchy Online(juste pour info) ;)

Par eMRaistlin le 28/10/2002 à 10:37:52 (#2422318)

#include "onenterinfopc"



C'est un autre script que j'ai pris et modifié, afin qu'il fasse l'inventaire d'un PJ qui entre ingame, et qui l'envoi sur le log ainsi qu'a tout les Dm, avec en plus les stats et les levels.

Enleve ces lignes la, pour etre tranquile... Moi, j'edite mon post... merci de m'avoir fait remarquer...


#include "onenterinfopc"

et

//Info sur Pc Entrant pour DM
InfoPc(PlayerEnterer);


Encore une chose :

Attention : j'ai mis ce script ici plus comme une source d'inspiration que comme vraiment qqchose d'utilisable directement. En effet, j'ai crée ce script pour l'usage de mon module, et certains composants vont vous manquer :

Les Tags des points de sauvegardes sont a parametrer
(mais sans influence dans ce script, meme s'ils apparaissent. Ils sont la pour affecter un point de sauvegarde a un nouveau joueur qui n'en aurait pas.)

Les items suivant ne sont pas fournit :

- DMportor : un item qui permet a un DM de se teleporter dans une de mes area, afin de lui donner acces a un gestionnaire d'equipeement, de leveling et de lui faire tester differentes chose, sans gener les joueurs.

- Une Ceinture NeverWinterRoPlayer, qui va permettre de dire qu'un Pc est déja passé sur mon module, histoire de pas le deshabiller de nouveau en cas de reboot serveur.

- Un anneaudupaladin, qui donne a tout les paladin le pouvoir de detection du mal.

- Une shirt et une dagger, de base, mais qui sont des copies des items de base, afinde maitriser leur blueprint et leur tag.


J'engage donc tout le monde a lire le code pour en prendre la partie qui l'interresse, pluot que le prendre directement. (c'est un conseil qui s'applique d'ailleur pour tout les autres script disponible ici ou ailleur.)

Par Zariel le 28/10/2002 à 11:13:51 (#2422620)

Ok, je vais essayer tous ça, mais c'est vrai que ton script est vraiment personnalisé pour ton module, j''èspère que je vais pouvoir accorder tous ceci pour le mien :D

En tous cas, merci de ton aide ;)

Par coolstar le 28/10/2002 à 11:33:52 (#2422792)

Bi vu monsieur eMRaistlin... ;)

JOL Archives 1.0.1
@ JOL / JeuxOnLine