Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Funciona assim,vc passa do lvl 250 vc pode ir falar com este npc que ele vai te 'resetar' pro lv 1 e de ta 20k de life so que nao tem limite de lv por exemplo vc pode ir upando ate lv 1k e dps reseta ai tendo mais vantagem,eu qro colocar um limite de lv 400 por exemplo,se alguem poder me ajudar dou rep ++
 
 
local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false
 
function onThingMove(creature, thing, oldpos, oldstackpos)
 
end
 
 
function onCreatureAppear(creature)
 
end
 
 
function onCreatureDisappear(cid, pos)
  if focus == cid then
          selfSay('?????.')
          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)
  msg = string.lower(msg)
 
  if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
 
selfSay('Hello. If you ready I can "Reborn" you.')
focus = cid
talk_start = os.clock()
 
 
  elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
  selfSay('Sorry, ' .. getCreatureName(cid) .. '! Hey!.')
 
  elseif focus == cid then
talk_start = os.clock()
 
if msgcontains(msg, 'reborn') and getPlayerStorageValue(cid,30023) == 4 then
selfSay('Sorry, but you are after reborn.')
focus = 0
talk_start = 0
 
elseif msgcontains(msg, 'reborn') and getPlayerLevel(cid) < 250 and getPlayerStorageValue(cid,30023) ~= 4 then
selfSay('Hehe, I say If you READY. You do not have 250 lvl.')
 
 
elseif msgcontains(msg, 'reborn') then
selfSay('Are you sure?')
                                 talk_state = 2
 
                       elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 20 then
                  doReborn(cid,201,137)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and (getPlayerVocation(cid) == 25 or getPlayerVocation(cid) == 26 or getPlayerVocation(cid) == 37) then
doReborn(cid,214,152)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) >= 103 and getPlayerVocation(cid) <= 104 then
doReborn(cid,286,60)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 58 then
doReborn(cid,247,34)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 71 then
doReborn(cid,258,15)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 75 then
doReborn(cid,263,15)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 274 then
doReborn(cid,275,118)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and (getPlayerVocation(cid) == 76 or getPlayerVocation(cid) == 77) then
doReborn(cid,227,144)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) >= 80 and getPlayerVocation(cid) <= 86 then
selfSay('You cannot reborn in fusion.')
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and (getPlayerVocation(cid) == 78 or getPlayerVocation(cid) == 79) then
doReborn(cid,232,150)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 280 then
doReborn(cid,281,190)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 112 then
doReborn(cid,298,221)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 50 then
doReborn(cid,253,101)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and (getPlayerVocation(cid) == 29 or getPlayerVocation(cid) == 30) then
doReborn(cid,208,148)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 44 then
doReborn(cid,237,173)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and (getPlayerVocation(cid) == 29 or getPlayerVocation(cid) == 30) then
doReborn(cid,208,148)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 292 then
doReborn(cid,293,281)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and (getPlayerVocation(cid) == 34 or getPlayerVocation(cid) == 35 or getPlayerVocation(cid) == 36) then
doReborn(cid,221,162)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 96 then
doReborn(cid,242,178)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and (getPlayerVocation(cid) == 12 or getPlayerVocation(cid) <= 62 and getPlayerVocation(cid) >= 65) then
doReborn(cid,268,184)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 307 then
doReborn(cid,308,326)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 336 then
doReborn(cid,337,336)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 347 then
doReborn(cid,348,144)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 357 then
doReborn(cid,358,162)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 367 then
doReborn(cid,368,373)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 378 then
doReborn(cid,379,367)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 389 then
doReborn(cid,390,378)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 400 then
doReborn(cid,401,390)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 455 then
doReborn(cid,456,466)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 466 then
doReborn(cid,467,453)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 477 then
doReborn(cid,478,359)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 488 then
doReborn(cid,489,418)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 499 then
doReborn(cid,500,42)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 510 then
doReborn(cid,511,489)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 521 then
doReborn(cid,522,472)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 250 and getPlayerVocation(cid) == 532 then
doReborn(cid,533,400)
doPlayerAddHealthMax(cid,20000)
doPlayerAddManaMax(cid,20000)
setPlayerStorageValue(cid,30023,4)
talk_state = 0
 
elseif msgcontains(msg, 'yes') and talk_state == 2 then
selfSay('Sorry, ' .. getCreatureName(cid) .. '! You must revert or transform.')
 
 
elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye.')
focus = 0
talk_start = 0
end
end
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 post
Compartilhar em outros sites

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServScriptingMonsters e NPCs"

Para: "OTServSuporte OTServSuporte de Scripts"

