Script Lua
Bonjour,
Ce matin je voulais tester un script Lua permettant de faire parler un pnj, or la console m'indique que tout mes scripts sont chargés mais en jeu rien ne s'affiche !
Voilà le script !
[code=lua]local timebetweenannounce = 5000 --le temps entre chaque annonce en millisecondes 5000 millisecondes = 5 secondes
local restarttime = 15000 --Le temps avant que le pnj recommence avec ces annonces !
local npcid = 7943 -- L'id de marchand de poisson
local message1 = "Du poisson et encore du poisson !"
local message2 = "Il est frais mon poisson !"
local message3 = "Vous Monsieur là, venez goûter à mon poisson !"
local message4 = "De la morue,du macros !"
local message5 = "J'ai même du poisson-chat !"


function Annonceur_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message1)
pUnit:RegisterEvent("Annonceur2_Yell", timebetweenannounce, 0)
end

function Annonceur2_Yell(pUnit, Event)
pUnit:SendChatMessage(12 ,0, message2)
pUnit:RegisterEvent("Annonceur3_Yell", timebetweenannounce, 0)
end

function Annonceur3_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message3)
pUnit:RegisterEvent("Annonceur4_Yell", timebetweenannounce, 0)
end

function Annonceur4_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message4)
pUnit:RegisterEvent("Annonceur5_Yell", timebetweenannounce, 0)
end

function Annonceur5_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message5)
pUnit:RegisterEvent("Annonceur5_Yell", restarttime, 0)
end

function Announcer_Start(pUnit, Event)
pUnit:RegisterEvent("Annonceur", 1000, 0)
end
RegisterUnitEvent(npcid, 6, "Announcer_Start")[/code]

Merci d'avance
Citation :local npcid = 7943
as-tu bien mis le PNJ avec l'ID : 7943 en jeu ?
Hello,

Je n'ai pas de grande connaissance en LUA mais essaie de changer le "RegisterUnitEvent" à 18 (CREATURE_EVENT_ON_LOAD).
[code=lua]
RegisterUnitEvent(npcid, 18, "Announcer_Start")
[/code]

Pour infos :
6 = CREATURE_EVENT_ON_TARGET_DODGED = Aucune idée, lorsque l'on clique sur la créature ?
18 = CREATURE_EVENT_ON_LOAD = Au chargement de la créature

Sgt Fatality
Ouep J'ai fait :
Citation :.npc spawn 7943
Et même avec 18 cela ne marche pas !
Remplace :
[code=lua]pUnit:RegisterEvent("Annonceur", 1000, 0)[/code]
Par :
[code=lua]pUnit:RegisterEvent("Annonceur_Yell", 1000, 0)[/code]

Et re-vérifie tout tes "RegisterEvent" Smile
Non plus mais la console m'affiche :
[string "scripts/poisson.lua"]:12: bad argument #4 to 'SendChatMessage' <number expected, got table >
Erf
hum... soit tu as oublié la fonction Annoncer soit tu as mal marqué la première Smile
pUnit:RegisterEvent("Annonceur", 1000, 0)

Ça devrait être mieux comme ça.

[code=lua]local timebetweenannounce = 5000 -- Le temps entre chaque annonce en millisecondes 5000 millisecondes = 5 secondes
local restarttime = 15000 -- Le temps avant que le pnj recommence avec ces annonces !
local npcid = 7943 -- L'id de marchand de poisson
local message1 = "Du poisson et encore du poisson !"
local message2 = "Il est frais mon poisson !"
local message3 = "Vous Monsieur là, venez goûter à mon poisson !"
local message4 = "De la morue,du macros !"
local message5 = "J'ai même du poisson-chat !"


function Annonceur_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message1)
pUnit:RegisterEvent("Annonceur2_Yell", timebetweenannounce, 0)
end

function Annonceur2_Yell(pUnit, Event)
pUnit:SendChatMessage(12 ,0, message2)
pUnit:RegisterEvent("Annonceur3_Yell", timebetweenannounce, 0)
end

function Annonceur3_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message3)
pUnit:RegisterEvent("Annonceur4_Yell", timebetweenannounce, 0)
end

function Annonceur4_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message4)
pUnit:RegisterEvent("Annonceur5_Yell", timebetweenannounce, 0)
end

function Annonceur5_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message5)
pUnit:RegisterEvent("Annonceur5_Yell", restarttime, 0)
end

function Announcer_Start(pUnit, Event)
pUnit:RegisterEvent("Annonceur_Yell", 1000, 0)
end
RegisterUnitEvent(npcid, 6, "Announcer_Start")[/code]
Non toujours rien ! Tiou
Pourtant il n'y a aucune valeur de fausse !
(08-03-2011 13:33)Asteade a écrit :  hum... soit tu as oublié la fonction Annoncer soit tu as mal marqué la première Smile
pUnit:RegisterEvent("Annonceur", 1000, 0)

Regarde deux messages en dessus Langue
Autrement peut-être un problème de variable ? Essaie de mettre directement le texte au lieu de passer par des variables pour voir si ça corrige l'erreur.
(Si jamais il y a toujours le problème, je pourrais tester ce soir car la c'est un peu chaud sans serveur sous la main...)
Essaye ça :

[code=lua]local timebetweenannounce = 5000 --le temps entre chaque annonce en millisecondes 5000 millisecondes = 5 secondes
local restarttime = 15000 --Le temps avant que le pnj recommence avec ces annonces !
local npcid = 7943 -- L'id de marchand de poisson
local message1 = "Du poisson et encore du poisson !"
local message2 = "Il est frais mon poisson !"
local message3 = "Vous Monsieur là, venez goûter à mon poisson !"
local message4 = "De la morue,du macros !"
local message5 = "J'ai même du poisson-chat !"


function Annonceur_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message1)
pUnit:RegisterEvent("Annonceur2_Yell", timebetweenannounce, 1)
end

function Annonceur2_Yell(pUnit, Event)
pUnit:SendChatMessage(12 ,0, message2)
pUnit:RegisterEvent("Annonceur3_Yell", timebetweenannounce, 1)
end

function Annonceur3_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message3)
pUnit:RegisterEvent("Annonceur4_Yell", timebetweenannounce, 1)
end

function Annonceur4_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message4)
pUnit:RegisterEvent("Annonceur5_Yell", timebetweenannounce, 1)
end

function Annonceur5_Yell(pUnit, Event)
pUnit:SendChatMessage(12, 0, message5)
pUnit:RegisterEvent("Annonceur_Yell", restarttime, 1)
end

function Announcer_Start(pUnit, Event)
pUnit:RegisterEvent("Annonceur_Yell", 1000, 1)
end

RegisterUnitEvent(npcid, 18, "Announcer_Start")[/code]

Mais je suis pas sûr.

Retourner en haut Accueil