Ir para conteúdo
  • 0

[NPC] Guild master dando erro


jonathasbizerril

Pergunta

Olá galera alguem conserta esse erro para mim?

[31/08/2013 10:45:09] [Error - LuaScriptInterface::loadFile] data/npc/scripts/Guild Master.lua:53: unexpected symbol near ')'
[31/08/2013 10:45:09] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/Guild Master.lua
[31/08/2013 10:45:09] data/npc/scripts/Guild Master.lua:53: unexpected symbol near ')'

O scrpit é esse NPC Guild Master.

local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false
local talk_state = 0
local gstat = 0 -- guild status
local grank = '' -- guild rank
local gname = '' -- guild name
local cname = '' -- name of player who talks to us
local pname = '' -- name of some other player
local maxnamelen = 30
local maxranklen = 20
local maxnicklen = 20
local leaderlevel = 50
local NONE = 0
local INVITED = 1
local MEMBER = 2
local VICE = 3
local LEADER = 4
local allow_pattern = '^[a-zA-Z0-9 -]+$'

function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
end
end


function onCreatureTurn(creature)

end


function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)
cname = creatureGetGuildLeadernamecid)

function getGuildLeaderName(GuildName) --
local leader = db.getResult("SELECT `players`.`name` FROM `players` WHERE `players`.`id` = (SELECT `guilds`.`ownerid` FROM `guilds` WHERE `guilds`.`name` = ".. db.escapeString(GuildName) .. ")") if(leader:getID() ~= -1) then return
leader:getDataString("name") end return nilend

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. cname .. '! You can create a guild talking "!createguild ...and the name...". When you create go for the Guild-Chat, and talk ')
talk_state = 0
focus = cid
talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. cname .. '! I talk to you in a minute.')

elseif msgcontains(msg, 'bye') and (focus == cid) and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. cname .. '!')
talk_state = 0
focus = 0
talk_start = 0

elseif focus == cid then
if talk_state == 0 then
msg = string.lower(msg)

if msgcontains(msg, 'found') then -- found a new guild
level = getPlayerLevel(cid)

if level >= leaderlevel then
gstat = getPlayerGuildStatus(cname)

if gstat == NONE or gstat == INVITED then
selfSay('What name your guild should have?')
talk_state = 1
elseif gstat == MEMBER or gstat == VICE or gstat == LEADER then
selfSay('Sorry, you are member of a guild.')
talk_state = 0
end
else
selfSay('Sorry, you need level ' .. leaderlevel .. ' to found a guild.')
end

talk_start = os.clock()

elseif msgcontains(msg, 'join') then -- join a guild when invited
gstat = getPlayerGuildStatus(cname)

if gstat == NONE then
selfSay('Sorry, you are not invited to any guild.')
talk_state = 0
elseif gstat == INVITED then
gname = getPlayerGuildName(cname)
selfSay('Do you want to join ' .. gname .. '?')
talk_state = 3
elseif gstat == MEMBER or gstat == VICE or gstat == LEADER then
selfSay('Sorry, you are a member of a guild.')
talk_state = 0
end

talk_start = os.clock()

elseif msgcontains(msg, 'exclude') or msgcontains(msg, 'kick') then -- kick player from a guild
gstat = getPlayerGuildStatus(cname)

if gstat == VICE or gstat == LEADER then
selfSay('Who do you want to kick today?')
talk_state = 4
else
selfSay('Sorry, only leader and vice-leaders can kick players from a guild.')
talk_state = 0
end

talk_start = os.clock()

elseif msgcontains(msg, 'invite') then -- invite player to a guild
gstat = getPlayerGuildStatus(cname)

if gstat == VICE or gstat == LEADER then
selfSay('Who do you want to invite to your guild?')
talk_state = 5
else
selfSay('Sorry, only leader and vice-leaders can invite players to a guild.')
talk_state = 0
end

talk_start = os.clock()

elseif msgcontains(msg, 'leave') then -- leave a guild
gstat = getPlayerGuildStatus(cname)

