Ir para conteúdo

Demonbholder

Infante
  • Total de itens

    1551
  • Registro em

  • Última visita

  • Dias Ganhos

    24

Tudo que Demonbholder postou

  1. Certo, vamos lá! Em data/npcs, crie um arquivo .xml e cole isto nele: <?xml version="1.0" encoding="UTF-8"?> <npc name="NomeDoNpc" script="data/npc/scripts/NomeDoArquivo.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look typeex="1448" corpse="3128"/> </npc> Edite o nome, o look type e o local onde ficará o script. Não edite o walkinterval. Agora vá em data/npcs/scripts, crie um arquivo .lua e cole isto nele: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) local time = 3600*24 -- tempo entre uma cura e outra if msg == "hi" then if getCreatureCondition(cid, CONDITION_FIRE) or getCreatureCondition(cid, CONDITION_ENERGY) or getCreatureCondition(cid, CONDITION_POISON) then if getPlayerStorageValue(cid, 38000) - os.time() <= 0 then doCreatureAddHealth(cid, 65) selfSay("You may get better now.", cid) setPlayerStorageValue(cid, 38000, time + os.time()) else selfSay("I already helped you today, now go away!", cid) end else selfSay("Greetings tibian!", cid) end end end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Pronto, o npc está feito! Agora, pelo map editor, coloque um actionid nos tiles da ponte. Feito isso, vá em data/movevents/scripts, crie um arquivo .lua e cole isto nele: function onStepIn(cid, item, position, fromPosition) local npc = {x=158, y=52, z=7, stackpos=253} -- posição do npc, não mude o stackpos if isPlayer(cid) then if getPlayerLevel(cid) == 1 then doCreatureSay(getThingFromPos(npc).uid, "You can not continue.", 1) doTeleportThing(cid, fromPosition) end end return TRUE end Por último, vá em data/movevents, abra o arquivo movements.xml e cole esta tag nele: <movevent type="StepIn" actionid="37804" event="script" value="NomeDoArquivo.lua"/> Em actionid você coloca o mesmo actionid que colocou pelo mapeditor, e em value o nome do script que você colou o script acima. É isso, testei aqui e funcionou, aguardando confirmação. Até.
  2. O nome do arquivo deve ser buyaol e o formato lua, é claro.
  3. Muito bom tutorial! Esta de parabéns, aprovado! Continue ajudando a comunidade, até mais.
  4. Bom, espero que ajude quem tiver este bug. Tutorial aprovado.
  5. Assim como muitos membros já concordaram comigo, seu tutorial esta muito simples. Tens um prazo de 5 dias para melhorá-lo. Aguardando, até mais.
  6. Me parece mais um utilitário de OtServer do que um tutorial, não acha? Explique melhor para que serve o utilitário. Aguardando resposta, até mais. Scan do arquivo: Scan MD5: 6c44296e594510e2e8e31222bc4af40c Arquivo limpo. :button_ok:
  7. Nada mais a acrescentar, esperando que melhore o tutorial; tens o prazo de 5 dias para tanto.
  8. Bom tutorial, esta explicando muito bem, inclusive pode vir a me ajudar. Nada mais a fazer do que aprovar! Até a próxima.
  9. KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK ri de mais
  10. Ótimo, sempre contando com as sugestões dos membros para criar um ambiente ainda mais agradável para estes. Nada mais a acrescentar, estamos aguardando.
  11. Isbigo e Eskylo Não serão admitidas discussões e brigas no fórum. Esta seção, onde o membro voluntariamente ajuda o outro, é designada para pedidos de scripts, logo, não há motivos para discussões triviais. Tópico movido para Pedidos Atendidos.
  12. Mais atenção da próxima vez TeamSky, a seção correta para este tipo de pedido é Pedidos de Scripts. Tópico movido.
  13. Estranho, era pra ter ido. Esse é o sistema vip do vodkart certo? Ele mesmo fez um script para tile vip: -- Script Vip Sytem 1.0 -- function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "Você não e vip ,fale com Administrador do Server.", msgWelcome = "Seja Bem Vindo a Area vip." } if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end Fonte: http://www.xtibia.com/forum/topic/133661-moveevent-action-perfect-vip-system-20/ Até.
  14. function onStepIn(cid, item, pos) teleport1 ={x=160, y=54, z=7} if isPlayer(cid) then if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doTeleportThing(cid, teleport1) end end return TRUE end
  15. Demonbholder

    Ajuda Com Script

    function onSay(cid, words, param) local players = getPlayersOnline() local tempo = 60*3 if getPlayerStorageValue(cid, 15238) - os.time() < 1 then setPlayerStorageValue(cid, 15238, tempo + os.time()) doPlayerSendTextMessage(cid, 4, "Você pediu ajuda agora aguarde alguem vir te ajudar.") for _, pid in ipairs(players) do if getPlayerAccess(pid) > 1 then doPlayerSendChannelMessage(pid, "Help", "O jogador "..getCreatureName(cid).." esta pedindo ajuda.Vá até ele /ir "..getCreatureName(cid).."", TALKTYPE_CHANNEL_Y, 2) end end return TRUE end return doPlayerSendCancel(cid, "Você só pode usar este comando em "..getPlayerStorageValue(cid, 15238) - os.time().." segundos.") end Só tirar os return.
  16. Me parece mais um tutorial de mapping. Faltou explicar o que colocar em Name/Id e Temple Position, pois certas pessoas podem não saber. As imagens estão um pouco desorganizadas, por exemplo, 1 imagem esta ocupando o dobro do espaço dela. Também tente melhorar as explicações, se você for perceber, existem 3 frases de explicações em todo seu tutorial. Ainda sim vou pedir a aprovação do seu tutorial, mas melhore isso tudo.
  17. Faaala galera! Tudo tranquilo? Estreando a seção de bibliotecas, vamos a uma função que eu criei hoje a tarde. Como funciona: O parâmetro da função deve obrigatoriamente ser uma tabela, uma array. Exemplo: doOrderString({'demon', 'casa', 'xtibia'}) A função vai ordenar essas strings, e retorna uma tabela assim: {'casa', 'demon', 'xtibia'}. Função function doOrderString(tab) local t = {} local a = {} local k = {} local b = {} if type(tab) ~= "table" then return error("Param should be a table") end for x, y in pairs(tab) do if type(y) == "string" then table.insert(t, string.lower(y)) end end if #t == 0 then return error("No strings in table") end for i = 1, #t do str = nil for c, d in pairs(t) do stats = FALSE for s = 1, #d do if str == nil or string.byte(str, s, s) ~= nil then if str == nil or (string.byte(d, s, s) < string.byte(str, s, s) and stats == FALSE) then str = d end if string.byte(d, s, s) ~= string.byte(str, s, s) then stats = TRUE end if s == #d and #str > #d then str = d end end end end table.insert(a, str) table.remove(t, table.find(t, str)) end for p, w in pairs(tab) do if type(w) == "string" then for e = 1, #w do table.insert(b, w) table.insert(b, table.find(a, string.lower(w))) end end end for d = 1, #a do table.insert(k, b[table.find(b, d) -1]) end return k end Caso, você não possua a função table.find, eu a criei, ai esta ela: table.find function table.find(t, val) ret = nil for pos, mat in pairs(t) do if mat == val then ret = pos break end end return ret end É isso, deve ter alguns erros na função e foi bem difícil criá-la. Até mais.
  18. Não é esse que tu quer? http://www.xtibia.com/forum/topic/134875-matar-monstro-abrir-tp-remover-parede-ganhar-storage/
  19. function onCombat(cid, target) if getCreatureName(target) == 'demon' then if getPlayerStorageValue(cid, 36400) == 1 then return TRUE end end return FALSE end Edita o storage e o valor dele, se necessário.
  20. KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
  21. Ótimas mudanças, principalmente por parte de scripts, duas subseções realmente necessárias, ajudará muito a organizar o fórum. Até mais.
  • Quem Está Navegando   0 membros estão online

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