Ir para conteúdo

DukeeH

Membro
  • Registro em

  • Última visita

Tudo que DukeeH postou

  1. Teria que usar um cliente custom, e trocar a spirte da agua pela que quer, é possivel... Só não é tão simples, e os jogadores só poderiam usar o seu cliente.
  2. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    google: how to not count x logged players compila de novo, é bem improvavel que volte a acontecer. edit. não vi que o cara ressuscitou.
  3. Provavelmente seu site está ligado no mysql e você esta usando uma database sqlite no servidor.
  4. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    é 0.4, usa o de cima.
  5. Mostra a parte do config lua que fala da database.
  6. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Apaga tudo relacionado ao vip system e usa outro que seja para a conta. O primeiro é pra qualquer versão abaixo do 1.0 e o outro é pra 1.2.
  7. movements.xml <movevent type="Equip" itemid="ID" slot="feet" event="function" value="onEquipItem"/> <movevent type="DeEquip" itemid="ID" slot="feet" event="function" value="onDeEquipItem"/> Adicione o item com seu id no movements.xml com a tag onequip e deequip se não estiver la, e caso esteja adicione slot="onde vai" sendo os possiveis slots: feet = pé, necklace = colar, ring = anél, head = cabeça, armor = armor, shield = escudo.
  8. Zoom, a idéia é muito boa, seria possivel adicionar chance individual para os itens?
  9. Nossa, dupliquei uma parte do script quando colei. Desculpa. local tempo = 60 -- tempo em segundos. local effect = {183} -- effect no player, caso queira apenas 1, basta remover os outros numeros. local ml = 150 -- quantos ira aumentar o skill de ML local skillfist = 50 -- quantos ira aumentar o skill de Fist local skillsword = 50 -- quantos ira aumentar o skill de Sword local skillaxe = 50 -- quantos ira aumentar o skill de Axe local skillclub = 50 -- quantos ira aumentar o skill de Club local skilldistance = 50 -- quantos ira aumentar o skill de Distance local skillshield = 50 -- quantos ira aumentar o skill de Shield local health = 100 -- A cada 1 segundo quantos aumentar de vida local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_SPEED, 300) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) function magicEffect2244(tempo2,tempo3,cid) if (isCreature(cid)) then if getPlayerStorageValue(cid, 89745) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then for i=1, #effect do local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} doSendMagicEffect(position, effect) end end end end function onCastSpell(cid, var) if getPlayerStorageValue(cid, 89745) < 6 then doPlayerSendCancel(cid, "This spell can only be used by akatsuki.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(magicEffect2244, tempo2, tempo2, tempo*1000, cid) tempo2 = tempo2 + 300 end doCreatureSay(cid, "Akatsuki Mode", TALKTYPE_MONSTER) doSendMagicEffect(getCreaturePosition(cid), 110) else doPlayerSendCancel(cid, "Sorry, you are already transformed.") end end
  10. local tempo = 60 -- tempo em segundos. local effect = {183} -- effect no player, caso queira apenas 1, basta remover os outros numeros. local ml = 150 -- quantos ira aumentar o skill de ML local skillfist = 50 -- quantos ira aumentar o skill de Fist local skillsword = 50 -- quantos ira aumentar o skill de Sword local skillaxe = 50 -- quantos ira aumentar o skill de Axe local skillclub = 50 -- quantos ira aumentar o skill de Club local skilldistance = 50 -- quantos ira aumentar o skill de Distance local skillshield = 50 -- quantos ira aumentar o skill de Shield local health = 100 -- A cada 1 segundo quantos aumentar de vida local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_SPEED, 300) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) function magicEffect2244(tempo2,tempo3,cid) if (isCreature(cid)) then if getPlayerStorageValue(cid, 89745) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then for i=1, #effect do local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} doSendMagicEffect(position, effect) end end end end function onCastSpell(cid, var) local position127 = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} if getPlayerStorageValue(cid, 89745) > 0 then if getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(magicEffect2244, tempo2, tempo2, tempo*1000, cid) tempo2 = tempo2 + 300 end setPlayerStorageValue(cid, 89745,1) -- storage verifica transformado, quando = 1 player esta transformado. doCreatureSay(cid, "Akatsuki Mode", TALKTYPE_MONSTER) doSendMagicEffect(position127, 110) else end else doPlayerSendCancel(cid, "Sorry, you are transformed.") end end function onCastSpell(cid, var) if getPlayerStorageValue(cid, 89745) < 6 then doPlayerSendCancel(cid, "This spell can only be used by akatsuki.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(magicEffect2244, tempo2, tempo2, tempo*1000, cid) tempo2 = tempo2 + 300 end doCreatureSay(cid, "Akatsuki Mode", TALKTYPE_MONSTER) doSendMagicEffect(position127, 110) else doPlayerSendCancel(cid, "Sorry, you are already transformed.") end end Usa esse ai, se o cara não tiver o valor 6 ou mais no storage da akatsuke ele não vai soltar a magia. Pelo npc vi que ele adiciona 6 naquele storage.
  11. Um jeito simples de fazer isso, mas não sei se é o que quer seria Adicionar: <attribute key="decayTo" value="0" /> <attribute key="duration" value="120 /> No items.xml do item, o unico problema disso é que se o char tiver off não vai contar o tempo, não sei se é o que quer, mas para contar off seria mais complicado. Sendo o valor (120) o tempo em segundos...
  12. Primeira vez que mexo com weapon, é bem incomum, mas a idéia da arma é bacana, curti. Testa assim: PS: Inventei umas formulas, mas é só mudar os números que multiplicam o ataque, do lado de attack pra ficar melhor pra você, se preferir pode fazer algo relacionado a skill*ataque da arma, qualquer coisa só falar. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) function onGetFormulaValues(cid, level, maglevel, attack) skill = getPlayerSkill(cid,2) level = getPlayerLevel(cid) min = -(((skill*5)+level*3)+attack*4) max = -(((skill*7)+level*5)+attack*4) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) function onGetFormulaValues(cid, level, maglevel, attack) skill = getPlayerSkill(cid,2) level = getPlayerLevel(cid) min = -(((skill*10)+level*6)+attack*2) max = -(((skill*14)+level*10)+attack*4) return min, max end setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onUseWeapon(cid, var) fala = math.random(1,10) rand = math.random(1,500) if rand <= getPlayerSkill(cid,2) then if fala == 1 then doCreatureSay(cid,"For honor!",TALKTYPE_ORANGE_1) doCombat(cid, combat2, var) else doCreatureSay(cid,"Fell my fury!",TALKTYPE_ORANGE_1) doCombat(cid, combat2, var) end else doCombat(cid, combat, var) end end
  13. Não ta fazendo muito sentido o script com o que você falou, o storage é de uma "classe/vocação" certo? Porque ele esta sendo adicionado quando você da a spell? No caso você não tem o storage, da a spell e não vai mais poder dar porque ela vai te adicionar o storage. Acho que o que você quer seria isso: local tempo = 60 -- tempo em segundos. local effect = {183} -- effect no player, caso queira apenas 1, basta remover os outros numeros. local ml = 150 -- quantos ira aumentar o skill de ML local skillfist = 50 -- quantos ira aumentar o skill de Fist local skillsword = 50 -- quantos ira aumentar o skill de Sword local skillaxe = 50 -- quantos ira aumentar o skill de Axe local skillclub = 50 -- quantos ira aumentar o skill de Club local skilldistance = 50 -- quantos ira aumentar o skill de Distance local skillshield = 50 -- quantos ira aumentar o skill de Shield local health = 100 -- A cada 1 segundo quantos aumentar de vida local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_SPEED, 300) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) function magicEffect2244(tempo2,tempo3,cid) if (isCreature(cid)) then if getPlayerStorageValue(cid, 89745) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then for i=1, #effect do local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} doSendMagicEffect(position, effect) end end end end function onCastSpell(cid, var) local position127 = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} if getPlayerStorageValue(cid, 89745) > 0 then if getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(magicEffect2244, tempo2, tempo2, tempo*1000, cid) tempo2 = tempo2 + 300 end setPlayerStorageValue(cid, 89745,1) -- storage verifica transformado, quando = 1 player esta transformado. doCreatureSay(cid, "Akatsuki Mode", TALKTYPE_MONSTER) doSendMagicEffect(position127, 110) else end else doPlayerSendCancel(cid, "Sorry, you are transformed.") end end function onCastSpell(cid, var) if getPlayerStorageValue(cid, 89745) <= 0 then doPlayerSendCancel(cid, "This spell can only be used by akatsuki.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(magicEffect2244, tempo2, tempo2, tempo*1000, cid) tempo2 = tempo2 + 300 end doCreatureSay(cid, "Akatsuki Mode", TALKTYPE_MONSTER) doSendMagicEffect(position127, 110) else doPlayerSendCancel(cid, "Sorry, you are already transformed.") end end Qualquer mudança ou se não funcionar só fala. Assim como deixei se a pessoa não tiver o storage 89745 não vai usar a magia, se a pessoa ja estiver com a magia, não pode dar a magia. Caso contrario ela vai poder dar.
  14. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Cara, não da pra saber exatamente, pois o erro aparece no geral, eu dei uma olhada em tudo e não parece ter nada errado, mas as vezes uma letra ou aspa ja da isso. Te aconselho pegar o config.lua limpo e editar novamente cuidando, querendo ou não é mais facil que ficar procurando um erro ali.
  15. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Algum erro? Não entendi bem o delay só nessa parte, eu botei um exhaust ali, então só vai dar delay se o player for level maior que 22, caso contrario não vai ter delay.
  16. Obrigado por arrumar e pelos créditos. Sobre a função, ela não existe, ai você cria uma função e declara em cima de onde for usar, ai ela não precisa estar la nas libs, mas só pode ser usada no script que ela está declarada.
  17. Sim, bota um numbero baixo tipo 1,2 la onde falei e tenta abrir uns 3 account manager
  18. Não funciona muito bem do jeito que quer, porque para banir o ip você tem que banir o char. creaturescripts/scripts/login.lua Logo após: function onLogin(cid) cole: local a = 0 local limitAM = 15 if getCreatureName(cid):lower() == "account manager" then for _, pid in ipairs(getPlayersOnline()) do if getCreatureName(pid):lower() == "account manager" and pid ~= cid then a = a + 1 end end if a >= limitAM then return false end return true end Só editar o limitAM = 15 para o limite de account manager que pode entrar ao mesmo tempo. Após alcançar esse limite ele vai começar a recusar as conexões de account manager, é sem duvidas a melhor solução para isso.
  19. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    function onUse(cid, item, frompos, item2, topos) local exstorage = 45718 -- any empty storage local time = 5*60 -- hr*min*seg (5 min = 5*60) if exhaustion.check(cid, exstorage) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você precisa esperar antes de usar novamente.") return TRUE end if getPlayerLevel(cid) >= 13 and getPlayerLevel(cid) < 17 then doRemoveItem(item.uid, 1) doSendMagicEffect(topos,8) doPlayerSay(cid," 200 experiance Up",19) doPlayerAddExp(cid, 200) elseif getPlayerLevel(cid) > 16 and getPlayerLevel(cid) < 20 then doRemoveItem(item.uid, 1) doSendMagicEffect(topos,8) doPlayerSay(cid," 100 experiance Up",19) doPlayerAddExp(cid, 100) elseif getPlayerLevel(cid) > 19 and getPlayerLevel(cid) < 23 then doRemoveItem(item.uid, 1) doSendMagicEffect(topos,8) doPlayerSay(cid," 50 experiance Up",19) doPlayerAddExp(cid, 50) elseif getPlayerLevel(cid) > 22 then exhaustion.set(cid, exstorage, time) doRemoveItem(item.uid, 0) doSendMagicEffect(topos,2) doPlayerSay(cid," Desculpe, Mas você atingiu o level Máximo",19) doPlayerAddExp(cid, 0) end end
  20. Não que eu lembre, apenas adicionei 2 linhas. É para ter em quase todas as distros. Apenas arrume o time la em cima, que coloquei 5 em vez de 6 minutos. Qualquer erro eu posso ajudar.
  21. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Testou o ultimo? Acho que corrigi, pelo menos aquele erro.
  22. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, true) setCombatArea(combat, createCombatArea(AREA_SQUARE1X1)) function onGetFormulaValues(cid, level, skill, attack, factor) local levelTotal = level * 0.3 local skillTotal = skill * attack local min = levelTotal + (skillTotal * 0.03) + 13 local max = levelTotal + (skillTotal * 0.08) + 27 return -math.ceil(min), -math.ceil(max) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") if (getPlayerStorageValue(cid, 13540) - os.time()) <= 0 then doPlayerSendCancel(cid, "Essa magia só pode ser usada por jogadores Vips!") doSendMagicEffect(getThingPos(cid), 2) return false end function onCastSpell(cid, var) return doCombat(cid, combat, var) end Vou tentar arrumar esse script, se esse aqui também continuar gastando mana e saindo a fala é porque ele checa isso antes de chegar no script, ai não sei um meio de fazer.
  23. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, true) setCombatArea(combat, createCombatArea(AREA_SQUARE1X1)) function onGetFormulaValues(cid, level, skill, attack, factor) local levelTotal = level * 0.3 local skillTotal = skill * attack local min = levelTotal + (skillTotal * 0.03) + 13 local max = levelTotal + (skillTotal * 0.08) + 27 return -math.ceil(min), -math.ceil(max) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doPlayerSendCancel(cid, "Essa magia só pode ser usada por jogadores Vips!") doSendMagicEffect (getThingPos(cid), 2) return false end function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  24. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Com qual dos scripts?
  25. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Algum erro na distro com um dos dois últimos scripts?

Informação Importante

Confirmação de Termo