if gstat == NONE or gstat == INVITED then
selfSay('You are not in a guild.')
talk_state = 0
elseif gstat == MEMBER or gstat == VICE then
gname = getPlayerGuildName(cname)
selfSay('Do you want to leave ' .. gname .. '?')
talk_state = 7
elseif gstat == LEADER then
selfSay('You are a leader of a guild. If you leave, no one can invite new players. Are you sure?')
talk_state = 7
end

elseif msgcontains(msg, 'pass') then -- pass leadership
gstat = getPlayerGuildStatus(cname)

if gstat == LEADER then
selfSay('Who do you want to be a new leader?')
talk_state = 8
else
selfSay('Sorry, only leader can resign from his position.')
talk_state = 0
end

elseif msgcontains(msg, 'vice') then -- set vice leader
gstat = getPlayerGuildStatus(cname)

if gstat == LEADER then
selfSay('Which member do you want to promote to vice-leader?')
talk_state = 9
else
selfSay('Sorry, only leader can promote member to vice-leader.')
talk_state = 0
end

elseif msgcontains(msg, 'member') then -- remove vice-leader
gstat = getPlayerGuildStatus(cname)

if gstat == LEADER then
selfSay('Which vice-leader do you want to demote to regular member?')
talk_state = 10
else
selfSay('Sorry, only leader can demote vice-leaders to members.')
talk_state = 0
end

elseif msgcontains(msg, 'nick') or msgcontains(msg, 'title') then -- set nick
gstat = getPlayerGuildStatus(cname);

if gstat == LEADER then
selfSay('Whom player do you want to change nick?')
talk_state = 11
else
selfSay('Sorry, only leader can change nicks.')
talk_state = 0
end
end

else -- talk_state != 0
talk_start = os.clock()

if talk_state == 1 then -- get name of new guild
gname = msg

if string.len(gname) <= maxnamelen then
if string.find(gname, allow_pattern) then
if foundNewGuild(gname) == 0 then
selfSay('Sorry, there is already a guild with that name.')
talk_state = 0
else
selfSay('And what rank do you wish to have?')
talk_state = 2
end
else
selfSay('Sorry, guild name contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, guild name cannot be longer than ' .. maxnamelen .. ' characters.')
talk_state = 0
end

elseif talk_state == 2 then -- get rank of leader
grank = msg

if string.len(grank) <= maxranklen then
if string.find(grank, allow_pattern) then
setPlayerGuild(cname,LEADER,grank,gname)
selfSay('You are now leader of your new guild.')
talk_state = 0
else
selfSay('Sorry, rank name contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, rank name cannot be longer than ' .. maxranklen .. ' characters.')
talk_state = 0
end

elseif talk_state == 3 then -- join a guild
if msg == 'yes' then
setPlayerGuildStatus(cname, MEMBER)
selfSay('You are now member of a guild.')
talk_state = 0
else
selfSay('What else can I do for you?')
talk_state = 0
end

elseif talk_state == 4 then -- kick player
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if cname == pname then
selfSay('To kick yourself say leave.')
talk_state = 0
elseif gname == gname2 then
gstat2 = getPlayerGuildStatus(pname)

if gstat > gstat2 then
clearPlayerGuild(pname)
selfSay('You kicked ' .. pname .. ' from your guild.')
talk_state = 0
else
selfSay('Sorry, vice-leaders can kick only regular members.')
talk_state = 0
end
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end

elseif talk_state == 5 then -- get invited name
pname = msg
gstat = getPlayerGuildStatus(pname)

if gstat == MEMBER or gstat == VICE or gstat == LEADER then
selfSay('Sorry, ' .. pname .. ' is in another guild.')
talk_state = 0
else
selfSay('And what rank do you wish to give him/her?')
talk_state = 6
end

elseif talk_state == 6 then -- get invited rank
grank = msg

if string.len(grank) <= maxranklen then
if string.find(grank, allow_pattern) then
gname = getPlayerGuildName(cname)
setPlayerGuild(pname, INVITED, grank, gname)
selfSay('You have invited ' .. pname .. ' to your guild.')
talk_state = 0
else
selfSay('Sorry, rank name contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, rank name cannot be longer than ' .. maxranklen .. ' characters.')
talk_state = 0
end

elseif talk_state == 7 then -- leave a guild
if msg == 'yes' then
clearPlayerGuild(cname)
selfSay('You have left your guild.')
talk_state = 0
else
selfSay('What else can I do for you?')
talk_state = 0
end

elseif talk_state == 8 then -- pass leadership
pname = msg
level = getPlayerLevel(pname)

if level >= leaderlevel then
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if gname == gname2 then
setPlayerGuildStatus(cname,MEMBER)
setPlayerGuildStatus(pname,LEADER)
gname = getPlayerGuildName(cname)
selfSay(pname .. ' is a new leader of ' .. gname .. '.')
talk_state = 0
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0;
end
else
selfSay('Sorry, ' .. pname .. ' is not online.')
talk_state = 0
end

elseif talk_state == 9 then -- set vice-leader
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if cname == pname then
selfSay('To resign from leadership say pass.')
talk_state = 0
elseif gname == gname2 then
gstat = getPlayerGuildStatus(pname)

if gstat == INVITED then
selfSay('Sorry, ' .. pname .. ' hasn\'t joined your guild yet.');
talk_state = 0
elseif gstat == VICE then
selfSay(pname .. ' is already a vice-leader.')
talk_state = 0
elseif gstat == MEMBER then
setPlayerGuildStatus(pname, VICE)
selfSay(pname .. ' is now a vice-leader of your guild.')
talk_state = 0
end
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end

elseif talk_state == 10 then -- set member
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if cname == pname then
selfSay('To resign from leadership say pass.')
talk_state = 0
elseif gname == gname2 then
gstat = getPlayerGuildStatus(pname)

if gstat == INVITED then
selfSay('Sorry, ' .. pname .. ' hasn\'t joined your guild yet.');
talk_state = 0
elseif gstat == VICE then
setPlayerGuildStatus(pname, MEMBER)
selfSay(pname .. ' is now a regular member of your guild.')
talk_state = 0
elseif gstat == MEMBER then
selfSay(pname .. ' is already a regular member.')
talk_state = 0
end
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end

elseif talk_state == 11 then -- get name of player to change nick
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if gname == gname2 then
selfSay('And what nick do you want him to have (say none to clear)?')
talk_state = 12
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end

elseif talk_state == 12 then -- get nick
if msg == 'none' then
setPlayerGuildNick(pname, '')
selfSay(pname .. ' now has no nick.')
talk_state = 0
else
if string.len(msg) <= maxnicklen then
if string.find(msg, allow_pattern) then
setPlayerGuildNick(pname, msg)
selfSay('You have changed ' .. pname .. '\'s nick.')
talk_state = 0
else
selfSay('Sorry, nick contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, nick cannot be longer than ' .. maxnicklen .. ' characters.')
talk_state = 0
end
end
end
end
end
end


function onCreatureChangeOutfit(creature)

end


function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 45 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end

Editado por jonathasbizerril
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Coloca os scripts em spoiler.

 

 

