Nous sommes actuellement le 20 Fév 2020, 07:05

Le fuseau horaire est UTC+1 heure [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 3 messages ] 
Auteur Message
 Sujet du message: Re: Code Pnj.sma
MessagePublié: 23 Oct 2016, 15:05 
Hors-ligne

Inscrit(e) le : 14 Mars 2016, 10:52
Message(s) : 99
Localisation : Aix en provence
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 :wink:



/*
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;
}
}
}


Haut
 Profil  
 
 Sujet du message: Re: Code Pnj.sma
MessagePublié: 23 Oct 2016, 21:08 
Hors-ligne
Avatar de l’utilisateur

Inscrit(e) le : 23 Oct 2016, 14:20
Message(s) : 2
C'est super de voir le code, merci Lianna, chouette initiative !
C'est quel langage de programmation ?


Haut
 Profil  
 
 Sujet du message: Re: Code Pnj.sma
MessagePublié: 24 Oct 2016, 10:16 
Hors-ligne
Avatar de l’utilisateur

Inscrit(e) le : 15 Avr 2006, 10:23
Message(s) : 2723
Localisation : Charente - France
C'est du small qui dans la syntaxe se rapproche beaucoup du langage C.

Attention aux commentaires :D cela peu rendre la lecture du code difficile :D

_________________
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


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 3 messages ] 

Le fuseau horaire est UTC+1 heure [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit par Maël Soucaze et Elglobo © phpBB.fr