Ir para conteúdo

Snowsz

Héroi
  • Registro em

  • Última visita

Tudo que Snowsz postou

  1. Seguinte, confere isso aqui: http://www.tibiaking.com/forum/topic/50423-86-biohazard-online-server/
  2. Snowsz postou uma resposta no tópico em Eventos de Scripting
    Meu voto, vai no segundo, porque, para mim, ele apresenta uma boa estrutura e configuração, foi bom ter feito uma talkaction, assim podendo informar o player quantos kills ele já tem. Só acho que poderia mudar isso: taskConfig = { price = 25000000, vocation = 9, task = { ["Demon"] = {count = 500, storage = 9812}, ["Hydra"] = {count = 500, storage = 9813}, ["Rat"] = {count = 1000, storage = 9814}, }, storage = 9810, } Para isso: taskConfig = { price = 25000000, vocation = 9, storage = 9810, task = { ["Demon"] = {count = 500, storage = 9812}, ["Hydra"] = {count = 500, storage = 9813}, ["Rat"] = {count = 1000, storage = 9814}, }, } Acho que listas deveriam vir no final de uma configuração. Além disso, acho que só um atendeu o que eu pensei que deveria ter sido feito, o terceiro script, que é setar uma nova vocação de acordo com a vocação atual do jogador, mesmo assim, meu voto continua no segundo.
  3. Só estou tentando dar dicas para que melhore, bom, espero que o Google dê um jeito no Chrome, por que está um lixo... Para melhor visualização coloquei em code e identei aqui: Arquivo .xml <?xml version="1.0"?> <npc name="Dicer" script="data/npc/scripts/dicer.lua" walkinterval="1000" floorchange="0"> <health now="100" max="100"/> <look type="132" head="114" body="0" legs="0" feet="114" addons="3"/> <parameters> <parameter key="message_greet" value="Ola {|PLAYERNAME|}, caso queria tentar a sorte diga {L} ou {Low} para apostar nos numeros {1}, {2} ou {3} ||| {H} ou {High} para apostar nos numeros {4}, {5} ou {6}!" /> </parameters> </npc> Arquivo .lua 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 coins = {[2148] = 1, [2152] = 100, [2160] = 10000} function countMoneyOnPos(pos) local money = 0 for stack = 1, 5 do pos.stackpos = stack local item = getThingFromPos(pos) if item and item.uid > 0 then if coins[item.itemid] then money = money + coins[item.itemid] * item.type end end end return money end local posCoal = {x = 169, y = 51, z = 7} -- POSIÇÃO DO COAL, ONDE O GOLD DEVE ESTAR local posNpc = {x = 169, y = 50, z = 7} -- POSIÇÃO DO NPC local pos = getPosByDir(getThingPos(cid), getCreatureLookDirection(cid), 1) -- NÃO ALTERAR if msgcontains(msg, 'l') or msgcontains(msg, 'L') or msgcontains(msg, 'low') or msgcontains(msg, 'Low') then if countMoneyOnPos(pos) > 0 then if math.random(1, 6) <= 3 then doPlayerAddMoney(cid, countMoneyOnPos(pos)*2) doRemoveItem(getTileItemById(pos, 2148).uid) repeat until not doRemoveItem(getTileItemById(pos, 2148).uid) doRemoveItem(getTileItemById(pos, 2152).uid) repeat until not doRemoveItem(getTileItemById(pos, 2152).uid) doRemoveItem(getTileItemById(pos, 2160).uid) repeat until not doRemoveItem(getTileItemById(pos, 2160).uid) doSendMagicEffect(posNpc, 26) doSendMagicEffect(posNpc, 28) doCreatureSay(getNpcId(), getCreatureName(cid)..' tirou o numero '..math.random(1, 3)..', parabéns!', TALKTYPE_ORANGE_1) else doRemoveItem(getTileItemById(pos, 2148).uid) repeat until not doRemoveItem(getTileItemById(pos, 2148).uid) doRemoveItem(getTileItemById(pos, 2152).uid) repeat until not doRemoveItem(getTileItemById(pos, 2152).uid) doRemoveItem(getTileItemById(pos, 2160).uid) repeat until not doRemoveItem(getTileItemById(pos, 2160).uid) doSendMagicEffect(posNpc, 2) doSendMagicEffect(posNpc, 26) doCreatureSay(getNpcId(), getCreatureName(cid)..' tirou o numero '..math.random(4, 6)..', tente novamente!', TALKTYPE_ORANGE_1) end else doCreatureSay(getNpcId(), getCreatureName(cid)..', coloque uma quantia de gold no recipiente para começar a apostar!', TALKTYPE_ORANGE_1) end elseif msgcontains(msg, 'h') or msgcontains(msg, 'H') or msgcontains(msg, 'high') or msgcontains(msg, 'High') then if countMoneyOnPos(pos) > 0 then if math.random(1, 6) <= 3 then doPlayerAddMoney(cid, countMoneyOnPos(pos)*2) doRemoveItem(getTileItemById(pos, 2148).uid) repeat until not doRemoveItem(getTileItemById(pos, 2148).uid) doRemoveItem(getTileItemById(pos, 2152).uid) repeat until not doRemoveItem(getTileItemById(pos, 2152).uid) doRemoveItem(getTileItemById(pos, 2160).uid) repeat until not doRemoveItem(getTileItemById(pos, 2160).uid) doSendMagicEffect(posNpc, 26) doSendMagicEffect(posNpc, 28) doCreatureSay(getNpcId(), getCreatureName(cid)..' tirou o numero '..math.random(4, 6)..', parabéns!', TALKTYPE_ORANGE_1) else doRemoveItem(getTileItemById(pos, 2148).uid) repeat until not doRemoveItem(getTileItemById(pos, 2148).uid) doRemoveItem(getTileItemById(pos, 2152).uid) repeat until not doRemoveItem(getTileItemById(pos, 2152).uid) doRemoveItem(getTileItemById(pos, 2160).uid) repeat until not doRemoveItem(getTileItemById(pos, 2160).uid) doSendMagicEffect(posNpc, 2) doSendMagicEffect(posNpc, 26) doCreatureSay(getNpcId(), getCreatureName(cid)..' tirou o numero '..math.random(1, 3)..', tente novamente!', TALKTYPE_ORANGE_1) end else doCreatureSay(getNpcId(), getCreatureName(cid)..', coloque uma quantia de gold no recipiente para começar a apostar!', TALKTYPE_ORANGE_1) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Obs: só identei mesmo, não modifiquei nada, nem testei nada.
  4. Em movements/scripts crie um arquivo chamado tilepox.lua e coloque isso dentro: local config = { time = 30, --Tempo em minutos. minHit = -10, --Dano mínimo. maxHit = -120, --Dano máximo. startValue = -5, --Valor do primeiro dano. hitInterval = 3000, --Intervalo entre os danos. storage = 6545 --Storage usada pelo jogador. } local condition = Condition(CONDITION_POISON) condition:setParameter(CONDITION_PARAM_TICKS, config.time*1000*60) condition:setParameter(CONDITION_PARAM_DELAYED, true) condition:setParameter(CONDITION_PARAM_MINVALUE, config.minHit) condition:setParameter(CONDITION_PARAM_MAXVALUE, config.maxHit) condition:setParameter(CONDITION_PARAM_STARTVALUE, config.startValue) condition:setParameter(CONDITION_PARAM_TICKINTERVAL, config.hitInterval) condition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) function onStepIn(player, item, position, lastPosition, fromPosition, toPosition, actor) if not player:isPlayer() then return true end player:addCondition(condition) player:setStorageValue(config.storage, 1) addEvent(function() if player:isPlayer() then player:addHealth(-player:getHealth()) end end, config.time*1000*60) return true end Tag do movements.xml se quiser com Actionid: <movevent event="StepIn" actionid="ID DA ACTIONID AQUI" script="tilepox.lua"/> Tag do movements.xml se quiser com Uniqueid: <movevent event="StepIn" uniqueid="ID DO UNIQUEID AQUI" script="tilepox.lua"/> Em creaturescripts/scripts crie um arquivo chamado tilepox.lua e coloque isso dentro: local storage = 6545 --Storage usada pelo jogador, a storage deve ser a mesma que usada no tile de POX. function onLogin(player) if player:getStorageValue(storage) >= 1 then player:setStorageValue(storage, 0) end return true end function onLogout(player) if player:getStorageValue(storage) >= 1 then player:sendCancelMessage("You cannot logout, while is poisoned.") return false end return true end Tag creaturescripts: <event type="login" name="PoxLogin" script="tilepox.lua"/> <event type="logout" name="PoxLogout" script="tilepox.lua"/> Obs: não testei.
  5. Por favor, poste seus códigos formatados com "code": assim. E, se puder identar também seus códigos, seria de grande ajuda.
  6. Qual a exp rate?
  7. A flag com final "ShowLevel" se não me engano não existe mesmo, o certo é a com final "HideLevel", setando ela como false ou 0, o problema deve ser resolvido.
  8. Isso deve ser no client, vá em Console->Show level in messages (é algo assim). Caso não for no client, procure no config.lua se tem alguma variável sobre isso.
  9. 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: "OTServ → Suporte OTServ → Suporte de Scripts" Para: "OTServ → Suporte OTServ → Suporte de Servidores Derivados"
  10. local limite = 2500 -- limite não passar de 1000 --{nova velocidade, tempo que durará em segundos} local speedCfg = {2500, 3} local food = {[2672] = {150, "Glup Glup"}} function onUse(cid, item, fromPosition, itemEx, toPosition) if exhaustion.check(cid, 23007) == false then exhaustion.set(cid, 23007, 5) else return doPlayerSendCancel(cid, "Tempo de espera: " ..exhaustion.get(cid, 23007).."") end if food[item.itemid] ~= nil then if (getPlayerFood(cid) + food[item.itemid][1]) >= limite then doPlayerSendCancel(cid, "You are full.") else doPlayerFeed(cid, food) local speed = getCreatureSpeed(cid) doChangeSpeed(cid, -speed) doChangeSpeed(cid, speedCfg[1]) addEvent(function(cid) if isCreature(cid) then doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, speed) end end, speedCfg[2]*1000) doSendAnimatedText(getCreaturePosition(cid), food[item.itemid][2], TEXTCOLOR_WHITE) doSendMagicEffect(getCreaturePosition(cid), 25) doRemoveItem(item.uid, 1) doSendAnimatedText(getCreaturePosition(cid), "REDBUUUULL", TEXTCOLOR_BLUE) end end return true end
  11. Snowsz postou uma resposta no tópico em Eventos de Scripting
    Bom, fiz como o luan, peguei o tema de uma área de suporte: NPC de Promotion que funciona assim: • O player vai no NPC de Promotion que promove por task, fala com ele, dai ele vai cobrar 25kk para dar a task ao player. • Após ele ter pago os 25kk, ele receberá a seguinte missão, exemplo matar 500 demon, 500 hydra, a cada criatura morta vai mostrando por exemplo "Você matou 10/500 demons". • Após a task ser completada, ele será promovido automaticamente ou indo ao NPC, a vocação X, com a seguinte mensagem "Parabéns, você agora é um |VOCATIONNAME|." Bom, de acordo com as regras, então, todos tem 72horas para enviar o script para: [email protected] (scripts fora do tema serão desclassificados e cada membro só pode enviar um script). TFS 0.4
  12. 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: "OTServ → Suporte OTServ → Suporte de Scripts" Para: "Bots para Tibia → Suporte Bots"
  13. 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: "OTServ → Suporte OTServ → Suporte de Scripts" Para: "OTServ → Suporte OTServ → Suporte de WebSites"
  14. Snowsz postou uma resposta no tópico em Outros Bots
    Sugiro gerar um nome aleatório para o bot.
  15. Você usando errado é claro que não mostra. local fromPos = {x = 10, y = 20, z = 7} local toPos = {x = 30, y = 60, z = 7} function onThink(interval) for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = fromPos.z, toPos.z do local pos = {x = x, y = y, z = z} local cre = getTopCreature(pos).uid if isMonster(cre) then doSendAnimatedText(pos, "Vivo", 50) elseif cre <= 0 then doSendAnimatedText(pos, "Morto", 50) end end end end return true end
  16. Obrigado kk', não tinha percebido: local limite = 2500 -- limite não passar de 1000 --{nova velocidade, tempo que durará em segundos} local speedCfg = {2500, 3} local food = {[2672] = {150, "Glup Glup"}} function onUse(cid, item, fromPosition, itemEx, toPosition) if exhaustion.check(cid, 23007) == false then exhaustion.set(cid, 23007, 5) else return doPlayerSendCancel(cid, "Tempo de espera: " ..exhaustion.get(cid, 23007).."") end if food[item.itemid] ~= nil then if (getPlayerFood(cid) + food[item.itemid][1]) >= limite then doPlayerSendCancel(cid, "You are full.") else doPlayerFeed(cid, food) local speed = getCreatureSpeed(cid) doChangeSpeed(cid, -speed) doChangeSpeed(cid, speedCfg[1]) addEvent(function() if isCreature(cid) then doChangeSpeed(cid, speed) end end, speedCfg[2]*1000) doSendAnimatedText(getCreaturePosition(cid), food[item.itemid][2], TEXTCOLOR_WHITE) doSendMagicEffect(getCreaturePosition(cid), 25) doRemoveItem(item.uid, 1) doSendAnimatedText(getCreaturePosition(cid), "REDBUUUULL", TEXTCOLOR_BLUE) end return true end return true end
  17. Snowsz postou uma resposta no tópico em Suporte Tibia OTServer
    Realmente pode ser isso, então, aqui está: local voc = { [297] = 180, [298] = 180, [299] = 180, } function sendEffect(cid) if isPlayer(cid) and voc[getPlayerVocation(cid)] then doSendMagicEffect(getThingPos(cid), voc[getPlayerVocation(cid)]) addEvent(sendEffect, 3 * 1000, cid) end return true end function onLogin(cid) return sendEffect(cid) end
  18. Snowsz postou uma resposta no tópico em Suporte Tibia OTServer
    Foi um erro bobo, esse aqui deve funcionar: local voc = { [297] = 180, [298] = 180, [299] = 180, } function sendEffect(cid) if isPlayer(cid) and voc[getPlayerVocation(cid)] then doSendMagicEffect(getThingPos(cid), voc[getPlayerVocation(cid)]) addEvent(sendEffect, 3 * 1000, cid) end end function onLogin(cid) return sendEffect(cid) end [id da vocação] = efeito que ela vai soltar,
  19. Snowsz postou uma resposta no tópico em Suporte Tibia OTServer
    local voc = { [297] = 180, [298] = 180, [299] = 180, } function sendEffect(cid) if not isPlayer(cid) then return true end for _, pid in ipairs(voc) do if voc[getPlayerVocation(cid)] then doSendMagicEffect(getThingPos(pid), voc[getPlayerVocation(cid)]) addEvent(sendEffect, 3 * 1000, pid) end end end function onLogin(cid) return sendEffect(cid) end [id da vocação] = efeito que ela vai soltar,
  20. http://www.tibiaking.com/forum/forum/220-aulas-de-scripting/
  21. local limite = 2500 -- limite não passar de 1000 --{nova velocidade, tempo que durará em segundos} local speedCfg = {2500, 3} local food = {[2672] = {150, "Glup Glup"}} function onUse(cid, item, fromPosition, itemEx, toPosition) if exhaustion.check(cid, 23007) == false then exhaustion.set(cid, 23007, 5) else return doPlayerSendCancel(cid, "Tempo de espera: " ..exhaustion.get(cid, 23007).."") end if food[item.itemid] ~= nil then if (getPlayerFood(cid) + food[item.itemid][1]) >= limite then doPlayerSendCancel(cid, "You are full.") else doPlayerFeed(cid, food) local speed = getCreatureSpeed(cid) doChangeSpeed(cid, -speed) doChangeSpeed(cid, speedCfg[1]) addEvent(function() if isCreature(cid) doChangeSpeed(cid, speed) end end, speedCfg[2]*1000) doSendAnimatedText(getCreaturePosition(cid), food[item.itemid][2], TEXTCOLOR_WHITE) doSendMagicEffect(getCreaturePosition(cid), 25) doRemoveItem(item.uid, 1) doSendAnimatedText(getCreaturePosition(cid), "REDBUUUULL", TEXTCOLOR_BLUE) end return true end return true end
  22. local storage = 5465 function onLogin(cid) if getPlayerStorageValue(cid, storage) <= 0 then doPlayerAddAddons(cid, 1) doPlayerAddAddons(cid, 2) setPlayerStorageValue(cid, storage, 1) end return true end
  23. Clique em fechar novamente.
  24. Aqui, um TFS 0.4, 8.60. https://www.dropbox.com/s/8sm5i6kdhw7n1ei/forgottenserver-trunk.r3884.tar.gz?dl=0

Informação Importante

Confirmação de Termo