local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false
local talk_state = 0
local gstat = 0 -- guild status
local grank = '' -- guild rank
local gname = '' -- guild name
local cname = '' -- name of player who talks to us
local pname = '' -- name of some other player
local maxnamelen = 30
local maxranklen = 20
local maxnicklen = 20
local leaderlevel = 50
local NONE = 0
local INVITED = 1
local MEMBER = 2
local VICE = 3
local LEADER = 4
local allow_pattern = '^[a-zA-Z0-9 -]+$'
function onThingMove(creature, thing, oldpos, oldstackpos)
end
function onCreatureAppear(creature)
end
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
end
end
function onCreatureTurn(creature)
end
function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
function onCreatureSay(cid, type, msg)
cname = creatureGetGuildLeadernamecid
end
function getGuildLeaderName(GuildName) --
local leader = db.getResult("SELECT `players`.`name` FROM `players` WHERE `players`.`id` = (SELECT `guilds`.`ownerid` FROM `guilds` WHERE `guilds`.`name` = ".. db.escapeString(GuildName) .. ")")
if(leader:getID() ~= -1) then return leader:getDataString("name") end
if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. cname .. '! You can create a guild talking "!createguild ...and the name...". When you create go for the Guild-Chat, and talk ')
talk_state = 0
focus = cid
talk_start = os.clock()
elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. cname .. '! I talk to you in a minute.')
elseif msgcontains(msg, 'bye') and (focus == cid) and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. cname .. '!')
talk_state = 0
focus = 0
talk_start = 0
elseif focus == cid then
if talk_state == 0 then
msg = string.lower(msg)
if msgcontains(msg, 'found') then -- found a new guild
level = getPlayerLevel(cid)
if level >= leaderlevel then
gstat = getPlayerGuildStatus(cname)
if gstat == NONE or gstat == INVITED then
selfSay('What name your guild should have?')
talk_state = 1
elseif gstat == MEMBER or gstat == VICE or gstat == LEADER then
selfSay('Sorry, you are member of a guild.')
talk_state = 0
end
else
selfSay('Sorry, you need level ' .. leaderlevel .. ' to found a guild.')
end
talk_start = os.clock()
elseif msgcontains(msg, 'join') then -- join a guild when invited
gstat = getPlayerGuildStatus(cname)
if gstat == NONE then
selfSay('Sorry, you are not invited to any guild.')
talk_state = 0
elseif gstat == INVITED then
gname = getPlayerGuildName(cname)
selfSay('Do you want to join ' .. gname .. '?')
talk_state = 3
elseif gstat == MEMBER or gstat == VICE or gstat == LEADER then
selfSay('Sorry, you are a member of a guild.')
talk_state = 0
end
talk_start = os.clock()
elseif msgcontains(msg, 'exclude') or msgcontains(msg, 'kick') then -- kick player from a guild
gstat = getPlayerGuildStatus(cname)
if gstat == VICE or gstat == LEADER then
selfSay('Who do you want to kick today?')
talk_state = 4
else
selfSay('Sorry, only leader and vice-leaders can kick players from a guild.')
talk_state = 0
end
talk_start = os.clock()
elseif msgcontains(msg, 'invite') then -- invite player to a guild
gstat = getPlayerGuildStatus(cname)
if gstat == VICE or gstat == LEADER then
selfSay('Who do you want to invite to your guild?')
talk_state = 5
else
selfSay('Sorry, only leader and vice-leaders can invite players to a guild.')
talk_state = 0
end
talk_start = os.clock()
elseif msgcontains(msg, 'leave') then -- leave a guild
gstat = getPlayerGuildStatus(cname)
if gstat == NONE or gstat == INVITED then
selfSay('You are not in a guild.')
talk_state = 0
elseif gstat == MEMBER or gstat == VICE then
gname = getPlayerGuildName(cname)
selfSay('Do you want to leave ' .. gname .. '?')
talk_state = 7
elseif gstat == LEADER then
selfSay('You are a leader of a guild. If you leave, no one can invite new players. Are you sure?')
talk_state = 7
end
elseif msgcontains(msg, 'pass') then -- pass leadership
gstat = getPlayerGuildStatus(cname)
if gstat == LEADER then
selfSay('Who do you want to be a new leader?')
talk_state = 8
else
selfSay('Sorry, only leader can resign from his position.')
talk_state = 0
end
elseif msgcontains(msg, 'vice') then -- set vice leader
gstat = getPlayerGuildStatus(cname)
if gstat == LEADER then
selfSay('Which member do you want to promote to vice-leader?')
talk_state = 9
else
selfSay('Sorry, only leader can promote member to vice-leader.')
talk_state = 0
end
elseif msgcontains(msg, 'member') then -- remove vice-leader
gstat = getPlayerGuildStatus(cname)
if gstat == LEADER then
selfSay('Which vice-leader do you want to demote to regular member?')
talk_state = 10
else
selfSay('Sorry, only leader can demote vice-leaders to members.')
talk_state = 0
end
elseif msgcontains(msg, 'nick') or msgcontains(msg, 'title') then -- set nick
gstat = getPlayerGuildStatus(cname);
if gstat == LEADER then
selfSay('Whom player do you want to change nick?')
talk_state = 11
else
selfSay('Sorry, only leader can change nicks.')
talk_state = 0
end
end
else -- talk_state != 0
talk_start = os.clock()
if talk_state == 1 then -- get name of new guild
gname = msg
if string.len(gname) <= maxnamelen then
if string.find(gname, allow_pattern) then
if foundNewGuild(gname) == 0 then
selfSay('Sorry, there is already a guild with that name.')
talk_state = 0
else
selfSay('And what rank do you wish to have?')
talk_state = 2
end
else
selfSay('Sorry, guild name contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, guild name cannot be longer than ' .. maxnamelen .. ' characters.')
talk_state = 0
end
elseif talk_state == 2 then -- get rank of leader
grank = msg
if string.len(grank) <= maxranklen then
if string.find(grank, allow_pattern) then
setPlayerGuild(cname,LEADER,grank,gname)
selfSay('You are now leader of your new guild.')
talk_state = 0
else
selfSay('Sorry, rank name contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, rank name cannot be longer than ' .. maxranklen .. ' characters.')
talk_state = 0
end
elseif talk_state == 3 then -- join a guild
if msg == 'yes' then
setPlayerGuildStatus(cname, MEMBER)
selfSay('You are now member of a guild.')
talk_state = 0
else
selfSay('What else can I do for you?')
talk_state = 0
end
elseif talk_state == 4 then -- kick player
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)
if cname == pname then
selfSay('To kick yourself say leave.')
talk_state = 0
elseif gname == gname2 then
gstat2 = getPlayerGuildStatus(pname)
if gstat > gstat2 then
clearPlayerGuild(pname)
selfSay('You kicked ' .. pname .. ' from your guild.')
talk_state = 0
else
selfSay('Sorry, vice-leaders can kick only regular members.')
talk_state = 0
end
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end
elseif talk_state == 5 then -- get invited name
pname = msg
gstat = getPlayerGuildStatus(pname)
if gstat == MEMBER or gstat == VICE or gstat == LEADER then
selfSay('Sorry, ' .. pname .. ' is in another guild.')
talk_state = 0
else
selfSay('And what rank do you wish to give him/her?')
talk_state = 6
end
elseif talk_state == 6 then -- get invited rank
grank = msg
if string.len(grank) <= maxranklen then
if string.find(grank, allow_pattern) then
gname = getPlayerGuildName(cname)
setPlayerGuild(pname, INVITED, grank, gname)
selfSay('You have invited ' .. pname .. ' to your guild.')
talk_state = 0
else
selfSay('Sorry, rank name contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, rank name cannot be longer than ' .. maxranklen .. ' characters.')
talk_state = 0
end
elseif talk_state == 7 then -- leave a guild
if msg == 'yes' then
clearPlayerGuild(cname)
selfSay('You have left your guild.')
talk_state = 0
else
selfSay('What else can I do for you?')
talk_state = 0
end
elseif talk_state == 8 then -- pass leadership
pname = msg
level = getPlayerLevel(pname)
if level >= leaderlevel then
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)
if gname == gname2 then
setPlayerGuildStatus(cname,MEMBER)
setPlayerGuildStatus(pname,LEADER)
gname = getPlayerGuildName(cname)
selfSay(pname .. ' is a new leader of ' .. gname .. '.')
talk_state = 0
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0;
end
else
selfSay('Sorry, ' .. pname .. ' is not online.')
talk_state = 0
end
elseif talk_state == 9 then -- set vice-leader
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)
if cname == pname then
selfSay('To resign from leadership say pass.')
talk_state = 0
elseif gname == gname2 then
gstat = getPlayerGuildStatus(pname)
if gstat == INVITED then
selfSay('Sorry, ' .. pname .. ' hasn\'t joined your guild yet.');
talk_state = 0
elseif gstat == VICE then
selfSay(pname .. ' is already a vice-leader.')
talk_state = 0
elseif gstat == MEMBER then
setPlayerGuildStatus(pname, VICE)
selfSay(pname .. ' is now a vice-leader of your guild.')
talk_state = 0
end
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end
elseif talk_state == 10 then -- set member
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)
if cname == pname then
selfSay('To resign from leadership say pass.')
talk_state = 0
elseif gname == gname2 then
gstat = getPlayerGuildStatus(pname)
if gstat == INVITED then
selfSay('Sorry, ' .. pname .. ' hasn\'t joined your guild yet.');
talk_state = 0
elseif gstat == VICE then
setPlayerGuildStatus(pname, MEMBER)
selfSay(pname .. ' is now a regular member of your guild.')
talk_state = 0
elseif gstat == MEMBER then
selfSay(pname .. ' is already a regular member.')
talk_state = 0
end
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end
elseif talk_state == 11 then -- get name of player to change nick
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)
if gname == gname2 then
selfSay('And what nick do you want him to have (say none to clear)?')
talk_state = 12
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end
elseif talk_state == 12 then -- get nick
if msg == 'none' then
setPlayerGuildNick(pname, '')
selfSay(pname .. ' now has no nick.')
talk_state = 0
else
if string.len(msg) <= maxnicklen then
if string.find(msg, allow_pattern) then
setPlayerGuildNick(pname, msg)
selfSay('You have changed ' .. pname .. '\'s nick.')
talk_state = 0
else
selfSay('Sorry, nick contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, nick cannot be longer than ' .. maxnicklen .. ' characters.')
talk_state = 0
end
end
end
end
end
end
function onCreatureChangeOutfit(creature)
end
function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 45 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end

Link para o comentário
Compartilhar em outros sites

  • 0

Ai deu esse erro ai

 

[04/09/2013 01:10:10] [Error - Npc interface]

[04/09/2013 01:10:10] data/npc/scripts/Guild Master.lua:onCreatureSay
[04/09/2013 01:10:10] Description:
[04/09/2013 01:10:10] data/npc/scripts/Guild Master.lua:78: attempt to call global 'getPlayerGuildStatus' (a nil value)
[04/09/2013 01:10:10] stack traceback:

[04/09/2013 01:10:10] data/npc/scripts/Guild Master.lua:78: in function <data/npc/scripts/Guild Master.lua:52>

 

 

O Scrpit mudei umas coisas agora é esse

 

 

local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false
local talk_state = 0
local gstat = 0 -- guild status
local grank = '' -- guild rank
local gname = '' -- guild name
local cname = '' -- name of player who talks to us
local pname = '' -- name of some other player
local maxnamelen = 30
local maxranklen = 20
local maxnicklen = 20
local leaderlevel = 50
local NONE = 0
local INVITED = 1
local MEMBER = 2
local VICE = 3
local LEADER = 4
local allow_pattern = '^[a-zA-Z0-9 -]+$'

function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
end
end


function onCreatureTurn(creature)

end


function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)
cname = getCreatureName(cid)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Ola ' .. cname .. '! Eu posso ajudar voce a criar uma [guild].', cid)
talk_state = 0
focus = cid
talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Desculpe, ' .. cname .. '! Eu falo com voce em um minuto.', cid)

