Ir para conteúdo

lolksky

Membro
  • Registro em

  • Última visita

  1. Desculpa reviver o tópico. Acontece que apesar do script funcionar perfeitamente, hoje fui me tocar que o player pode ter skill menor que o exigido, mas se usar utito tempo ou qualquer ring de skill o skill aumenta por um tempo permitindo passar pela porta. Teria como inviabilizar a passagem caso o player esteja utilizando magia ou ring ??
  2. lolksky reagiu a uma resposta no tópico: (Resolvido)Porta que abre com X skill
  3. lolksky reagiu a uma resposta no tópico: (Resolvido)Porta que abre com X skill
  4. Funcionou perfeitamente usando if getPlayerSkill(cid, SKILL_SWORD) >= 15 or getPlayerSkill(cid, SKILL_AXE) >= 15 or getPlayerSkill(cid, SKILL_CLUB) >= 15 then Obrigado a ambos pela ajuda!!
  5. .Qual servidor ou website você utiliza como base? TFS 0.4 (8.60) Qual o motivo deste tópico? Boa tarde, Gostaria de pedir um script no qual o player consiga abrir uma porta somente se ele tiver skill sword > 85 e/ou axe > 85 e/ou club > 85 e/ou distance > 85 e/ou magic level > 70. Caso não tenha algum dos requisitos acima, aparecer mensagem informando que ele não pode passar sem uma das skills agradeço desde já
  6. .Qual servidor ou website você utiliza como base? TFS 0.4 (8.60) Qual o motivo deste tópico? Suporte com erro em script de NPC Está surgindo algum erro? Se sim coloque-o aqui. Você tem o código disponível? Se tiver publique-o aqui: 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 Peguei esse script de um outro servidor 8.60 (antigo thyranics). No executável consta esse erro - sou super noob com programação - então não sei arrumar isso.
  7. lolksky reagiu a uma resposta no tópico: (Resolvido)tile que remove storage
  8. Funcionou perfeitamente!! Nn storage do baú estava "-1", alterei e deu certo. Muito obrigado Obrigado também ao Belmont!
  9. Não constou nenhum erro no executável, porém não funcionou. Fiz um teste com um baú de quest e não deu o item novamente após passar pelo tile.
  10. lolksky alterou sua foto pessoal
  11. Se não tiver o storage ele passa normalmente. Nada acontece. Não precisa de mensagem, efeito, tp, nada. Somente remover os storages caso o player tenha. Obrigado,
  12. .Qual servidor ou website você utiliza como base? TFS 0.4 (8.60) Qual o motivo deste tópico? pedido de script Boa tarde, Gostaria de um script no qual ao passar sobre um tile, fossem removidos 4 storages do player. Procurei aqui no forum, encontrei alguns de anos, mas não funcionaram.
  13. TFS 0.4 (8.60) Desculpe reviver o tópico, mas teria como alguém atualizar o script para que ele remova mais de 1 storage ao passar sobre ele??
  14. Testei aqui e funcionou, porém com um problema: o dodge não está retirando 50% do dano, mas sim tirando todo o dano. Quando aparece o "dodge", nenhum dano é inferido. Queria saber se poderiam complementar o sistema em 2 pontos: 1. o player com PA ter maior porcentagem de dodge 2. ao dar look, constar o level do dodge "dodge x/100"
  15. .Qual servidor ou website você utiliza como base? TFS 0.4 (8.60) Qual o motivo deste tópico? Pedido de Script Boa tarde, Gostaria de um sisteminha no qual um determinado monstro só tomasse dano quando seus summons não estivessem presentes, ou seja, toda vez que a criatura principal sumonar algum bicho, o player tem que matar os summons para depois dar dano no principal. Se possível, enquanto tiver summons, caso o player atacar o monstro principal, todo dano seja refletido no player. Obs.: caso for mais simples, pode ser feito o script por uma área, por exemplo, dentro de uma área X (sala do boss), sempre que houver uma criatura Y (summons), o boss não tome os danos. (Acredito que isso seria feito por "identificação" da criatura na área delimitada). grato,
  16. FeeTads reagiu a uma resposta no tópico: (Resolvido)Premmy no nick
  17. lolksky reagiu a uma resposta no tópico: (Resolvido)Premmy no nick
  18. Agora parece que foi! hehe vou fazer mais testes, qualquer coisa retorno De toda forma, muito obrigado até aqui. Você é fera demais !
  19. [19:52:05.028] [Error - CreatureScript Interface] [19:52:05.031] In a timer event called from: [19:52:05.032] data/creaturescripts/scripts/nomePremmy.lua:onLogin [19:52:05.032] Description: [19:52:05.033] data/creaturescripts/scripts/nomePremmy.lua:34: attempt to perform arithmetic on local 'nomeAntigo' (a string value) [19:52:05.033] stack traceback: [19:52:05.034] data/creaturescripts/scripts/nomePremmy.lua:34: in function <data/creaturescripts/scripts/nomePremmy.lua:27> E o [P] continua no nome apos tirar o PA
  20. Apareceu a mensagem que iria deslogar para mudar o nome, mas não apareceu o [P] e acusou isso: OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: near "Teste": syntax error (UPDATE "players" SET "name" = [P] Teste WHERE "name" = Teste;)
  21. Perdoa a ignorância... mas onde coloco isso?

Informação Importante

Confirmação de Termo