Ir para conteúdo

[Encerrado] Npc Não Responde


ADM Bruniin

Posts Recomendados

 

 

seOlá Boa Noite Eu Achei um script aqui no xtibia de criar guild pelo npc só que ele não responde

Npc Guild Master

 

Spoiler

 

<?xml version="1.0"?>

<npc name="Guild Master" script="data/npc/scripts/guild.lua" access="3" lookdir="1">
    <health now="1" max="1"/>
    <look type="57" head="20" body="30" legs="40" feet="50" corpse="3128"/>
</npc>

 

Aqui Está o Script

script/guilds

Se Alguém soube resolver darei rep++ 

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 = creatureGetName(cid)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. cname .. '! onde posso te ajudar?')
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

  • 5 months later...
A questão neste suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...