====== Document de référence pour l'organisation de scripts ====== Règles et informations utiles pour la [[fr:primitive:mission:start|création de missions]]. ===== Éléments de scripts pour les missions ===== Le script de mission est basé sur une exécution linéaire d'étapes contenant des actions et objectifs. Les **variables** sont utilisées quand un script utilise plusieurs occurrences d'un même élément. Ce qui aide beaucoup quand on veut modifier la valeur de cet élément sans avoir à en retrouver toutes les occurrences dans le script. \\ Les variables sont [[fr:primitive:mission:var_creature|var_creature]], [[fr:primitive:mission:var_faction|var_faction]], [[fr:primitive:mission:var_group|var_group]], [[fr:primitive:mission:var_item|var_item]], [[fr:primitive:mission:var_npc|var_npc]], [[fr:primitive:mission:var_place|var_place]], [[fr:primitive:mission:var_quality|var_quality]], [[fr:primitive:mission:var_quantity|var_quantity]] et [[fr:primitive:mission:var_text||var_text]]. Les **étapes** sont les éléments fondamentaux d'un script de mission qui contient en général un objectif et une liste d'actions à exécuter avant et après l'atteinte de l'objectif. Les étapes sont [[fr:primitive:mission:step|step]], [[fr:primitive:mission:step_any|step_any]], [[fr:primitive:mission:step_dyn_chat|step_dyn_chat]], [[fr:primitive:mission:step_failure|step_failure]], [[fr:primitive:mission:step_if|step_if]] et [[fr:primitive:mission:step_ooo|step_ooo]]. Les **actions** sont des éléments qui sont exécutés ponctuellement, sans apport du joueur. Ils fixent généralement les conditions, ou modifient les variables du jeu comme la quantité d'argent que le joueur a, ou son inventaire, ou ils ont un effet sur l'exécution du script. \\ Les actions sont [[fr:primitive:mission:add_compass|add_compass]], [[fr:primitive:mission:ai_event|ai_event]], [[fr:primitive:mission:bot_chat|bot_chat]], [[fr:primitive:mission:fail|fail]], [[fr:primitive:mission:jump_to|jump_to]], [[fr:primitive:mission:learn_action|learn_action]], [[fr:primitive:mission:recv_fame|recv_fame]], [[fr:primitive:mission:recv_item|recv_item]], [[fr:primitive:mission:recv_money|recv_money]], [[fr:primitive:mission:set_constrains|set_constrains]], [[fr:primitive:mission:system_msg|system_msg]] et [[fr:primitive:mission:teleport|teleport]]. Les **objectifs** sont des éléments qui attendent que des conditions soient remplies par le joueur. Le script est bloqué jusqu'à que l'objectif soit, soit atteint, soit manqué, par rapport aux conditions de la mission. \\ Les objectifs sont [[fr:primitive:mission:buy|buy]], [[fr:primitive:mission:cast|cast]], [[fr:primitive:mission:craft|craft]], [[fr:primitive:mission:do_mission|do_mission]], [[fr:primitive:mission:escort|escort]], [[fr:primitive:mission:forage|forage]], [[fr:primitive:mission:give_item|give_item]], [[fr:primitive:mission:give_money|give_money]], [[fr:primitive:mission:kill|kill]], [[fr:primitive:mission:loot|loot]], [[fr:primitive:mission:sell|sell]], [[fr:primitive:mission:skill|skill]], [[fr:primitive:mission:talk_to|talk_to]], [[fr:primitive:mission:target|target]] et [[fr:primitive:mission:visit|visit]]. ===== Branches de mission ===== Une branche de script de mission se termine simplement avec une instruction end qui implique l'achèvement de la mission et montre une phrase de succès par défaut. Il y a deux étapes spéciales qui produisent des branches de script : [[fr:primitive:mission:step_if|step_if]], et [[fr:primitive:mission:step_dyn_chat|step_dyn_chat]]. \\ En fonction des conditions, une branche est choisie pour l'exécution, et le script continue linéairement à partir de ce point. \\ A n'importe quel point, un [[fr:primitive:mission:jump_to|jump_to]] puet modifier l'exécution linéire du script et aller à n'importe quelle autre étape, sur la même branche, ou sur une autre. L'échec est géré par l'étape [[fr:primitive:mission:step_failure|step_failure]] et l'action [[fr:primitive:mission:fail|fail]] action. {{tag>primitives ryzom_core}}