Equipement à la premiere connexion selon classe
//**************************** ***********************
//** Script de connexion selon la classe du joueur **
//**************************** ***********************
//A mettre dans le OnClientEnter du module
/*---------------------------- ------------------------------ ---------------------*\
| /!\ Pour etre sur que l'equipement ne soit pas renouveller a la reconnexion /!\ |
| /!\ d'un joueur lvl un un qui vient de mourir et perde toute son experience /!\ |
| /!\ dans le OnDeath verifier si le joueurs est lvl 1 et redonner 1 point xp /!\ |
\*-------------------------- ------------------------------ -----------------------*/
/*---------------------------- --------------*\
/* Explications pour adaptation de l'Or *\
/*-------------------------- --------------------*\
|| Changer la valeur de l'or : ||
|| L'or se presente dans des sortes de cases ||
|| pour simplifier, il suffit de changer les ||
|| valeurs, prenons un exemple : ||
|| Barbare et Barde, Regles D&D : 4d4x10 ||
|| Or = d4(4)*10; ||
|| On va remplacer par des lettres pour bien ||
|| voir la transformation : ||
|| Barbare et Barde, Regles D&D : AdBxC ||
|| Or = dB(A)*C ||
|| - A est le nombre de dés jettés ||
|| - B est la valeurs du(es) dé(s) jetté(s) ||
|| - C est une multiplication simple ||
|| Seul l'exemple du moine change car il n'a ||
|| pas de multiplicateur. ||
||__________________________ ____________________||
\*-------------------------- --------------------*/
int OrBarbareBarde() ////////////////////////
{ //
int Or; // Regles D&D : 4d4x10
Or = d4(4)*10; // Barbare Barde
return(Or); //
} ////////////////////////
int OrDruid() ////////////////////////
{ //
int Or; // Regles D&D : 2d4x10
Or = d4(2)*10; // Druide
return(Or); //
} ////////////////////////
int OrMageEnsorceleur() ////////////////////////
{ //
int Or; // Regles D&D : 3d4x10
Or = d4(3)*10; // Mage Ensorceuleur
return(Or); //
} ////////////////////////
int OrGuerrierPaladinRodeur() ////////////////////////
{ //
int Or; // Regles D&D : 6d4x10
Or = d4(6)*10; // Guerrier Paladin Rodeur
return(Or); //
} ////////////////////////
int OrMoine() ////////////////////////
{ //
int Or; // Regles D&D : 5d4
Or = d4(5); // Moine
return(Or); //
} ////////////////////////
int OrPretreRoublard() ////////////////////////
{ //
int Or; // Regles D&D : 5d4x10
Or = d4(5)*10; // Pretre Roublard
return(Or); //
} ////////////////////////
//Equipement du Barbare
void EquipBarbare(object oPC)
{
//Mettre ici l'equipement Exemple :
CreateItemOnObject("tag_item", oPC); //Ici on créé un objet quelquonc
CreateItemOnObject("tag_item", oPC, 3); //Ici on créé 3 object quelquonc
object oArmure = CreateItemOnObject("tag_armure", oPC); //Ici on créé une armure
object oArme = CreateItemOnObject("tag_arme", oPC); //Ici on créé une arme
AssignCommand(oPC, ActionEquipItem(oArmure, INVENTORY_SLOT_CHEST)); //Ici on equipe l'armure
AssignCommand(oPC, ActionEquipItem(oArme, INVENTORY_SLOT_RIGHTHAND)); //Ici on equipe l'arme
}
void EquipBarde(object oPC) ////////////////////////
{ // Equipement du Barde
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipPretre(object oPC) ////////////////////////
{ // Equipement du Pretre
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipDruid(object oPC) ////////////////////////
{ // Equipement du Druide
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipGuerrier(object oPC) ////////////////////////
{ // Equipement du Guerrier
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipMoine(object oPC) ////////////////////////
{ // Equipement du Moine
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipPaladin(object oPC) ////////////////////////
{ // Equipement du Paladin
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipRodeur(object oPC) ////////////////////////
{ // Equipement du Rodeur
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipRoublard(object oPC) ////////////////////////
{ // Equipement du Roublard
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipSorcier(object oPC) ////////////////////////
{ // Equipement du Sorcier
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipMagicien(object oPC) ////////////////////////
{ // Equipement du Magicien
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
void EquipPourTous(object oPC) ////////////////////////
{ // Equipement Commun
//Mettre ici l'equipement // Exemple : Barbare
} ////////////////////////
// Detruit l'equipement porté
// Mettez iCslot a TRUE pour detruire aussi
// l'équipement créature (peau, griffes, ...)
void DestroySlotEquipment(object oPC, int iCslot = FALSE);
// Detruit tout les objets de l'inventaire
void DestroyInventoryEquipment(object oPC);
// Combine les deux fonctions précédente
void DestroyAllEquipment(object oPC, int iCslot = FALSE);
void main()
{
// Declarations
object oItem; // Definir oItem en objet
object oPC=GetEnteringObject(); // On defini le joueur
int iClasseDuJoueur = GetClassByPosition(1, oPC); // On prend la classe du joueur
if (GetIsPC(oPC) && !GetIsDM(oPC)) // Si le dernier entré est joueur et non DM
{
if (GetXP(oPC) < 1) //Si le joueur n'as pas de xp
{
//Envlève tout l'inventaire
DestroyAllEquipment(oPC);
//Efface l'or de départ du joueur
AssignCommand(oPC, TakeGoldFromCreature(GetGold(oPC), oPC, TRUE));
//Donne les objets et l'or du joueur selon la classe
switch (iClasseDuJoueur)
{
case 0:
EquipBarbare(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrBarbareBarde())); //Or
break;
case 1:
EquipBarde(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrBarbareBarde())); //Or
break;
case 2:
EquipPretre(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrPretreRoublard())); //Or
break;
case 3:
EquipDruid(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrDruid())); //Or
break;
case 4:
EquipGuerrier(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrGuerrierPaladinRodeur())); //Or
break;
case 5:
EquipMoine(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrMoine())); //Or
break;
case 6:
EquipPaladin(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrGuerrierPaladinRodeur())); //Or
break;
case 7:
EquipRodeur(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrGuerrierPaladinRodeur())); //Or
break;
case 8:
EquipRoublard(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrPretreRoublard())); //Or
break;
case 9:
EquipSorcier(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrMageEnsorceleur())); //Or
break;
case 10:
EquipMagicien(oPC); //Equipement correspondant
AssignCommand(oPC, GiveGoldToCreature(oPC, OrMageEnsorceleur())); //Or
break;
}
//Donne les objets communs pour tous les joueurs
EquipPourTous(oPC);
//Donne 1 xp au joueur pour identifier qu'il n'est plus un nouveau joueur
GiveXPToCreature(oPC, 1);
}
}
}
void DestroySlotEquipment(object oPC, int iCslot = FALSE)
{
int iSlot, iCount;
iSlot = 13;
iCount = 0;
if(iCslot == TRUE)
{
iSlot = 17;
}
while(iCount <= iSlot)// Boucle qui test les slot par rapport au compteur
{
iCount ++;
DestroyObject(GetItemInSlot(iCount, oPC));// Destruction des Items dans les Slots
}
}
void DestroyInventoryEquipment(object oPC)
{
object oItem = GetFirstItemInInventory(oPC);
while(oItem != OBJECT_INVALID)// Boucle qui vide l'inventaire
{
DestroyObject(oItem);// Destruction des Items
oItem = GetNextItemInInventory(oPC);
}
}
void DestroyAllEquipment(object oPC, int iCslot = FALSE)
{
DestroyInventoryEquipment(oPC);
DestroySlotEquipment(oPC, iCslot);
}