Ir para conteúdo

Jamison Collins

Membro
  • Registro em

  • Última visita

Tudo que Jamison Collins postou

  1. Sim. Agora use e veja se ele está desaparecendo.
  2. Tente isso: local fromPos = {x = 1000, y = 1000, z = 7} local toPos = {x = 2000, y = 2000, z = 7} local storage, stor_amount = 1000, 1 function onPrepareDeath(cid, deathlist) if not isPlayer(cid) then return true end if isPlayer(cid) and isInArea(getPlayerPosition(cid), fromPos, toPos) then setPlayerStorageValue(cid, storage, stor_amount) end return true end Sabe configurar e adicionar no creature.xml/login.lua, não é?
  3. Você tem que ver qual é o TownID no map editor que você queira que o player seja teleportado e mude no script onde está "TownID"
  4. Bem, tente isso: Crie um arquivo .lua na pasta script de Actions, com nome addons.lua e adicione isso: function onUse(cid, item, frompos, item2, topos) local level = 10 -- Level necessário para poder usar o item. if item.itemid == 9693 then if getPlayerLevel(cid) >= level then doPlayerAddAddons(cid, 3) -- 3 significa os dois addons. doSendMagicEffect(getThingPos(cid), 28) doPlayerSendCancel(cid, "You have received all addons.") doRemoveItem(item.uid, 1) else doPlayerSendCancel(cid, "You don't have level enought.") end end return true end Abra o action.xml e adicione essa tag: <action itemid="9693" event="script" value="addons.lua"/>
  5. Qual versão do Tibia do seu servidor? Poste seu outfit.xml se possível.
  6. Jamison Collins postou uma resposta no tópico em Playground (Off-topic)
    mentira.
  7. Bem, vamos à primeira etapa: local daysvalue_ = 30 -- Dias local storage = 50 -- Storage usada function onUse(cid, item, frompos, item2, topos) ------- Não mexer -------- local daysvalue = daysvalue_ * 24 * 60 * 60 local player = Player(cid) local tile = Tile(player:getPosition()) local voc = {5, 6, 7, 8} if tile:hasFlag(TILESTATE_PROTECTIONZONE) == false then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"You can't transform your vocation in this area.") return false elseif player:getStorageValue(storage) - os.time() >= 0 then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You must wait 30 days to use renew your vocation. Next available will be at: " .. os.date("%c", player:getStorageValue(storage)) .. " (month;day;year and time).") return false end if isInArray(voc, player:getVocation():getId()) == true then Item(item.uid):remove() time = os.time() + daysvalue player:setStorageValue(storage, time) player:setVocation(Vocation(player:getVocation():getId() + 4) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have received "..daysvalue_.." epic promotion days!") else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You are not a promoted vocation!") end return true end Crie uma tag XML com itemID desejado utilizando o script acima. Use-o item e veja se está funcionando. Importante que você teste com personagem novo. @vocation.xml Percebi um erro de inglês no seu vocation.xml; aqui: name="Archer" description="a archer" O correto é: name="Archer" description="an archer"
  8. E como você vai testar .-.? Quando fizer, faz na ordem... 9 > sorcerer 10 > druid 11 > paladin 12 > knight
  9. Posta seu vocation.xml.
  10. Tenta tirar o "var" da linha onde está o: doCombat(cid, combat, var) ficando assim: doCombat(cid, combat)
  11. Kita da vida, aplos Até concordo com o 3/2 = 1,5. mas o resto, você defecou no teclado. E estou falando sem decimal. Desculpa a grosseria amor, é pq eu criei um problema in my mind e me deixou nervoso
  12. Fiz a mesma pergunta para 4 pessoas, e adivinhem, 3 não souberam responder, e 1 respondeu errado. Gostaria de fazer esse teste com vocês.
  13. Jamison Collins postou uma resposta no tópico em Portal
    o TK voltou a ser animado, porque o mais lindo está aqui (eu) É isso ai! Vamos animar mais e mais isso ai!
  14. Desculpa te perguntar, mas você tem conhecimento suficiente para apenas colocar as scripts em seu devido lugar?
  15. Seria algo tipo isso: setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, mina, minb, maxa, maxb) minDamage = (Level + Magic Level * 4) * mina + minb maxDamage = (Level + Magic Level * 4) * maxa + maxb Eu não recomendo isso para você que queira fazer um formula mais exata, pois há indícios que essa formula que eu apresentei agora, ela vem se alterando nos TFSs. Você pode usar a SD assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) function onGetFormulaValues(cid, level, maglevel) min = -((level / 5) + (maglevel * 4.3) + 32) max = -((level / 5) + (maglevel * 7.4) + 48) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local condition = createConditionObject(CONDITION_CURSED) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 5, 1000, -250) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end A formula apresentada acima, foi um formula que eu fiz referente à formula do site Tibia Wikia.
  16. Tente esse script: Cria um arquivo .lua na pasta action > script, chamado statue_vocation, e cole isso dentro: modaldialog = { title = "Statue of Destiny", message = "Choose your vocation.", buttons = { { id = 1, value = "Ok" }, { id = 2, value = "Cancel" }, }, buttonEnter = 1, buttonEscape = 2, choices = { { id = 1, value = "[Sorcerer]" }, { id = 2, value = "[Druid]" }, { id = 3, value = "[Paladin]" }, { id = 4, value = "[Knight]" } }, popup = false } local templeID = 1 function callback(cid, button, choice) if button == 1 or button == 29 or button == 0 then if (choice == 1) then doPlayerSetVocation(cid, 1) doTeleportThing(cid, getTownTemplePosition(templeID)) doSendMagicEffect(getTownTemplePosition(templeID), CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Congratulation, now you are a sorcerer!") elseif (choice == 2) then doPlayerSetVocation(cid, 2) doTeleportThing(cid, getTownTemplePosition(templeID)) doSendMagicEffect(getTownTemplePosition(templeID), CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Congratulation, now you are a druid!") elseif (choice == 3) then doPlayerSetVocation(cid, 3) doTeleportThing(cid, getTownTemplePosition(templeID)) doSendMagicEffect(getTownTemplePosition(templeID), CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Congratulation, now you are a paladin!") elseif (choice == 4) then doPlayerSetVocation(cid, 4) doTeleportThing(cid, getTownTemplePosition(templeID)) doSendMagicEffect(getTownTemplePosition(templeID), CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Congratulation, now you are a knight!") end end end function onUse(cid, item, fromPosition, itemEx, toPosition) addDialog(modaldialog, 2345, cid, callback); return true end Bem, esse script é para uma unica estatua. Adicione isso no action.xml: <action actionid="5505" event="script" value="statue_vocation.lua"/> ... Não se esqueça de configurar no script. local templeID = 1 Você vai por o número do Templo ID para onde o player será teleportado após escolher a vocação.
  17. Jamison Collins postou uma resposta no tópico em Playground (Off-topic)
    Sórry, maix naum eh u Matthew Koma, imtaum... eh lishio. Reporten aplos.
  18. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) function onGetFormulaValues(cid, level, maglevel) local mana = getCreatureMana(cid) local porcento = 10 min = -((mana/100) * porcento) max = -((mana/100) * porcento) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Eu peguei o Flame Strike (exori flam) e fiz o que você pediu, testa e me fala.
  19. Você pode tentar assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 1) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) function onCastSpell(cid, var) local level = getPlayerLevel(cid) local magicl = getPlayerMagLevel(cid) local min = ((level * 0.2) + (magicl * 20) + 50) local max = ((level * 0.2) + (magicl * 25) + 75) doCreatureAddMana(cid, math.random(min, max)) return doCombat(cid, combat, var) end Bem... você pode contruir a formula a partir disso: local min = ((level * 0.2) + (magicl * 20) + 50) local max = ((level * 0.2) + (magicl * 25) + 75)
  20. Só você fazer o seguinte: Nas spells que você gostaria de modificar, você apaga essa linha de COMBAT_FORMULA_LEVELMAGIC, ?, ?, ?, ?) E embaixo, você cola isso: function onGetFormulaValues(cid, level, maglevel) min = (maglevel * 100) max = (maglevel * 100) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") É só você alterar o valor acima representado como "100" para o valor desejado. Isso serve para todas as magias. Ficará assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onGetFormulaValues(cid, level, maglevel) min = ((level / 5) + (maglevel * 1.4) + 8) max = ((level / 5) + (maglevel * 1.8) + 11) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  21. Jamison Collins postou uma resposta no tópico em Playground (Off-topic)
    OLD, BUT, SO FUCKING GOOD ! ESSES CARAS SÃO FODAS!
  22. Tente esse: function onAdvance(cid, skill, oldlevel, newlevel) if(skill == SKILL__EXPERIENCE) then return true end local extra_attack_speed = (getPlayerSkillLevel(cid, SKILL_FIST) - 10) * 3 if skill == 0 then doPlayerSetExtraAttackSpeed(cid, extra_attack_speed) return true end return true end
  23. Tente isso: function onAdvance(cid, skill, oldlevel, newlevel) if(skill == SKILL__EXPERIENCE) then return true end local extra_attack_speed = getPlayerSkillLevel(cid, SKILL_FIST) * 3 if newLevel and skill == SKILL_FIST then doPlayerSetExtraAttackSpeed(cid, extra_attack_speed) end return true end
  24. Você já tem algum script base ai? Algo que você tentou.
  25. Jamison Collins postou uma resposta no tópico em Playground (Off-topic)
    Eu sou girl, mi comi.

Informação Importante

Confirmação de Termo