Ir para conteúdo

Vodkart

Herói
  • Total de itens

    3406
  • Registro em

  • Última visita

  • Dias Ganhos

    113

Tudo que Vodkart postou

  1. rapaz, amanha eu dou uma olhada, mas oq tem é na seção de tutorial mesmo, porém todos desatualizados. amanha eu procuro pq to indo dormir agr abraços
  2. function onUse(cid, item, frompos, item2, topos) if item.itemid == 2006 and item2.itemid == 2495 then if getCald(cid) <= 0 then return doPlayerSendCancel(cid, "Voce nao tem carga o suficiente!") end removeCald(cid, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"parabéns!") doSendMagicEffect(getPlayerPosition(cid), 27) end return true end
  3. if item.itemid == XXXX and item2.itemid == YYYY then doTransformItem(item2.uid, ID) -- ID É O ITEM DO ITEM QUE VAI SE TRANSFORMA end
  4. Vodkart

    Dúvidas Com Scripts

    monster = {name = "Rat"} for _, var in pairs(monster) do if var == "Rat" then print("Cave Rate") end end ou a tabela sem o index 'name': monster = {"Rat","Demon","Hydra"} for i = 1, #monster do if monster[i] == "Rat" then print("Cave Rate") end end
  5. acho que teria que editar as source. Talvez sim, acho que já existe diversos desse item.
  6. Versão testada: 9.1 Descrição: É um npc simples que tem como função alugar determinadas montarias por certo tempo, dias para ser exato. Em Mods: AluguelMount.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="Aluguel Mounts" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="aluguel_func"><![CDATA[ Aluguel_mounts = { ["war horse"] = {price = 10000, days = 2, mountid = 17, level = 10, premium = false, storage = 500561}, ["fire war horse"] = {price = 30000, days = 1, mountid = 23, level = 20, premium = false, storage = 500562}, ["sandstone scorpion"] = {price = 50000, days = 1, mountid = 21, level = 30, premium = true, storage = 500563} } function doRemovePlayerMount(cid, mountId) doPlayerRemoveMount(cid, mountId) return doCreatureChangeOutfit(cid,{lookType = getCreatureOutfit(cid).lookType, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons}) end function CheckRentMount(cid) for var, ret in pairs(Aluguel_mounts) do if canPlayerRideMount(cid, ret.mountid) and getPlayerStorageValue(cid, ret.storage) ~= -1 and getPlayerStorageValue(cid, ret.storage) <= os.time() then doRemovePlayerMount(cid, ret.mountid) doPlayerSendTextMessage(cid,18,"O tempo da sua montaria "..var.." acabou, para adquirir ela novamente volte ao npc.") end end end ]]></config> <globalevent name="CheckMount" interval="60000" event="script"><![CDATA[ domodlib('aluguel_func') function onThink(interval, lastExecution) local on = getPlayersOnline() if #on > 0 then for i = 1, #on do CheckRentMount(on[i]) end end return true end]]></globalevent> </mod> obs: Checar duas coisas em mods, primeira: Se a função que checa se tem a mount é 'canPlayerRideMount' ou 'getPlayerMount', caso for 'getPlayerMount' trocar: canPlayerRideMount(cid, ret.mountid) por: getPlayerMount(cid, ret.mountid) segunda: o intervalo de tempo na tag do globalevents, no meu server era em mile segundos: interval="60000" -- caso o seu não seja em mile segundos troque 60000 por 60. Data/Npc Peach.xml <?xml version="1.0"?> <npc name="Peach" script="data/npc/scripts/aluguelmounts.lua" walkinterval="50000" floorchange="0"> <health now="1000" max="1000"/> <look type="130" head="0" body="114" legs="114" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. You want to {rent} a {mount}?"/> </parameters> </npc> Data/Npc/Script aluguelmounts.lua domodlib('aluguel_func') 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) 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 local msg = string.lower(msg) if isInArray({'aluguel','alugar', 'rent', 'mounts', 'mount'}, msg) then npcHandler:say("Você pode comprar {war horse}, {fire war horse} e {sandstone scorpion}!", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if Aluguel_mounts[msg] then if Aluguel_mounts[msg].premium == true and not isPremium(cid) then npcHandler:say('Você precisa ser premium para alugar essa montaria.', cid) return true elseif getPlayerLevel(cid) < Aluguel_mounts[msg].level then npcHandler:say('você precisa ter level ' .. Aluguel_mounts[msg].level .. ' ou mais para alugar essa montaria.', cid) return true elseif getPlayerStorageValue(cid, Aluguel_mounts[msg].storage) >= os.time() then npcHandler:say('você já alugou essa montaria!', cid) return true end name,price,stor,days,mountid = msg,Aluguel_mounts[msg].price,Aluguel_mounts[msg].storage,Aluguel_mounts[msg].days,Aluguel_mounts[msg].mountid npcHandler:say('Você quer alugar a montaria '..name..' por '..days..' dia'..(days > 1 and 's' or '')..' no preço de '..price..' gps? {yes}', cid) talkState[talkUser] = 2 else npcHandler:say('Desculpe, eu não vendo essa montaria.', cid) end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if doPlayerRemoveMoney(cid, price) then doPlayerAddMount(cid, mountid) setPlayerStorageValue(cid, stor, os.time()+days*86400) npcHandler:say('Aqui está sua montaria '..name..', ela irá durar até '..os.date("%d %B %Y %X", getPlayerStorageValue(cid,stor))..'.', cid) else npcHandler:say('você não tem dinheiro suficiente para alugar a montaria!', cid) talkState[talkUser] = 0 end elseif msg == "no" then selfSay("Then not", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configuração: Em mods tem uma tabela chamada 'Aluguel_mounts'
  7. Vodkart

    Dúvidas Com Scripts

    acho que mudar diretamente na tabela não tem como, se for usado em um script dá para apenas substituir o valor da tabela temporariamente (geralmente no tempo de sua execução)
  8. Em um otserv é possível acabar com os bots sim, mas acabando com os bots acaba com a diversão do server e resultando na falência do mesmo, ou você acha que a maioria dos jogadores que jogam otserv vão para que? só para se divertir e brincar, se fosse para levar algo a sério que joguem o global.
  9. Vodkart

    Npc De Recompensa

    reportado para moverem
  10. n mexam com ele, n eh td mundo que tem a Pulseira Camarote Brahma e Boate.
  11. Vodkart

    Npc De Recompensa

    @nathan blz, to terminando de assistir o filme e já entro @kung thiagoredlife@hotmail.com
  12. Vodkart

    Npc De Recompensa

    hj é domingo > tenho tempo e lua não tem mistério, se aprende fácil, basta querer aprender tbm
  13. Vodkart

    Npc

    sim, foi oq eu falei trocar o nome da tabble vlw topico reportado
  14. Vodkart

    Npc De Recompensa

    Não precisa, é só um item então de boa, vou almoçar e depois entrego vlw ------------------------------------------------- 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) 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 local msg = string.lower(msg) tabble = { [50] = {item = {2173,1}, storage = 201320}, [100] = {item = {2160,5}, storage = 201321}, [150] = {item = {2123,1}, storage = 201322}, [200] = {item = {2466,1}, storage = 201320} } if isInArray({"recompensa","reward", "receber", "level"}, msg) then npcHandler:say("Olá guerreiro, eu posso entregar recompensas para o level {50}, {100}, {150} e {200}! qual dos leveis você deseja receber a recompensa?", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if tabble[getNumber(msg)] then if getPlayerStorageValue(cid, tabble[getNumber(msg)].storage) <= 0 then if getPlayerLevel(cid) >= getNumber(msg) then doPlayerAddItem(cid,tabble[getNumber(msg)].item[1],tabble[getNumber(msg)].item[2]) setPlayerStorageValue(cid, tabble[getNumber(msg)].storage, 1) npcHandler:say("Parabéns! Você recebeu "..tabble[getNumber(msg)].item[2].." "..getItemNameById(tabble[getNumber(msg)].item[1]), cid) else npcHandler:say("Desculpe, mas você não tem level para receber essa recompensa!", cid) end else npcHandler:say("Desculpe, mas você já recebeu a sua recompensa!", cid) end else npcHandler:say("Desculpe, mas não tenho recompensa para esse level!", cid) end elseif isInArray({"no","nao"}, msg) then selfSay("Then not.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) function getNumber(txt) x = string.gsub(txt,"%a","") x = tonumber(x) if x ~= nill and x > 0 then return x else return 0 end end
  15. Vodkart

    Npc De Recompensa

    outra coisa, serão vários items? exemplo: 2 fire sword, 3 crown legs e 2 aol ou só um item e dinheiro? pq se for mais de um item eu coloco uma função ;x obs: vc usa aquele npc ainda do simple task 2.0? pq lá tem as funções e tal... responde ai
  16. tenta usar assim: function onLogin(cid) registerCreatureEvent(cid, "EffectOutLogin") registerCreatureEvent(cid, "OutfitEffects") return doCreatureChangeOutfit(cid,{lookType = getCreatureOutfit(cid).lookType, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons}) end local events = {} function onOutfit(cid, old, current) local effect = { [136] = 3, [128] = 3, -- citizen [270] = 27,[273] = 27, -- jester [156] = 61,[152] = 61, -- assassin [147] = 44,[143] = 44, -- barbarian [148] = 45,[144] = 45, -- druid [157] = 68,[153] = 68, -- beggar [149] = 36,[145] = 36, -- wizard [279] = 17,[278] = 17, -- brotherwood [137] = 39,[129] = 39, -- hunter [141] = 66,[133] = 66, -- summoner [142] = 34,[134] = 34, -- warrior [155] = 31,[151] = 31, -- pirate [158] = 46,[154] = 46, -- shaman [288] = 6,[289] = 6 -- demonhunter } local o,c= effect[old.lookType],effect[current.lookType] if getPlayerAccess(cid) > 2 then return true elseif (not o or not c or old.lookAddons == 3 and o) then stopEvent(events[getPlayerGUID(cid)]) end if current.lookAddons == 3 and c then function WalkEffect(cid, c, pos) if not isCreature(cid) then return LUA_ERROR end if c then p = getThingPos(cid) local x = {[0] = {x=p.x, y=p.y+1, z=p.z},[1] = {x=p.x-1, y=p.y, z=p.z},[2] = {x=p.x, y=p.y-1, z=p.z},[3] = {x=p.x+1, y=p.y, z=p.z}} if p.x ~= pos.x or p.y ~= pos.y or p.z ~= pos.z then doSendMagicEffect(x[getCreatureLookDirection(cid)], c) end events[getPlayerGUID(cid)] = addEvent(WalkEffect, 100, cid, c, p) end return true end WalkEffect(cid, c, {x=0, y=0, z=0}) end return true end
  17. Vodkart

    Npc

    Mais de um npc para a mesma função? porque se você for criar um npc novo com monstros diferentes e tal, teria que criar uma tabela diferente e modificar o nome da tabble no npc tbm, ai pede para alguém mais experiente fazer pra vc
  18. Vodkart

    Retirado

    continua sendo um piadista
  19. Vodkart

    Npc De Recompensa

    Ah, agora sim tia se ngm responder, qndo tiver um tempinho eu entrego o npc. abraçs
  20. Vodkart

    Npc De Recompensa

    wtf? quero saber o seguinte, ele só vai receber o prêmio no level 50 por exemplo, e depois se ele atingir o level 100 recebe mais alguma coisa? ou só vai ser pra um certo nível mesmo...
  21. eu fiz um por npc, vou te passar por msn, é esse o seu: jhonw_13@hotmail.com
  22. vc deletou o buypremium_command.xml na pasta mods e deu /reload mods e /reload talkactions?
  23. Vodkart

    Npc De Recompensa

    especifique melhor seu pedido, serão quais leveis por exemplo? serão items? ou só exp? detalhes.
  24. Vodkart

    Npc

    pqp velho, que script chato de fazer, ele não é difícil, só é bem chatinho msm ¬¬ Mods: <?xml version="1.0" encoding="UTF-8"?> <mod name="Kung Task" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="kung_func"><![CDATA[ kungtask = { ["dragon"] = {storages = {620001,630001}, count = 1500,exp = 1000}, ["dragon lord"] = {storages = {620002,630002}, count = 600, exp = 2000}, ["hydra"] = {storages = {620003,630003}, count = 240, exp = 3000}, ["frost dragon"] = {storages = {620004,630004} ,count = 600, exp = 4000}, ["dragon guardian"] = {storages = {620005,630005} ,count = 1000, exp = 5000}, ["demondras"] = {storages = {620006,630006} ,count = 600, exp = 6000}, ["thunder dragon"] = {storages = {620007,630007} ,count = 1000, exp = 7000} } function ZerarTask(cid) for var, ret in pairs(kungtask) do if getPlayerStorageValue(cid, ret.storages[2]) ~= -1 and getPlayerStorageValue(cid,ret.storages[1]) <= os.time() then setPlayerStorageValue(cid, ret.storages[2], -1) setPlayerStorageValue(cid, ret.storages[1], -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You not have completed the task of "..var.." in the request time and it was zeroed") end end end ]]></config> <event type="login" name="KungRegister" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "KillingKung") return true end]]></event> <event type="kill" name="KillingKung" event="script"><![CDATA[ domodlib('kung_func') function onKill(cid, target) if(isMonster(target) == TRUE) then local n = getCreatureName(target) local name_monster = kungtask[string.lower(n)] if(name_monster and getPlayerStorageValue(cid,name_monster.storages[1]) >= os.time()) then local contagem = getPlayerStorageValue(cid, name_monster.storages[2]) if contagem > name_monster.count then return true end setPlayerStorageValue(cid, name_monster.storages[2], contagem+1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, ""..((contagem+1) < name_monster.count and "["..n.." Task] "..(contagem+1).."/"..name_monster.count or "["..n.." Task] Finaliza")..".") end end return true end]]></event> <globalevent name="ZerarTask" interval="60" event="script"><![CDATA[ domodlib('kung_func') function onThink(interval, lastExecution) local on = getPlayersOnline() if #on > 0 then for i = 1, #on do ZerarTask(on[i]) end end return true end]]></globalevent> </mod> Npc: domodlib('kung_func') 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) 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 local msg = string.lower(msg) local days = 7 if isInArray({"task","mission", "missão"}, msg) then npcHandler:say("Me diga o nome do monstro que você deseja fazer a task!", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if kungtask[msg] then if getPlayerStorageValue(cid, kungtask[msg].storages[1]) == -1 then stor,name,count,stor2 = kungtask[msg].storages[1],msg,kungtask[msg].count,kungtask[msg].storages[2] npcHandler:say("Ótimo! Você precisa matar pelo menos "..count.." "..name.." em um prazo de "..days.." dias para te dar recompensa. Aceita? {yes}", cid) talkState[talkUser] = 2 else npcHandler:say("Você já está participando desta task.", cid) talkState[talkUser] = 1 end else npcHandler:say("digite o nome certo do monstro.", cid) talkState[talkUser] = 1 end elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 2) then setPlayerStorageValue(cid, stor, os.time()+days*86400) setPlayerStorageValue(cid, stor2, 0) npcHandler:say("Você já pode começar a matar "..name..". Volte aqui quando matar "..count.." "..name.." para ser recompensado. O prazo é até "..os.date("%d %B %Y %X", getPlayerStorageValue(cid,stor))..".", cid) talkState[talkUser] = 0 elseif isInArray({"entregar","receber", "recompensa"}, msg) then for var, ret in pairs(kungtask) do if getPlayerStorageValue(cid,ret.storages[1]) >= os.time() and getPlayerStorageValue(cid,ret.storages[2]) >= ret.count then doPlayerAddExp(cid, ret.exp) setPlayerStorageValue(cid, ret.storages[2], -1) setPlayerStorageValue(cid, ret.storages[1], -1) return npcHandler:say("Obrigado! você recebeu "..ret.exp.." de experience por ter terminado a task do "..var, cid) else return npcHandler:say("Desculpe, mas você não terminou nenhuma missão.", cid) end end elseif isInArray({"no","nao"}, msg) then selfSay("tudo bem então.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) no npc vc fala: hi task NOME DA TASK e pra receber a recompensa vc fala hi entregar e o npc vai entregar a recompensa da task que ele TERMINOU para o player
  • Quem Está Navegando   0 membros estão online

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