[LUA]Problème avec un script très important
Alors bonjour a tous , j'ai fais un script simpa où le joueur fait "#spell" pour voir apparaitre son maitre de classe pendant 2 min Smile Seul problème , ça ne marche pas (aucune erreur console , le script ne fonctionne pas , ya pas de déclenchement) Clin Je me suis basé sur le script de Zourkay ...

[code=lua]--Commande #spell.lua Codé par Neø pour Felena-Online


local SPELL_MSG = "#spell"



function PlayerOnChat(event, pPlayer, message, type, language)
local LCM = message:lower()
local race = pPlayer:GetPlayerRace()

if(LCM == SPELL_MSG) then
if(race==1 or race==3 or race==4 or race==7 or race==11) then --Perso ally
local class = pPlayer:GetPlayerClass()
local posx = pPlayer:GetX() + 1
local posy = pPlayer:GetY() + 1
local posz = pPlayer:GetZ()
local poso = pPlayer:GetO()

if(class == 1) then--Guerrier
pPlayer:SpawnCreature(16771, posx, posy, posz, poso, 0, 120)
end
if(class == 2) then--Paladin
pPlayer:SpawnCreature(5491, posx, posy, posz, poso, 0, 120)
end
if(class == 3) then--Chasseur
pPlayer:SpawnCreature(8308, posx, posy, posz, poso, 0, 120)
end
if(class == 4) then--Voleur
pPlayer:SpawnCreature(4215, posx, posy, posz, poso, 0, 120)
end
if(class == 5) then--Prêtre
pPlayer:SpawnCreature(4090, posx, posy, posz, poso, 0, 120)
end
if(class == 6) then--DK
pPlayer:SpawnCreature(28474, posx, posy, posz, poso, 0, 120)
end
if(class == 7) then--Chaman
pPlayer:SpawnCreature(17520, posx, posy, posz, poso, 0, 120)
end
if(class == 8) then--Mage
pPlayer:SpawnCreature(17514, posx, posy, posz, poso, 0, 120)
end
if(class == 9) then--Démo
pPlayer:SpawnCreature(5171, posx, posy, posz, poso, 0, 120)
end
if(class == 11)then--Druide
pPlayer:SpawnCreature(4217, posx, posy, posz, poso, 0, 120)
end
end

if(race==2 or race==5 or race==6 or race==8 or race==10) then -- Perso H²
local class = pPlayer:GetPlayerClass()
local posx = pPlayer:GetX() + 3
local posy = pPlayer:GetY() + 3
local posz = pPlayer:GetZ() + 3
local poso = pPlayer:GetO()

if(class == 1) then--Guerrier
pPlayer:SpawnCreature(4594, posx, posy, posz, poso, 0, 120)
end
if(class == 2) then--Paladin
pPlayer:SpawnCreature(16681, posx, posy, posz, poso, 0, 120)
end
if(class == 3) then--Chasseur
pPlayer:SpawnCreature(3039, posx, posy, posz, poso, 0, 120)
end
if(class == 4) then--Voleur
pPlayer:SpawnCreature(4582, posx, posy, posz, poso, 0, 120)
end
if(class == 5) then--Prêtre
pPlayer:SpawnCreature(16658, posx, posy, posz, poso, 0, 120)
end
if(class == 6) then--DK
pPlayer:SpawnCreature(28474, posx, posy, posz, poso, 0, 120)
end
if(class == 7) then--Chaman
pPlayer:SpawnCreature(3032, posx, posy, posz, poso, 0, 120)
end
if(class == 8) then--Mage
pPlayer:SpawnCreature(4568, posx, posy, posz, poso, 0, 120)
end
if(class == 9) then--Démo
pPlayer:SpawnCreature(16646, posx, posy, posz, poso, 0, 120)
end
if(class == 11)then--Druide
pPlayer:SpawnCreature(16655, posx, posy, posz, poso, 0, 120)
end
end

end
end

RegisterServerHook(16, "PlayerOnChat")
[/code]
[code=lua]
--Commande #spell.lua Codé par Neø pour Felena-Online


local SPELL_MSG = "#spell"
local class = pPlayer:GetPlayerClass()
local race = pPlayer:GetPlayerRace()
local posx = pPlayer:GetX() + 1
local posy = pPlayer:GetY() + 1
local posz = pPlayer:GetZ()
local poso = pPlayer:GetO()
local posx2 = pPlayer:GetX() + 3
local posy2 = pPlayer:GetY() + 3
local posz2 = pPlayer:GetZ() + 3
local poso2 = pPlayer:GetO()


function PlayerOnChat(event, pPlayer, message, type, language)
local LCM = message:lower()