elseif msgcontains(msg, 'bye') and (focus == cid) and getDistanceToCreature(cid) < 4 then
selfSay('Adeus!, ' .. cname .. '!', cid)
talk_state = 0
focus = 0
talk_start = 0

elseif focus == cid then
if talk_state == 0 then
msg = string.lower(msg)

if(msgcontains(msg, 'found') or msgcontains(msg, 'criar')) then
level = getPlayerLevel(cid)

if level >= leaderlevel then
gstat = getPlayerGuildStatus(cname)

if gstat == NONE or gstat == INVITED then
selfSay('Qual o nome que voce desejar por na sua guild?', cid)
talk_state = 1
elseif gstat == MEMBER or gstat == VICE or gstat == LEADER then
selfSay('Desculpe, voce ja e um membro de uma guild.', cid)
talk_state = 0
end
else
selfSay('Desculpe, voce precisa ser nivel ' .. leaderlevel .. ' para criar uma guild.', cid)
end

talk_start = os.clock()

elseif(msgcontains(msg, 'join') or msgcontains(msg, 'invitar')) then
gstat = getPlayerGuildStatus(cname)

if gstat == NONE then
selfSay('Sorry, you are not invited to any guild.', cid)
talk_state = 0
elseif gstat == INVITED then
gname = getPlayerGuildName(cname)
selfSay('Do you want to join ' .. gname .. '?')
talk_state = 3
elseif gstat == MEMBER or gstat == VICE or gstat == LEADER then
selfSay('Sorry, you are a member of a guild.')
talk_state = 0
end

talk_start = os.clock()

