Merci Lianna.
Si je peux me permettre je mets ci-dessous la même chose avec des commentaires.
Si tu trouves que ce n'est pas bien, n'hésite pas à me le dire et je retire le message
/*
Solanra télépote un joueur dans la salle des portails en Séridia en échange d'un objet (orgham des portails) ou contre 600 lumens.
*/
/*met la valeur 1 dans "SOLANRA_OUI"*/
#define SOLANRA_OUI 1
/*met la valuer 2 dans "SOLANRA_TP_OGHAM_PORTAIL"*/
#define SOLANRA_TP_OGHAM_PORTAIL 2
/*met la valuer 3 dans "SOLANRA_TP_LUMENS"*/
#define SOLANRA_TP_LUMENS 3
/*met la valuer 4 dans "SOLANRA_BYE"*/
#define SOLANRA_BYE 4
/* création des choix de réponses : "oui", "non" ou "Au revoir"*/
build_solanra_responses ()
{
/*Choix "oui" on execute la case "SOLANRA_OUI" ligne 66*/
add_npc_response("Oui",SOLANRA_OUI,solanra);
/*Choix "Non" on execute la case "SOLANRA_BYE" ligne 122*/
add_npc_response("Non",SOLANRA_BYE,solanra);
/*Choix "Au revoir" on execute la case "SOLANRA_BYE" ligne 122*/
add_npc_response("Au revoir",SOLANRA_BYE,solanra);
}
/*Fonction permettant d'afficher le texte*/
touch_solanra (player)
{
/*déclaration de 2 variables*/
new string[500];
new name_string[20];
/*On récupère le nom de l'avatar et on le stock dans la variable "name_string"*/
get_player_name (player, name_string);
/*On regarde si c'est un homme*/
if(is_male(player))
{
/*On affiche le dialogue de SOLANRA pour un homme avec le nom de l'avatar qui est devant SOLANRA à la fin*/
sprintf (string, "Bonjour, %s ! Je suis Solanra et je peux t'emmener à la salle des portails !\nCeci en échange d'un ogham de portail ou de 600 lumens, es-tu intéressé ?", name_string);
}
else
{
/*On affiche le dialogue de SOLANRA pour une femme avec le nom de l'avatar qui est devant SOLANRA à la fin*/
sprintf (string, "Bonjour, %s ! Je suis Solanra et je peux t'emmener à la salle des portails !\nCeci en échange d'un ogham de portail ou de 600 lumens, es-tu intéressée ?", name_string);
}
/*On met en forme et on attend la réponse du joueur*/
add_npc_text (string, c_green1, 0);
build_solanra_responses();
send_response_list ();
}
/*Traitement de la réponse*/
respond_solanra (player, response)
{
/*On déclare 2 variables*/
new money_we_have;
new string[500];
/*Choix des réponses*/
switch(response)
{
/*Réponse "OUI"*/
case SOLANRA_OUI:
{
/*On affiche un nouveau texte*/
add_npc_text("Une téléportation en salle des portails de Séridia en échange d'un ogham de portail ou de 600 lumens ?",c_green1,0);
/*On affiche les nouveaux choix : "un ogham de portail", "600 lumens" et "Aucun des deux, au revoir."*/
add_npc_response("un ogham de portail",SOLANRA_TP_OGHAM_PORTAIL,solanra);
add_npc_response("600 lumens",SOLANRA_TP_LUMENS,solanra);
add_npc_response("Aucun des deux, au revoir.",SOLANRA_BYE,solanra);
/*On attend la réponse*/
send_response_list();
return;
}
/*Réponse "600 lumens"*/
case SOLANRA_TP_LUMENS:
{
/*On regarde si le joueur possède plus de 600 lumens sur lui*/
money_we_have = get_item_quantity (player, ITEM_MONEY);
/*Le joueur n'a pas 600 lumens*/
if (money_we_have < 600)
{
sprintf (string, "Tu as %i lumens, or il t'en faut %i !", money_we_have, 600);
add_npc_text (string, c_red1, 0);
send_response_list ();
return;
}
/*Le joueur a plus de 600 lumens, on lui retire les 600 lumens*/
remove_item_player (player, ITEM_MONEY, 600);
/* On le téléporte*/
teleport_player(player, 12 , 57 , 42, 1, 100);
return;
}
/*Réponse "un ogham de portail"*/
case SOLANRA_TP_OGHAM_PORTAIL:
{
/*On vérifie que le joueur possède bien un ogham sur lui*/
money_we_have = get_item_quantity (player, ITEM_OGHAM_PORTAIL);
/*Le joueur n'a pas d'ogham*/
if (money_we_have < 1)
{
add_npc_text ("Tu ne disposes pas d'ogham des portails, reviens me voir avec.", c_red1, 0);
send_response_list ();
return;
}
/*Le joueur a un ogham et on le lui retire*/
remove_item_player (player, ITEM_OGHAM_PORTAIL, 1);
/*On affiche un nouveau texte*/
sprintf (string, "*Solanra incline légèrement la tête*");
add_npc_text(string, c_grey1, 0);
/*On téléporte le joueur*/
teleport_player(player, 12 , 57 , 42, 1, 100);
return;
}
/*Réponse "non" ou "au revoir"*/
case SOLANRA_BYE:
{
/*On affiche un nouveau texte*/
add_npc_text("Bien, une autre fois peut-être.",c_green1,0);
send_response_list();
return;
}
}
}
[Code] Pnj.sma
Re: Code Pnj.sma
C'est super de voir le code, merci Lianna, chouette initiative !
C'est quel langage de programmation ?
C'est quel langage de programmation ?
- trinita
- Messages : 2722
- Inscription : 15 avr. 2006, 10:23
- Localisation : Charente - France
- Contact :
Re: Code Pnj.sma
C'est du small qui dans la syntaxe se rapproche beaucoup du langage C.
Attention aux commentaires cela peu rendre la lecture du code difficile
Attention aux commentaires cela peu rendre la lecture du code difficile
Trinita,
Administrateur,
Contact: trinita@landes-eternelles.com
Suivez et partagez les Landes Eternelles sur Twitter !
La page Facebook des Landes Eternelles !
" Le bon sens est la qualité la moins partagée de ce monde " Jean-Pierre TROLL
Administrateur,
Contact: trinita@landes-eternelles.com
Suivez et partagez les Landes Eternelles sur Twitter !
La page Facebook des Landes Eternelles !
" Le bon sens est la qualité la moins partagée de ce monde " Jean-Pierre TROLL