if(LCM == SPELL_MSG) then
if(race == 1) or (race == 3) or (race == 4) or (race == 7) or (race == 11) then --Perso ally
if(class == 1) then --Guerrier
pPlayer:SpawnCreature(16771, posx, posy, posz, poso, 0, 120)
end
if(class == 2) then --Paladin
pPlayer:SpawnCreature(5491, posx, posy, posz, poso, 0, 120)
end
if(class == 3) then --Chasseur
pPlayer:SpawnCreature(8308, posx, posy, posz, poso, 0, 120)
end
if(class == 4) then --Voleur
pPlayer:SpawnCreature(4215, posx, posy, posz, poso, 0, 120)
end
if(class == 5) then --Prêtre
pPlayer:SpawnCreature(4090, posx, posy, posz, poso, 0, 120)
end
if(class == 6) then --DK
pPlayer:SpawnCreature(28474, posx, posy, posz, poso, 0, 120)
end
if(class == 7) then --Chaman
pPlayer:SpawnCreature(17520, posx, posy, posz, poso, 0, 120)
end
if(class == 8) then --Mage
pPlayer:SpawnCreature(17514, posx, posy, posz, poso, 0, 120)
end
if(class == 9) then --Démo
pPlayer:SpawnCreature(5171, posx, posy, posz, poso, 0, 120)
end
if(class == 11)then --Druide
pPlayer:SpawnCreature(4217, posx, posy, posz, poso, 0, 120)
end
end
elseif(race == 2) or (race == 5) or (race == 6) or (race == 8) or (race == 10) then -- Perso H²
if(class == 1) then --Guerrier
pPlayer:SpawnCreature(4594, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 2) then --Paladin
pPlayer:SpawnCreature(16681, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 3) then --Chasseur
pPlayer:SpawnCreature(3039, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 4) then --Voleur
pPlayer:SpawnCreature(4582, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 5) then --Prêtre
pPlayer:SpawnCreature(16658, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 6) then --DK
pPlayer:SpawnCreature(28474, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 7) then --Chaman
pPlayer:SpawnCreature(3032, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 8) then --Mage
pPlayer:SpawnCreature(4568, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 9) then --Démo
pPlayer:SpawnCreature(16646, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 11)then --Druide
pPlayer:SpawnCreature(16655, posx2, posy2, posz2, poso2, 0, 120)
end
end

end
end


RegisterServerHook(16, "PlayerOnChat")[/code]

Voilà j'ai rangé trop script, le mode linéaire ça te perd vite.
J'ai corrigé des erreurs de variable qui étaient identique mais qui avaient deux actions différentes je parle du doublon "posz", "posy", "posx", et "poso" puis j'ai supprimé le doublon de "class" inutile de le mettre deux fois. J'ai mis les variables avec les variables.

Voilà ça devrait marcher.
Nop.
scripts\Commande #spell.lua:87: '<eof>' expected near 'end'
J'ai viré le 'end'.
scripts\Commande #spell.lua:5: attempt to index global 'pPlayer' (a nil value) now.
Code :
--Commande #spell.lua Codé par Neø pour Felena-Online


local SPELL_MSG = "#spell"

function PlayerOnChat(event, pPlayer, message, type, language)          
                local LCM = message:lower()
                local class = pPlayer:GetPlayerClass()
                local race = pPlayer:GetPlayerRace()
                local posx = pPlayer:GetX() + 1
                local posy = pPlayer:GetY() + 1
                local posz = pPlayer:GetZ()
                local poso = pPlayer:GetO()
                local posx2 = pPlayer:GetX() + 3
                local posy2 = pPlayer:GetY() + 3
                local posz2 = pPlayer:GetZ() + 3
                local poso2 = pPlayer:GetO()
              
                if(LCM == SPELL_MSG) then
                                        if(race == 1) or (race == 3) or (race == 4) or (race == 7) or (race == 11) then --Perso ally
                                                if(class == 1) then     --Guerrier
                                                        pPlayer:SpawnCreature(16771, posx, posy, posz, poso, 0, 120)
                                                end
                                                if(class == 2) then     --Paladin
                                                        pPlayer:SpawnCreature(5491, posx, posy, posz, poso, 0, 120)
                                                end
                                                if(class == 3) then     --Chasseur
                                                        pPlayer:SpawnCreature(8308, posx, posy, posz, poso, 0, 120)
                                                end
                                                if(class == 4) then     --Voleur
                                                        pPlayer:SpawnCreature(4215, posx, posy, posz, poso, 0, 120)
                                                end
                                                if(class == 5) then --Prêtre
                                                        pPlayer:SpawnCreature(4090, posx, posy, posz, poso, 0, 120)
                                                end
                                                if(class == 6) then --DK
                                                        pPlayer:SpawnCreature(28474, posx, posy, posz, poso, 0, 120)
                                                end
                                                if(class == 7) then --Chaman
                                                        pPlayer:SpawnCreature(17520, posx, posy, posz, poso, 0, 120)
                                                end
                                                if(class == 8) then --Mage
                                                        pPlayer:SpawnCreature(17514, posx, posy, posz, poso, 0, 120)
                                                end
                                                if(class == 9) then --Démo
                                                        pPlayer:SpawnCreature(5171, posx, posy, posz, poso, 0, 120)
                                                end
                                                if(class == 11)then --Druide
                                                        pPlayer:SpawnCreature(4217, posx, posy, posz, poso, 0, 120)
                                                end
                                        elseif(race == 2) or (race == 5) or (race == 6) or (race == 8) or (race == 10) then -- Perso H²
                                                if(class == 1) then     --Guerrier
                                                        pPlayer:SpawnCreature(4594, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                                if(class == 2) then     --Paladin
                                                        pPlayer:SpawnCreature(16681, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                                if(class == 3) then     --Chasseur
                                                        pPlayer:SpawnCreature(3039, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                                if(class == 4) then     --Voleur
                                                        pPlayer:SpawnCreature(4582, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                                if(class == 5) then     --Prêtre
                                                        pPlayer:SpawnCreature(16658, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                                if(class == 6) then     --DK
                                                        pPlayer:SpawnCreature(28474, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                                if(class == 7) then     --Chaman
                                                        pPlayer:SpawnCreature(3032, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                                if(class == 8) then --Mage
                                                        pPlayer:SpawnCreature(4568, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                                if(class == 9) then     --Démo
                                                        pPlayer:SpawnCreature(16646, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                                if(class == 11)then     --Druide
                                                        pPlayer:SpawnCreature(16655, posx2, posy2, posz2, poso2, 0, 120)
                                                end
                                        end

                end
end


RegisterServerHook(16, "PlayerOnChat")
Doesn't works in game, and nothing in the console.
S'passe rien en gros.
Okay, tu joues quoi comme perso ? (Race et classe ?)

Essaie de changer le "elseif" en "else".
[code=lua]--Commande #spell.lua Codé par Neø pour Felena-Online


local SPELL_MSG = "#spell"
local class = pPlayer:GetPlayerClass()
local race = pPlayer:GetPlayerRace()
local posx = pPlayer:GetX() + 1
local posy = pPlayer:GetY() + 1
local posz = pPlayer:GetZ()
local poso = pPlayer:GetO()
local posx2 = pPlayer:GetX() + 3
local posy2 = pPlayer:GetY() + 3
local posz2 = pPlayer:GetZ() + 3
local poso2 = pPlayer:GetO()


function PlayerOnChat(event, pPlayer, message, type, language)
local LCM = message:lower()

if(LCM == SPELL_MSG) then
if(race == 1) or (race == 3) or (race == 4) or (race == 7) or (race == 11) then --Perso ally
if(class == 1) then --Guerrier
pPlayer:SpawnCreature(16771, posx, posy, posz, poso, 0, 120)
end
if(class == 2) then --Paladin
pPlayer:SpawnCreature(5491, posx, posy, posz, poso, 0, 120)
end
if(class == 3) then --Chasseur
pPlayer:SpawnCreature(8308, posx, posy, posz, poso, 0, 120)
end
if(class == 4) then --Voleur
pPlayer:SpawnCreature(4215, posx, posy, posz, poso, 0, 120)
end
if(class == 5) then --Prêtre
pPlayer:SpawnCreature(4090, posx, posy, posz, poso, 0, 120)
end
if(class == 6) then --DK
pPlayer:SpawnCreature(28474, posx, posy, posz, poso, 0, 120)
end
if(class == 7) then --Chaman
pPlayer:SpawnCreature(17520, posx, posy, posz, poso, 0, 120)
end
if(class == 8) then --Mage
pPlayer:SpawnCreature(17514, posx, posy, posz, poso, 0, 120)
end
if(class == 9) then --Démo
pPlayer:SpawnCreature(5171, posx, posy, posz, poso, 0, 120)
end
if(class == 11)then --Druide
pPlayer:SpawnCreature(4217, posx, posy, posz, poso, 0, 120)
end
elseif(race == 2) or (race == 5) or (race == 6) or (race == 8) or (race == 10) then -- Perso H²
if(class == 1) then --Guerrier
pPlayer:SpawnCreature(4594, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 2) then --Paladin
pPlayer:SpawnCreature(16681, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 3) then --Chasseur
pPlayer:SpawnCreature(3039, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 4) then --Voleur
pPlayer:SpawnCreature(4582, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 5) then --Prêtre
pPlayer:SpawnCreature(16658, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 6) then --DK
pPlayer:SpawnCreature(28474, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 7) then --Chaman
pPlayer:SpawnCreature(3032, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 8) then --Mage
pPlayer:SpawnCreature(4568, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 9) then --Démo
pPlayer:SpawnCreature(16646, posx2, posy2, posz2, poso2, 0, 120)
end
if(class == 11)then --Druide
pPlayer:SpawnCreature(16655, posx2, posy2, posz2, poso2, 0, 120)
end
end

end
end


RegisterServerHook(16, "PlayerOnChat")[/code]

Erreur de ma part ! Sachant que c'est un "elseif" que j'ai mis. Il faut que j'enlève le end qui ferme le if. Sinon le elseif n'est rattaché à rien. Ce qui explique l'erreur avec le end à la ligne 87. Test ce que j'ai mis Clin
Le "elseif" est inutile, autant mettre un "else".

Le faite de déclarer les "local" en dehors de la fonction avec des "pPlayer..." est faux il me semble Clin
Non les local sont des variables qui sont lu au moment où une fonction le demande. Et le elseif est peut être inutile mais ça ne change rien de spécial. Dans tout les cas, mon erreur a été résolu, et au pire déplacer les local sont pas bien difficiles.

Retourner en haut Accueil