elseif msgcontains(msg, 'exclude') or msgcontains(msg, 'kick') then -- kick player from a guild
gstat = getPlayerGuildStatus(cname)

if gstat == VICE or gstat == LEADER then
selfSay('Who do you want to kick today?')
talk_state = 4
else
selfSay('Sorry, only leader and vice-leaders can kick players from a guild.')
talk_state = 0
end

talk_start = os.clock()

elseif msgcontains(msg, 'invite') then -- invite player to a guild
gstat = getPlayerGuildStatus(cname)

if gstat == VICE or gstat == LEADER then
selfSay('Who do you want to invite to your guild?')
talk_state = 5
else
selfSay('Sorry, only leader and vice-leaders can invite players to a guild.')
talk_state = 0
end

talk_start = os.clock()

elseif msgcontains(msg, 'leave') then -- leave a guild
gstat = getPlayerGuildStatus(cname)

if gstat == NONE or gstat == INVITED then
selfSay('You are not in a guild.')
talk_state = 0
elseif gstat == MEMBER or gstat == VICE then
gname = getPlayerGuildName(cname)
selfSay('Do you want to leave ' .. gname .. '?')
talk_state = 7
elseif gstat == LEADER then
selfSay('You are a leader of a guild. If you leave, no one can invite new players. Are you sure?')
talk_state = 7
end

elseif msgcontains(msg, 'pass') then -- pass leadership
gstat = getPlayerGuildStatus(cname)

if gstat == LEADER then
selfSay('Who do you want to be a new leader?')
talk_state = 8
else
selfSay('Sorry, only leader can resign from his position.')
talk_state = 0
end

elseif msgcontains(msg, 'vice') then -- set vice leader
gstat = getPlayerGuildStatus(cname)

if gstat == LEADER then
selfSay('Which member do you want to promote to vice-leader?')
talk_state = 9
else
selfSay('Sorry, only leader can promote member to vice-leader.')
talk_state = 0
end

elseif msgcontains(msg, 'member') then -- remove vice-leader
gstat = getPlayerGuildStatus(cname)

if gstat == LEADER then
selfSay('Which vice-leader do you want to demote to regular member?')
talk_state = 10
else
selfSay('Sorry, only leader can demote vice-leaders to members.')
talk_state = 0
end

elseif msgcontains(msg, 'nick') or msgcontains(msg, 'title') then -- set nick
gstat = getPlayerGuildStatus(cname);

if gstat == LEADER then
selfSay('Whom player do you want to change nick?')
talk_state = 11
else
selfSay('Sorry, only leader can change nicks.')
talk_state = 0
end
end

else -- talk_state != 0
talk_start = os.clock()

if talk_state == 1 then -- get name of new guild
gname = msg

if string.len(gname) <= maxnamelen then
if string.find(gname, allow_pattern) then
if foundNewGuild(gname) == 0 then
selfSay('Sorry, there is already a guild with that name.')
talk_state = 0
else
selfSay('And what rank do you wish to have?')
talk_state = 2
end
else
selfSay('Sorry, guild name contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, guild name cannot be longer than ' .. maxnamelen .. ' characters.')
talk_state = 0
end

elseif talk_state == 2 then -- get rank of leader
grank = msg

if string.len(grank) <= maxranklen then
if string.find(grank, allow_pattern) then
setPlayerGuild(cname,LEADER,grank,gname)
selfSay('You are now leader of your new guild.')
talk_state = 0
else
selfSay('Sorry, rank name contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, rank name cannot be longer than ' .. maxranklen .. ' characters.')
talk_state = 0
end

elseif talk_state == 3 then -- join a guild
if msg == 'yes' then
setPlayerGuildStatus(cname, MEMBER)
selfSay('You are now member of a guild.')
talk_state = 0
else
selfSay('What else can I do for you?')
talk_state = 0
end

elseif talk_state == 4 then -- kick player
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if cname == pname then
selfSay('To kick yourself say leave.')
talk_state = 0
elseif gname == gname2 then
gstat2 = getPlayerGuildStatus(pname)

if gstat > gstat2 then
clearPlayerGuild(pname)
selfSay('You kicked ' .. pname .. ' from your guild.')
talk_state = 0
else
selfSay('Sorry, vice-leaders can kick only regular members.')
talk_state = 0
end
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end

elseif talk_state == 5 then -- get invited name
pname = msg
gstat = getPlayerGuildStatus(pname)

if gstat == MEMBER or gstat == VICE or gstat == LEADER then
selfSay('Sorry, ' .. pname .. ' is in another guild.')
talk_state = 0
else
selfSay('And what rank do you wish to give him/her?')
talk_state = 6
end

elseif talk_state == 6 then -- get invited rank
grank = msg

if string.len(grank) <= maxranklen then
if string.find(grank, allow_pattern) then
gname = getPlayerGuildName(cname)
setPlayerGuild(pname, INVITED, grank, gname)
selfSay('You have invited ' .. pname .. ' to your guild.')
talk_state = 0
else
selfSay('Sorry, rank name contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, rank name cannot be longer than ' .. maxranklen .. ' characters.')
talk_state = 0
end

elseif talk_state == 7 then -- leave a guild
if msg == 'yes' then
clearPlayerGuild(cname)
selfSay('You have left your guild.')
talk_state = 0
else
selfSay('What else can I do for you?')
talk_state = 0
end

elseif talk_state == 8 then -- pass leadership
pname = msg
level = getPlayerLevel(pname)

if level >= leaderlevel then
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if gname == gname2 then
setPlayerGuildStatus(cname,MEMBER)
setPlayerGuildStatus(pname,LEADER)
gname = getPlayerGuildName(cname)
selfSay(pname .. ' is a new leader of ' .. gname .. '.')
talk_state = 0
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0;
end
else
selfSay('Sorry, ' .. pname .. ' is not online.')
talk_state = 0
end

elseif talk_state == 9 then -- set vice-leader
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if cname == pname then
selfSay('To resign from leadership say pass.')
talk_state = 0
elseif gname == gname2 then
gstat = getPlayerGuildStatus(pname)

if gstat == INVITED then
selfSay('Sorry, ' .. pname .. ' hasn\'t joined your guild yet.');
talk_state = 0
elseif gstat == VICE then
selfSay(pname .. ' is already a vice-leader.')
talk_state = 0
elseif gstat == MEMBER then
setPlayerGuildStatus(pname, VICE)
selfSay(pname .. ' is now a vice-leader of your guild.')
talk_state = 0
end
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end

elseif talk_state == 10 then -- set member
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if cname == pname then
selfSay('To resign from leadership say pass.')
talk_state = 0
elseif gname == gname2 then
gstat = getPlayerGuildStatus(pname)

if gstat == INVITED then
selfSay('Sorry, ' .. pname .. ' hasn\'t joined your guild yet.');
talk_state = 0
elseif gstat == VICE then
setPlayerGuildStatus(pname, MEMBER)
selfSay(pname .. ' is now a regular member of your guild.')
talk_state = 0
elseif gstat == MEMBER then
selfSay(pname .. ' is already a regular member.')
talk_state = 0
end
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end

elseif talk_state == 11 then -- get name of player to change nick
pname = msg
gname = getPlayerGuildName(cname)
gname2 = getPlayerGuildName(pname)

if gname == gname2 then
selfSay('And what nick do you want him to have (say none to clear)?')
talk_state = 12
else
selfSay('Sorry, ' .. pname .. ' is not in your guild.')
talk_state = 0
end

elseif talk_state == 12 then -- get nick
if msg == 'none' then
setPlayerGuildNick(pname, '')
selfSay(pname .. ' now has no nick.')
talk_state = 0
else
if string.len(msg) <= maxnicklen then
if string.find(msg, allow_pattern) then
setPlayerGuildNick(pname, msg)
selfSay('You have changed ' .. pname .. '\'s nick.')
talk_state = 0
else
selfSay('Sorry, nick contains illegal characters.')
talk_state = 0
end
else
selfSay('Sorry, nick cannot be longer than ' .. maxnicklen .. ' characters.')
talk_state = 0
end
end
end
end
end
end


function onCreatureChangeOutfit(creature)

end


function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 45 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end

 

 


Ajuda ai +rep

Editado por jonathasbizerril
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...