Jump to content
×
×
  • Create New...
  • 0

Créer une flèche au dessus du PNJ


Funky Emulation

Question

  • Answers 15
  • Created
  • Last Reply

Top Posters For This Question

Top Posters For This Question

15 answers to this question

Recommended Posts

  • 0
  • Bot

Merci,

 

et vous auriez pas la méthode pour savoir si le joueur à déjà fais la quête, j'avais vu sur une quête :

if pc.getqf("basic_weapon") == 0 then

 

Est-ce que je peux par exemple utiliser cette fonction avec une autre chaine de caractères random ou je dois la déclarer quelque part ?

 

Cordialement.

090100logo.png 090149logo-4-bis.png

Link to comment
  • 0
  • Bot

J'ai pas tous compris :/

 

Peux tu me dire :

		when levelup with pc.get_level() >= 15 begin
		if pc.setqf("variable") == 0 then
			say_title("L'héros perdu")
			say("Hey toi ! Il parrait que un certain Seon-Hae raconte")
			say("des légends ! Tu devrais aller le voir peut être pourras-tu")
			say("y gagner ? Qui sait ? Fonce jeune héros !")
		end
	end

Pourquoi ce message ne s'affiche pas au niveau 16, 17  ? Sachant que je ne change pas la valeur de "variable" ?

 

Cordialement.

090100logo.png 090149logo-4-bis.png

Link to comment
  • 0
  • Bot

J'utilise par exemple à chaque lv up à partir du niveau 15 :

when levelup with pc.get_level() >= 15 begin
		pc.setqf("maviariable", 0)
	   if pc.getqf("mavariable") == 0 then

 

 

et quand il parle au PNJ j'aimerai mettre la variable sur 1 donc :

when 20095.chat."Histoire d'un héros" with pc.level >= 15 begin
		pc.setqf("maviarble", 1)

 

sauf que ça ne marche pas, le message est toujours affiché meme après avoir parler au PNJ... des idées ?...

090100logo.png 090149logo-4-bis.png

Link to comment
  • 0

Yaw,

 

Tu peux toujours t'inspirer des quêtes du biologistes, elles sont super pour comprendre tout ce qui est durée, génération aléatoire, quest_flag etc... Mais en gros concidère ceci :

target.vid

Va te permettre de mettre à jour les diverses target

pc.setqf("nameflag", value)

Ajoute un flag avec la valeur "value", souvent utiliser pour faire de la génération globale (inverse du type "local")

pc.getqf("nameflag")

Récupère la valeur du flag "nameflag"

 

Exemple:

pc.setqf("bonjour", 0)
if pc.getqf("bonjour") == 0 then
 say("tu as pas dit bonjour donc...")
else
 say("Tu as dit bonjour "..pc.getqf("bonjour").." fois")
end

 

Alors que si tu avais utilisé le mot clé "local" ça n'aurait pas fonctionné car c'est ... local à la stack frame de l'instruction et est détruit au moment même ou le scope (le end) se ferme, soit quand toutes les instructions se sont dépilées.

Link to comment
  • 0

Considère ceci:

 

En gros metin² a été développé sur le principe d'un ECS (je laisse google la libertée de l'expliquer pour moi). C'est à dire qu'il y aura des systèmes qui vont manipuler des entités à chaque frame. Un de ces système est le script LUA, en gros à chaque frame, tous les scripts seront lancés, mais pas n'importe comment, c'est à dire qu'ils seront lancés à partir d'un certain "breakpoint" (tout ça bien évidemment, gérer par l'API mysql (je crois) ) et que chaque quest_flag, ou même state actuels seront sauvegardés.

 

Considérant ce fait, le set_state va permettre au joueur de switcher d'état, et donc d'arriver dans un état où la condition de ton levelup ne sera pas pris en compte. Donc au final lorsque tu vas changer d'état ou même incrémenter un quest_flag, l'ancienne valeur ou l'ancien "breakpoint" sera remplacé par ce-dernier.

Link to comment
Guest
This topic is now closed to further replies.


Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.