F5MHzGo.gif

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Linus
      Você  pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).
       
       
      Testado em tfs 1.1, Versão 10.77
       
       
       
       
      Vá em data/npc/lib/ crie npc_resets.lua :
       



       
      Você pode editar mexendo aqui. no script acima :
      config = { minlevel = 150, --- Level inical para resetar price = 10000, --- Preço inicial para resetar newlevel = 20, --- Level após reset priceByReset = 0, --- Preço acrescentado por reset percent = 30, ---- Porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total) maxresets = 50, ---- Maximo de resets levelbyreset = 0 --- Quanto de level vai precisar a mais no próximo reset } agora em data/npc/ crie reseter.XML :
       



       
       
       
      Agora em data/npc/scripts crie reseter.lua :
       



       
       
       
      Img : 
       

    • Por gpedro
      Testado: MySQL & SQLite
      Distro: TFS 0.4_SVN & TFS 0.3.6

      MySQL

      ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua
      Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*.
      * adaptação para 0.4
    • Por xWhiteWolf
      Fala galera do TK, hoje vim pra trazer pra vocês um npc criado por mim e pelo Nogard numa madrugada aí para solucionar a dúvida de um cara no suporte. Eu dei uma melhorada no script original, tirei umas coisas repetidas e adicionei novas funções; 
      Você agora pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).
      Testado em TFS 0.3.6, Versão 8.45

      Sem mais delongas, vamos ao script.
      Antes de tudo crie um arquivo chamado reseter.lua na pasta data\npc\scripts\ e coloque isso daqui dentro dele:


      Você pode editar tudo mexendo aqui:
      local config = {
      minlevel = 150, --- level inical para resetar
      price = 10000, --- preço inicial para resetar
      newlevel = 20, --- level após reset
      priceByReset = 0, --- preço acrescentado por reset
      percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
      levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
      }
      Feito isso, crie agora o npc que irá utilizar esse script.. em data\npc crie um arquivo.xml chamado Reseter.xml e coloque isso dentro dele:
      Agora é só colocar o seu npc no mapa pelo mapa editor e curtir

      OBS 1: Se seu server for 8.6 ou maior troque no script.lua as funções db.executeQuery por db.query
      OBS 2: Esse script dava pra ser diminuido ainda mais mas por hora deixa ele assim, se vc tiver alguma proposta melhor por favor poste nos comentários que eu testo a sua versão e edito o tópico se for o caso.
      OBS 3: Não remova os créditos, isso é a coisa mais baixa e suja que alguém pode fazer.. eu scripto pra ajudar a comunidade do Tibia a evoluir e libero 99% doque eu faço, se vocês não removerem os créditos e não postarem em outros fórums sem minha permissão isso pode continuar assim.


      --- EDIT: Coloquei algumas imagens pra vcs verem como fica no server  
       
         
       
         

       



      EDIT: Arrumei o problema de o npc não dar bye automáticamente qnd o player se afasta, bugando em algumas versões e impedindo de conversar com outros npcs. Apenas substituam o arquivo em scripts pela versão atualizada, grato.

      EDIT2: Novos erros arrumados, agora o NPC dá bye automaticamente e não buga qnd te reseta.

      EDIT3: Resolvido bug de dar hi, reset, yes várias vezes e derrubar o servidor (troque tanto o xml qnt o script do npc)
      O script também foi identado.
    • Por Yan Liima
      Limite máximo de players em guild WEBSITE ?

       
      Bom, decidi postar essa modificação que fiz a muito tempo, pois vi que bastante gente queria
      Para Modern AAC e vi que ninguém soube ajudar. Como é algo bem simples e ta parado aqui faz tempo
      Decidi disponibilizar. Não só para Modern, mas para Gesior também!
      Estarei disponibilizando de duas maneiras:
      1º Será um valor configurado no proprio config.php, onde determinará o limite máximo de todas as guild.
      2º A verificação será feita por DB, onde terá um valor padrão para cada guilda criada, podendo ser alterado o valor de membros maximo.
      Ou seja, a guilda número UM pode ter máximo de 50 players, e a guilda número DOIS pode ter o máximo de 100.
      Vocês pode ser criativos e vender items que aumenta o limite ou fazer eventos/sorteios para aumentar...

       
      Enfim, vamos lá...
      Primeira maneira:
      Modern AAC:
      Gesior:
       
      Segunda maneira:
       
      Modern AAC:
      Gesior:
       
      Prontinho galera!!!
      Caso queiram para cmd in-game: LINK
    • Por jeffe000
      Boa noite,
       
      Estou configurando uns ajustes em meu servidor, porem estou com um pequeno problema, quando chego perto de um pokemon selvagem ele começa me atacar, então começo a fujir, e o pokemon vem atras, até ai tudo bem, o problema é que ele não para de seguir nunca, enquanto eu estiver dando target a ele, ele me segue, e n da tp de volta para o respaw dele, mesmo que ele perca o target depois de estar muito distante ele continua no lugar que perdeu o target envés de voltar pro respaw dele...
       
      Alguém sabe onde ou como arrumar isso? E também controlar a distancia máxima em sqm pro pokemon dar target e começar a atacar?
       
      Obrigado e agradeço desde ja
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo