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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

[sripte] Jeux de carte merveilleux

Par Jaha Effect le 6/12/2002 à 19:23:23 (#2727015)

On commence par la balance :)

La Balance: Changement d'alignement instantané.

Les actes du personnage sont évalués et jugés indignes de l'éthique qu'il a faite sienne. Il n'a d'autre choix que de changer d'alignement et d'en prendre un qui soit radicalement différent. S'il ne se comporte pas en accord avec les préceptes de son nouvel alignement, il acquière un niveau négatif.

Voilà, juste un petit problème avec ce scripte, c'est que pour les alignements neutre, car l'alignement directement opposé au neutre je vois pas. J'aimerais avoir l'avis des Master D&D pour savoir comment ils géreraient ça.

void main()
{
object oPC = GetPCSpeaker();
int nAlignementGE = GetAlignmentGoodEvil(oPC);
int nAlignementLC = GetAlignmentLawChaos(oPC);
int iGE = GetGoodEvilValue(oPC);
int iCL = GetLawChaosValue (oPC);
int iDiceGE = d2(1); // tirage aleatoire sur un d2 alignement good/evil
int iDiceCL = d2(1); // tirage aleatoire sur un d2 alignement lawful/chaotic

if (nAlignementGE == ALIGNMENT_EVIL && nAlignementLC == ALIGNMENT_CHAOTIC)
{
AdjustAlignment (oPC, ALIGNMENT_GOOD, ((iGE)+100));
AdjustAlignment (oPC, ALIGNMENT_LAWFUL, ((iCL)+100));
}
else if (nAlignementGE == ALIGNMENT_EVIL && nAlignementLC == ALIGNMENT_NEUTRAL)
{
AdjustAlignment (oPC, ALIGNMENT_GOOD, ((iGE)+100));
}
else if (nAlignementGE == ALIGNMENT_EVIL && nAlignementLC == ALIGNMENT_LAWFUL)
{
AdjustAlignment (oPC, ALIGNMENT_GOOD, ((iGE)+100));
AdjustAlignment (oPC, ALIGNMENT_CHAOTIC, ((iCL)+100));
}
else if (nAlignementGE == ALIGNMENT_NEUTRAL && nAlignementLC == ALIGNMENT_CHAOTIC)
{
AdjustAlignment (oPC, ALIGNMENT_LAWFUL, ((iCL)+100));
}
else if (nAlignementGE == ALIGNMENT_NEUTRAL && nAlignementLC == ALIGNMENT_NEUTRAL)
{
//////////////////////////////////////////////////////////////////////////////////

if (iDiceGE == 1) // resultat alignement good/evil
{
AdjustAlignment (oPC, ALIGNMENT_GOOD, iGE);
}
else
{
AdjustAlignment (oPC, ALIGNMENT_EVIL, iGE);
}

/////////////////////////////////////////////////////////////////////////////////

if (iDiceCL == 1) // resultat alignement lawful/chaotic
{
AdjustAlignment (oPC, ALIGNMENT_LAWFUL, iCL);
}
else
{
AdjustAlignment (oPC, ALIGNMENT_CHAOTIC, iCL);
}
/////////////////////////////////////////////////////////////////////////////////
}
else if (nAlignementGE == ALIGNMENT_NEUTRAL && nAlignementLC == ALIGNMENT_LAWFUL)
{
AdjustAlignment (oPC, ALIGNMENT_CHAOTIC, ((iCL)+100));
}
else if (nAlignementGE == ALIGNMENT_GOOD && nAlignementLC == ALIGNMENT_CHAOTIC)
{
AdjustAlignment (oPC, ALIGNMENT_EVIL, ((iGE)+100));
AdjustAlignment (oPC, ALIGNMENT_LAWFUL, ((iCL)+100));
}
else if (nAlignementGE == ALIGNMENT_GOOD && nAlignementLC == ALIGNMENT_NEUTRAL)
{
AdjustAlignment (oPC, ALIGNMENT_EVIL, ((iGE)+100));
}
else if (nAlignementGE == ALIGNMENT_GOOD && nAlignementLC == ALIGNMENT_LAWFUL)
{
AdjustAlignment (oPC, ALIGNMENT_EVIL, ((iGE)+100));
AdjustAlignment (oPC, ALIGNMENT_CHAOTIC, ((iCL)+100));
}
}


Jaha Effect :D

Par Ormus le 6/12/2002 à 20:02:40 (#2727320)

Je suis pas un Master D&D mais l'opposé d'un alignement neutre c'est un alignement extrême non ? :p

Par Jaha Effect le 7/12/2002 à 4:27:28 (#2729602)

ouais je vais faire un tirage aléatoire chaotic/lawful et evil/good

Jaha Effect :D

Par Théranthil le 7/12/2002 à 8:31:43 (#2729869)

Je sens déjà apparaître les jeux truqué, soit par le MD pour avoir que des morts soit par les joueurs pour l'inverse. ;)

Par coolstar le 7/12/2002 à 8:39:46 (#2729876)

Provient du message de Ormus
Je suis pas un Master D&D mais l'opposé d'un alignement neutre c'est un alignement extrême non ? :p
Raisonnement très juste!! ;)

Par Caillou PierreSang le 7/12/2002 à 11:35:02 (#2730406)

Provient du message de Ormus
Je suis pas un Master D&D mais l'opposé d'un alignement neutre c'est un alignement extrême non ? :p


Euh.... non.... L'opposé d'un alignement Neutre Strict, c'est l'alignement Neutre Strict..... ;)
Et l'opposé d'un alignement Chaotique Neutre, c'est Loyal Neutre (dans un changement d'alignement par inversion, seules les composantes Loyale/Chaotique et Bon/Mauvais s'inversent, le Neutre, restant Neutre, ce qui entre nous me parait très logique, vu que ça transforme un 100% bon en 100% mauvais (symétrie parfaite donc) et pour un neutre (disons 50% bon, 50% mauvais), le symétrique sera exactement le même.) Vous me suivez ?:D

Mais je reviens de lire la description de la carte de la balance... et j'ai moi aussi quelques doutes....
Les actes du personnage sont évalués et jugés indignes de l'éthique qu'il a fait sienne. Il n'a d'autre choix que de changer d'alignment et d'en prendre un qui soit radicalement différent.

En effet, c'est assez ambigu.... Ce que j'énonçais plus haut était valable pour un "Heaume d'inversion d'alignment" ou encore le "Plan des Miroirs", mais pour la Balance... en effet... Vu la description, on pourrait penser que les alignment extrèmes (LB, CB , LM et CM) répugnent un Neutre Strict et donc cela serait le "changement radicalement différent"...
A méditer.... :rasta:

Par Azrael07 le 7/12/2002 à 11:41:03 (#2730430)

mouai enfin bon c plus marrant quand l'alignement passe de neutre a mauvais (ou bon) que kd il reste comme ca sans bouger

non ??

Par Caillou PierreSang le 7/12/2002 à 12:58:57 (#2730795)

Provient du message de Azrael07
mouai enfin bon c plus marrant quand l'alignement passe de neutre a mauvais (ou bon) que kd il reste comme ca sans bouger

non ??


En effet, cela est plus intéressant de changer l'alignement, sinon, je ne vois pas l'utilité d'une telle carte. Mais, en revanche, je suis absolument sûr que l'alignement directement opposé au neutre strict est le neutre strict lui même.
Par contre, la lecture de la description d'une telle carte laisse une ambiguïté d'interprétation ce qui permet à Jaha de faire comme il veut. ;)
Peut-être un conseil : Pourquoi pas faire qu'un Neutre Strict utilisant la carte se retrouve de façon "aléatoire" avec un alignement extrême : LB, CB , LM ou CM.... (au fait je précise que les alignements extrêmes ne sont pas seulement LB et CM) :p

PS : C'est un très bonne initiative Jaha Effect, et bravo pour ce script, continue !

Bon on change le scripte

Par Jaha Effect le 7/12/2002 à 14:38:42 (#2731381)

Ok bon j'ai opté pour une solution partagée, ce qui veux dire que pour les alignement composé d'un seul alignement neutre ça ne change pas.
Ex: un chaotic/neutre deviendra loyal neutre

Par contre l'alignement neutre absolu est transformé aléatoirement sur tirage de d2.
En théorie, il peux prendre les alignements CB/CE/LB/LE. Je teste et je vous dis :)

Par contre j'ai remarqué un truc assez génial, c'est que le pauvre druide neutre absolu ne pourra plus exercer sa vocation tant qu'il n'aura pas retrouvé sont alignement neutre Mouahahahahaha !!!

Jaha Effect :D

Par Jaha Effect le 7/12/2002 à 14:44:30 (#2731407)

Arf j'ai beau tester et retester avec un alignement neutre ça me donne invariablement un alignement Loyal bon, je vois pas ou est l'erreur dans mon scripte.
Si quelqu'un a une idée ... :D

Jaha Effect :D

Par Azrael07 le 7/12/2002 à 15:06:33 (#2731534)

ben deja t'as oublié la double égalité :

if (iDiceGE == 1) // resultat alignement good/evil

idem pour l'autre

deja corrige ca et essaye

Par Jaha Effect le 7/12/2002 à 15:17:46 (#2731583)

Ouais ça marche vachement mieux sans les fautes d'étourderie :D
Merci pour tes lumières Azrael :)

C'est les druides et les paladins qui vont être content :)
Par contre je suis vert, malgrès leur changement de d'alignement et le fait qu'ils ne peuvent plus évoluer dans leur classe, les paladins ne perdent pas le bénéfice des dons que leur octroie leur dieu malgrès qu'il se soit eloigné de lui, pas très RP tout ça :(


Jaha Effect :D

Par Mastokk le 7/12/2002 à 16:25:10 (#2731926)

Je veux pas faire le Rabat joie qui a des ampoules aux mains mais tu devrais peut être mettre un raccourci dans le premier post vers celui où les cartes ont été détaillées, pour ceux que ca intéresserait ;).

J'ai d'ailleurs moi-même lié l'autre sujet à celui-ci.

Par Jaha Effect le 7/12/2002 à 16:36:52 (#2731983)

Vala je rend hommage a tes petits doigts plein d'ampoules, j'ai fait des liens et placé dans le persistant sur les scriptes :)

Jaha Effect :D

[script] Le Bouffon

Par Jaha Effect le 8/12/2002 à 21:43:23 (#2740042)

Autre lame du jeu de carte merveilleux, le bouffon.

Le Bouffon: Gain de 10000 XP ou possibilité de tirer deux nouvelles cartes.
Tarots: XII. Le Pendu
Cartes à jouer : Joker Rouge.
Cette carte est systématiquement mise de coté quand on la tire (au même titre que le fou). Les cartes supplémentaires indiquées sont optionnelles (le personnage n'est pas obligé de les tirer).

Un tout petit scripte très très simple à placer dans action conséquente.
Pour ce qui est du tirage des cartes supplement taire c'est contenu dans le Dialogue du PNJ (le maître du Destin), les starting conditions, je les mettrais quand tout sera prêt (surtout le script de tirage des cartes).

void main()
{
object oPlayer = GetFirstPC();
GiveXPToCreature(oPlayer, 10000);
}


Pas vraiment besoin de commenter, mais bon ça fait parti des lames alors je le met ici :D
Voilà j'ai remis à la suite de ce poste pour centraliser les infos :)


Jaha Effect :D

Par coolstar le 8/12/2002 à 22:11:19 (#2740198)

Provient du message de Jaha Effect
Par contre je suis vert, malgrès leur changement de d'alignement et le fait qu'ils ne peuvent plus évoluer dans leur classe, les paladins ne perdent pas le bénéfice des dons que leur octroie leur dieu malgrès qu'il se soit eloigné de lui, pas très RP tout ça :(
Ben?? Ca peut pas se scripter ça ?? :confus:

:D

Par Azrael07 le 8/12/2002 à 22:41:45 (#2740410)

ben si ca peux ca peux, mais fo trouver quelqu'un qui a le courage de faire ca ^_^

<=========== pas le temp

Par eMRaistlin le 8/12/2002 à 23:21:09 (#2740663)

en fait, c'est assez tendu : faut rentrer dans chaque script qui parle du paladin et mettre des condition d'alignement... t'as pas fini.

Si on pouvais remplacer les classes des PC par script, ce serait plus pratique...

Le Chevalier

Par Jaha Effect le 13/12/2002 à 14:41:52 (#2777528)

troisième lame du jeu de carte merveilleux...

Le Chevalier: Obtention des services d'un guerrier de niveau 4.
Tarots: Vallet d'épées
Cartes à jouer : Valet de Coeur.
Le guerrier vient de nulle part et sert son nouveau maître jusqu'à la mort. Bien qu'il s'agisse d'une créature artificielle, sa race, son espèce et son sexe semblent les mêmes que ceux du personnage. Il est équipé comme indiqué dans l'exemple de guerrier du manuel des joueurs (page 37) (je vais aller voir ça).
Equipement: épée batarde (1D10, crit 19-20/*2, 5kg, M, tranchant), Armure: vitesse de déplacement 6,5m au lieu de 5m.

Là on a besoin d'un peu plus de préparation pour mettre en place cette lame.
En plus du scripte vous aurez aussi besoin d'un petit dialogue du Chevalier

Voici le scripte en lui même avec en commentaire toute les étapes a suivre pour la mise en place de cette lame du jeu de carte merveilleux

// 1- creer 1 guerrier niveau 4 humain masculin avec l'equipement de la description
// 2- lui attribuer une faction marchand
// 3- attribuer les scripts suivants au PNJ
// OnBlocked : nw_ch_ace
// OnCombatRoundEnd : nw_ch_ac3
// OnConversation : nw_ch_ac4
// OnDamaged : nw_ch_ac6
// OnDeath : nw_ch_ac7
// OnDisturbed : nw_ch_ac8
// OnHeartbeat : nw_ch_ac1
// OnPerception : nw_ch_ac2
// OnPhysicalAttacked : nw_ch_ac5
// OnRested : nw_ch_aca
// OnSpawn : nw_ch_ac9
// OnSpellCastAt : nw_ch_acb
// OnUserDefined : nw_ch_acd
// 4- Attribuer le dialogue de Chevalier
// 5- copier le personnage et changer les attributs de race et de sexe pour avoir les creatures suivantes
// Humain homme / femme
// Nain homme / femme
// Elf homme / femme
// Gnome homme / femme
// Halfling homme / femme
// Demi-Orque homme / femme
// Demi-Elf homme / femme
// 6- Noter les resref de chaque cratures car ils sont utilise dans le script
// 7- Creer un WayPoint avec le Tag NW_CHEVALIER

void main()
{
object oPC = GetPCSpeaker();
int nRace = GetRacialType(oPC);
int nGender = GetGender(oPC);
location lSpawn = GetLocation(GetWaypointByTag("NW_CHEVALIER"));

// race humain
if (nRace == RACIAL_TYPE_HUMAN && nGender == GENDER_MALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier", lSpawn); // remplacer "lechevalier" par le resref de votre creature
}
else if (nRace == RACIAL_TYPE_HUMAN && nGender == GENDER_FEMALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier001", lSpawn);// comme precedement, remplacer par le resref de votre creature
}
// race nain
else if (nRace == RACIAL_TYPE_DWARF && nGender == GENDER_MALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier002", lSpawn); // idem
}
else if (nRace == RACIAL_TYPE_DWARF && nGender == GENDER_FEMALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier003", lSpawn); // idem
}
// race elf
else if (nRace == RACIAL_TYPE_ELF && nGender == GENDER_MALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier004", lSpawn); // idem
}
else if (nRace == RACIAL_TYPE_ELF && nGender == GENDER_FEMALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier005", lSpawn); // idem
}
// race gnome
else if (nRace == RACIAL_TYPE_GNOME && nGender == GENDER_MALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier006", lSpawn); // idem
}
else if (nRace == RACIAL_TYPE_GNOME && nGender == GENDER_FEMALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier007", lSpawn); // idem
}
// race halfling
else if (nRace == RACIAL_TYPE_HALFLING && nGender == GENDER_MALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier008", lSpawn); // idem
}
else if (nRace == RACIAL_TYPE_HALFLING && nGender == GENDER_FEMALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier009", lSpawn); // idem
}
// race demi orque
else if (nRace == RACIAL_TYPE_HALFORC && nGender == GENDER_MALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier010", lSpawn); // idem
}
else if (nRace == RACIAL_TYPE_HALFORC && nGender == GENDER_FEMALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier011", lSpawn); // idem
}
// race demi elf
else if (nRace == RACIAL_TYPE_HALFELF && nGender == GENDER_MALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier012", lSpawn); // idem
}
else if (nRace == RACIAL_TYPE_HALFELF && nGender == GENDER_FEMALE)
{
CreateObject(OBJECT_TYPE_CREATURE, "lechevalier013", lSpawn); // idem
}

}


Je me met au boulot pour la suite avec le peu de temps qu'il me reste, je joue en même temps a DAOC alors j'alterne :D

Jaha Effect :D

Par coolstar le 13/12/2002 à 15:13:18 (#2777775)

:hardos:

Par Mastokk le 13/12/2002 à 21:16:30 (#2780697)

TOTAL HS: quel serveur sur DAoC ? je suis Volsung sur Mid Ys moi ;).

Par Jaha Effect le 14/12/2002 à 14:04:56 (#2785502)

Hors sujet: je suis Jaha Effect sur Broc et Camlann.

Dis, si tu as 10 minute à perdre, tu pourrais me faire parvenir le tableau pour l'arme puissante qui est la lame suivante du jeu de carte merveilleux stp :)

Jaha Effect :D

La Comète

Par Jaha Effect le 15/12/2002 à 19:00:27 (#2795506)

La Comète: Gain d'un niveau en cas de victoire contre le prochain monstre rencontré.

L'aventurier doit vaincre seul le ou les prochains monstres rencontrés pour ne pas perdre le bénéfice de cette carte. En cas de succès, il gagne un niveau et et son total d'expérience se retrouve à mi-chemin entre son nouveau niveau et le suivant.

On va se faire une petite arène pour cette lame ou on va téléporter le PC pour qu'il y rencontre la bestiole de son choix.
Nous allons placer 2 WayPoint, le premier dans la zone de départ (NW_RETOUR) et le second au centre de notre arène (NW_ARENE).
On crée également une rencontre dans laquelle on va mettre une bestiole de chaque level, régler le niveau de difficulté de la rencontre, et paramétrer la rencontre comme ceci.
- rencontre actif
- réactiver rencontre toute les 5 secondes
- respawn infini
- Activation par un joueur
Puis nous allons placer le script suivant dans le OnExhausted de notre rencontre le scripte suivant qui va nous permettre de renvoyer le PC dans la zone de départ en lui attribuant 1 level et demi une fois qu'il aura tué les creatures :D



int XPtoLevel(int nXP) {
return FloatToInt((1+sqrt(1+4.*nXP/500))/2);
}
int XPsup(int nLevel) {
switch (nLevel) {
case 1: return 0;
case 2: return 1000;
case 3: return 1500;
case 4: return 2000;
case 5: return 2500;
case 6: return 3000;
case 7: return 3500;
case 8: return 4000;
case 9: return 4500;
case 10: return 5000;
case 11: return 5500;
case 12: return 6000;
case 13: return 6500;
case 14: return 7000;
case 15: return 7500;
case 16: return 8000;
case 17: return 8500;
case 18: return 9000;
case 19: return 9500;
case 20: return 10000;
}
return 0;
}
void main()
{
object oPC = GetFirstPC();
int nLevel = XPtoLevel(GetXP(oPC));
location lretour = GetLocation ( GetWaypointByTag ("NW_RETOUR"));
AssignCommand ( oPC , ActionJumpToLocation (lretour));

if (nLevel != 20)
{
SetXP(oPC, (nLevel*(nLevel+1)*500)+XPsup(nLevel+1));
} else {
GiveXPToCreature(oPC, 1);
}
}


Il nous reste bien sur à créer un petit script qui envoi le joueur dans l'arene dans le dialogue du joueur de carte

void main()
{
object oPC = GetPCSpeaker ();
location larene = GetLocation ( GetWaypointByTag ("NW_ARENE"));
AssignCommand ( oPC , ActionJumpToLocation (larene));
}


Voilà pour cette lame, la suite au prochain épisode :)

Jaha Effect :D

Par coolstar le 15/12/2002 à 23:38:21 (#2797852)

:p

JOL Archives 1.0.1
@ JOL / JeuxOnLine