Ir para conteúdo

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. --Tanker Method by NightWolf local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) setCombatParam(combat, COMBAT_PARAM_EFFECT, 13) setCombatParam(combat, COMBAT_PARAM_EFFECT, 0) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, 60000) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 200) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 140) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setCombatCondition(combat, condition) function onCastSpell(cid, var) local ftanker = {lookType = 269, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114, lookTypeEx = 0, lookAddons = 3} doSetCreatureOutfit(cid, ftanker, 60000) return doCombat(cid, combat, var) end setConditionParam(condition, CONDITION_PARAM_TICKS, 60000) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 200) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 140) em ticks é o tempo em milisegundos que vai durar.. no caso aí dura 60 segundos essas condições abaixo maxhitpointspercent e shielpercent são os atributos que serão adicionados... NESSE CASO sua vida dobra (200% da vida) e seu shield aumenta 40% (100% + 40% = 140%) Aqui tem uma lista de todas as condições que podem ser inseridas: CONDITION_PARAM_SKILL_MELEE = 19 CONDITION_PARAM_SKILL_FIST = 20 CONDITION_PARAM_SKILL_CLUB = 21 CONDITION_PARAM_SKILL_SWORD = 22 CONDITION_PARAM_SKILL_AXE = 23 CONDITION_PARAM_SKILL_DISTANCE = 24 CONDITION_PARAM_SKILL_SHIELD = 25 CONDITION_PARAM_SKILL_FISHING = 26 CONDITION_PARAM_STAT_MAXHEALTH = 27 CONDITION_PARAM_STAT_MAXMANA = 28 CONDITION_PARAM_STAT_SOUL = 29 CONDITION_PARAM_STAT_MAGICLEVEL = 30 CONDITION_PARAM_STAT_MAXHEALTHPERCENT = 31 CONDITION_PARAM_STAT_MAXMANAPERCENT = 32 CONDITION_PARAM_STAT_SOULPERCENT = 33 CONDITION_PARAM_STAT_MAGICLEVELPERCENT = 34 CONDITION_PARAM_SKILL_MELEEPERCENT = 35 CONDITION_PARAM_SKILL_FISTPERCENT = 36 CONDITION_PARAM_SKILL_CLUBPERCENT = 37 CONDITION_PARAM_SKILL_SWORDPERCENT = 38 CONDITION_PARAM_SKILL_AXEPERCENT = 39 CONDITION_PARAM_SKILL_DISTANCEPERCENT = 40 CONDITION_PARAM_SKILL_SHIELDPERCENT = 41 CONDITION_PARAM_SKILL_FISHINGPERCENT = 42 Se tiver dúvida em alguma pode perguntar
  2. com esse sistema de critical não dá pra fazer... a do regen mana e regen life é o mesmo problema da getItemAttribute... a função não tá retornando oque deveria.. Vai no items.xml e procura seus items que dão mana regen e life regen e posta oque tá escrito aqui.
  3. eu coloquei as duas condições.. a primeira é ficar invisivel igual utanavid e a segunda é de ficar invisivel igual ao GM.. pra você aparece que tá invisivel igual utana vid mas os outros não conseguem te ver (nem os monstros); Leve em consideração que mesmo estando invisivel os chars GM's conseguem te ver, só os outros players e monstros que não.
  4. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    Resumindo: Só vip's podem comprar a bike... custa 10kk e só pode comprá-la uma vez.. é isso? Passa o id da bike tb
  5. criar classe através de storage? haha não cara... vc cria elas em data/XML/vocations.xml e só dá a classe pra quem for vip
  6. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    coloca em flags isso daqui: <flag skull="5" /> no monstro que vc quiser que tenha skull..
  7. a função é getItemAttribute(uid, "nome do atributo") o problema é que no nome do atributo as vezes vc coloca tudo certinho e não vai de qualquer jeito haha
  8. não se coloca storage em item rs. storage é apenas aos players.. oque dá pra fazer é criar classes novas e colocar pra só os players dessas classes novas poderem usar os itens (isso no weapons.xml ou movements.xml)
  9. Se você que tem o sistema não sabe imagina eu haha, tenta me explicar melhor como funciona esse sistema ou posta o script dele aqui que eu tento dar uma olhada e ver se acho alguma forma de te ajudar
  10. usa outro script uhauhauha meu server tá com as funções getItemArmor e getItemAttribute bugadas então não tem como eu ficar testando pra ver se consigo fazer isso.. se quiser isso vai ter que usar outro sistema de upgrade, o meu é só de dodge
  11. então, depende muito da área que vc vai fazer.. se for tipo uma ilha ligada por uma ponte dá pra colocar pros primeiros Sqm's enviarem a mensagem quando passar de que vai ficar PK e se o player continuar andando no meio da ponte vc pode colocar o movements que seta a skull e adiciona a condition infight. Acredito que qnd vc seta skull por essa função ela fica pra sempre então vc teria que colocar lá no começo da ponte, antes mesmo da mensagem um actionid de que quando o player passasse, se ele tivesse skull então setaria a skull pra 0
  12. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    os exhausteds são os seguintes: exhaustion que é definido pelo xml, groups que é o exhausted entre runas/spells do mesmo gênero (ataque/healing..) e além disso ainda tem no config.lua essa linha aqui que define o exhausted padrão para runas> timeBetweenExActions = 1000
  13. eu testei aqui e infelizmente não tem como haha daria pra colocar mas necessitaria de source editing... por lua oque dá pra fazer é criar um script que use a função que eu expliquei de criar itens já com o dodge pré definido ou então usar o script da pedra de dodge.. eu dei uma mexida nele e consegui quebrar uns galhos, ele tem muito que melhorar mas por ora ele tá 99% pronto pra ser colocado em algum server que utilize o dodge system. function isHandItem(uid) -- NW based on Mock uid = uid or 0 if isInArray({1,2,3,4,5,6}, getItemWeaponType(uid)) then return true end return false end function getItemDodgePercent(itemuid) return getItemAttribute(itemuid, "dodgePercent") or 0 end function setItemDodgePercent(uid, percent) doItemSetAttribute(uid, "description", "[Dodge: "..percent.."%]") doItemSetAttribute(uid, "dodgePercent", percent) end function onUse(cid, item, fromPosition, itemEx, toPosition) level = 0 local upgrade = { [1] = {min = 1, max = 5, chance = 100}, [2] = {min = 5, max = 10, chance = 80}, [3] = {min = 10, max = 20, chance = 60}, [4] = {min = 20, max = 40, chance = 40}, [5] = {min = 40, max = 50, chance = 20} } function isWearing(uid) -- NW based on Mock uid = uid or 0 if isInArray({uid}, getPlayerSlotItem(cid, 1).uid) or isInArray({uid}, getPlayerSlotItem(cid, 4).uid) or isInArray({uid}, getPlayerSlotItem(cid, 7).uid) or isInArray({uid}, getPlayerSlotItem(cid, 8).uid) then return true end return false end if isHandItem(itemEx.uid) or isWearing(itemEx.uid) then local name = getItemName(itemEx.uid) local atual = math.floor(getItemDodgePercent(itemEx.uid)*10)/10 for i = 1, #upgrade do if string.find(tostring(name),"+".. i .."") then level = i end end if level >= #upgrade then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Your item is already on max level, you can't upgrade it any further.") return true end if math.random(0,100) <= upgrade[level + 1].chance then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(itemEx.itemid).." to ".. level+1 ..".") setItemDodgePercent(itemEx.uid, atual + (math.random(upgrade[level+1].min,upgrade[level+1].max))/10) doItemSetAttribute(itemEx.uid,'name', getItemNameById(itemEx.itemid)..' +'..(level+1)) doSendMagicEffect(toPosition, math.random(28,30)) else doRemoveItem(itemEx.uid, 1) doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Your "..getItemNameById(item.itemid).." has failed and destroyed your "..getItemNameById(itemEx.itemid).." in the process") doSendMagicEffect(toPosition, 4) end else doPlayerSendTextMessage(cid, 24,"You cant refine this item.") end return true end Note que pra colocar dodge num item ele tem que: Estar equipado se for qualquer tipo de armadura (legs, boots, helmet, armor) ou livremente (se for weapon/shield).. Necklaces, rings e pendants não são possíveis de colocar dodge.. se vc quiser que seja edita essa função dentro do script pros slots de ring e necklace mas eu não aconselharia a fazer isso. function isWearing(uid) -- NW based on Mock uid = uid or 0 if isInArray({uid}, getPlayerSlotItem(cid, 1).uid) or isInArray({uid}, getPlayerSlotItem(cid, 4).uid) or isInArray({uid}, getPlayerSlotItem(cid, 7).uid) or isInArray({uid}, getPlayerSlotItem(cid, 8).uid) then return true end return false end e no xml coloque: <action itemid="8306" script=upgraderock.lua"/>
  14. o de critical e o de doge tem que pegar porque funcionou no meu.. as outras eu não sei oque é e não vou conseguir resolver pra ti
  15. precisa colocar um return true antes do ultimo end function onCastSpell(cid, var) if not isCreature(cid) then return true end local level = getPlayerLevel(cid) local jutsuDmg = 29 local skill_factor = math.ceil((jutsuSkill_factor(cid, 1) + level)/2) local dmg = - math.max(1, math.ceil(((skill_factor*0.5) * jutsuDmg)*0.30)) actionMove(cid, 385, 500) addEvent(actionMove, 600, cid, 386, 600) addEvent(doCreatureSay, 200, cid, "Katon:", TALKTYPE_MONSTER) addEvent(doCreatureSay, 600, cid, "KARYUU ENDAN!", TALKTYPE_MONSTER) local find_area = getFirstCreaturePosOnDirection(cid,1) local pos = getCreaturePosition(cid) if getCreatureLookDir(cid) == 0 then addEvent(doAreaCombatHealth, 600, cid, COMBAT_FIREDAMAGE, find_area, KATON, dmg, dmg, 255) addEvent(doAreaCombatHealth, 1200, cid, COMBAT_FIREDAMAGE, find_area, KATON, dmg, dmg, 255) addEvent(doSendMagicEffect, 600, {x = pos.x, y = pos.y-1, z = pos.z}, 46) addEvent(doSendMagicEffect, 1000, {x = pos.x, y = pos.y-1, z = pos.z}, 46) elseif getCreatureLookDir(cid) == 1 then addEvent(doAreaCombatHealth, 600, cid, COMBAT_FIREDAMAGE, find_area, KATON, dmg, dmg, 255) addEvent(doAreaCombatHealth, 1200, cid, COMBAT_FIREDAMAGE, find_area, KATON, dmg, dmg, 255) addEvent(doSendMagicEffect, 600, {x = pos.x+5, y = pos.y, z = pos.z}, 47) addEvent(doSendMagicEffect, 1000, {x = pos.x+5, y = pos.y, z = pos.z}, 47) elseif getCreatureLookDir(cid) == 2 then addEvent(doAreaCombatHealth, 600, cid, COMBAT_FIREDAMAGE, find_area, KATON, dmg, dmg, 255) addEvent(doAreaCombatHealth, 1200, cid, COMBAT_FIREDAMAGE, find_area, KATON, dmg, dmg, 255) addEvent(doSendMagicEffect, 600, {x = pos.x, y = pos.y+5, z = pos.z}, 45) addEvent(doSendMagicEffect, 1000, {x = pos.x, y = pos.y+5, z = pos.z}, 45) elseif getCreatureLookDir(cid) == 3 then addEvent(doAreaCombatHealth, 600, cid, COMBAT_FIREDAMAGE, find_area, KATON, dmg, dmg, 255) addEvent(doAreaCombatHealth, 1200, cid, COMBAT_FIREDAMAGE, find_area, KATON, dmg, dmg, 255) addEvent(doSendMagicEffect, 600, {x = pos.x-1, y = pos.y, z = pos.z}, 48) addEvent(doSendMagicEffect, 1000, {x = pos.x-1, y = pos.y, z = pos.z}, 48) end return true end
  16. doPlayerRemoveItem(cid, arrowice, 1) repete essa linha antes de cada return true mudando somente o arrowice
  17. ele não pode passar por dentro de ninguém, as pessoas que podem passar por dentro dele. Se os caras que fizerem a trap ficarem parados o cara vai ficar tomando dano do anel (e deles).. Agora se algum deles ir pra cima do player ele vai poder escapar
  18. local arrowice = 7839 local arrowenergy = 7838 local arrowfire = 7840 local arrowearth = 7850 -- =============== COMBAT VARS =============== -- Areas/Combat for 100ms local combat1_Ice_Area_Hit = createCombatObject() setCombatParam(combat1_Ice_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) setCombatParam(combat1_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatArea(combat1_Ice_Area_Hit,createCombatArea({{0, 1, 0}, {1, 2, 1}})) setCombatFormula(combat1_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 0ms local combat0_Ice_Arrow = createCombatObject() setCombatParam(combat0_Ice_Arrow, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SHIVERARROW) setCombatParam(combat0_Ice_Arrow, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatArea(combat0_Ice_Arrow,createCombatArea({{1}, {0}, {0}, {0}, {2}})) setCombatFormula(combat0_Ice_Arrow, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) local dfcombat0_Ice_Arrow = {CONST_ANI_SHIVERARROW,0,5} -- Areas/Combat for 200ms local combat2_Ice_Area_Hit = createCombatObject() setCombatParam(combat2_Ice_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) setCombatParam(combat2_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatArea(combat2_Ice_Area_Hit,createCombatArea({{0, 1, 0}, {1, 1, 1}, {1, 0, 1}, {0, 2, 0}})) setCombatFormula(combat2_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 300ms local combat3_Ice_Area_Hit = createCombatObject() setCombatParam(combat3_Ice_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) setCombatParam(combat3_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatArea(combat3_Ice_Area_Hit,createCombatArea({{1, 1, 1}, {1, 0, 1}, {0, 0, 0}, {0, 0, 0}, {0, 2, 0}})) setCombatFormula(combat3_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- =============== COMBAT VARS =============== -- Areas/Combat for 200ms local combat2_Fire_Area = createCombatObject() setCombatParam(combat2_Fire_Area, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat2_Fire_Area, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat2_Fire_Area,createCombatArea({{0, 1, 0}, {1, 1, 1}, {1, 0, 1}, {0, 2, 0}})) setCombatFormula(combat2_Fire_Area, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 100ms local combat1_Fire_Area = createCombatObject() setCombatParam(combat1_Fire_Area, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat1_Fire_Area, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat1_Fire_Area,createCombatArea({{0, 1, 0}, {1, 2, 1}})) setCombatFormula(combat1_Fire_Area, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 0ms local combat0_Fire_Arrow = createCombatObject() setCombatParam(combat0_Fire_Arrow, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLAMMINGARROW) setCombatParam(combat0_Fire_Arrow, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat0_Fire_Arrow,createCombatArea({{1}, {0}, {0}, {0}, {2}})) setCombatFormula(combat0_Fire_Arrow, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) local dfcombat0_Fire_Arrow = {CONST_ANI_FLAMMINGARROW,0,5} -- Areas/Combat for 300ms local combat3_Fire_Area = createCombatObject() setCombatParam(combat3_Fire_Area, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat3_Fire_Area, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat3_Fire_Area,createCombatArea({{1, 1, 1}, {1, 0, 1}, {0, 0, 0}, {0, 0, 0}, {0, 2, 0}})) setCombatFormula(combat3_Fire_Area, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- =============== COMBAT VARS =============== -- Areas/Combat for 200ms local combat2_Lightning_Area_Hit = createCombatObject() setCombatParam(combat2_Lightning_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT) setCombatParam(combat2_Lightning_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatArea(combat2_Lightning_Area_Hit,createCombatArea({{0, 1, 0}, {1, 1, 1}, {1, 0, 1}, {0, 2, 0}})) setCombatFormula(combat2_Lightning_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 100ms local combat1_Lightning_Area_Hit = createCombatObject() setCombatParam(combat1_Lightning_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT) setCombatParam(combat1_Lightning_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatArea(combat1_Lightning_Area_Hit,createCombatArea({{0, 1, 0}, {1, 2, 1}})) setCombatFormula(combat1_Lightning_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 0ms local combat0_Lightning_Arrow = createCombatObject() setCombatParam(combat0_Lightning_Arrow, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW) setCombatParam(combat0_Lightning_Arrow, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatArea(combat0_Lightning_Arrow,createCombatArea({{1}, {0}, {0}, {0}, {2}})) setCombatFormula(combat0_Lightning_Arrow, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) local dfcombat0_Lightning_Arrow = {CONST_ANI_FLASHARROW,0,5} -- Areas/Combat for 300ms local combat3_Lightning_Area_Hit = createCombatObject() setCombatParam(combat3_Lightning_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT) setCombatParam(combat3_Lightning_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatArea(combat3_Lightning_Area_Hit,createCombatArea({{1, 1, 1}, {1, 0, 1}, {0, 0, 0}, {0, 0, 0}, {0, 2, 0}})) setCombatFormula(combat3_Lightning_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- =============== COMBAT VARS =============== -- Areas/Combat for 200ms local combat2_Brush = createCombatObject() setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA) setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatArea(combat2_Brush,createCombatArea({{0, 1, 0}, {1, 1, 1}, {1, 0, 1}, {0, 2, 0}})) setCombatFormula(combat2_Brush, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 0ms local combat0_Earth_Arrow = createCombatObject() setCombatParam(combat0_Earth_Arrow, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTHARROW) setCombatParam(combat0_Earth_Arrow, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatArea(combat0_Earth_Arrow,createCombatArea({{1}, {0}, {0}, {0}, {2}})) setCombatFormula(combat0_Earth_Arrow, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) local dfcombat0_Earth_Arrow = {CONST_ANI_EARTHARROW,0,5}local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{0, 1, 0}, {1, 2, 1}})) setCombatFormula(combat0_Brush, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 300ms local combat3_Brush = createCombatObject() setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA) setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatArea(combat3_Brush,createCombatArea({{1, 1, 1}, {1, 0, 1}, {0, 0, 0}, {0, 0, 0}, {0, 2, 0}})) setCombatFormula(combat3_Brush, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- =============== CORE FUNCTIONS =============== local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part if (isCreature(cid)) then doCombat(cid, c, var) if (dirList ~= nil) then -- Emit distance effects local i = 2; while (i < #dirList) do if (startDir == 0) then -- N doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 2) then -- S doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 1) then -- E doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1]) else -- W / Something weird happened doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList[i],z=dirEmitPos.z},dirList[1]) end i = i + 2 end end end end function onCastSpell(cid, var) local startPos = getCreaturePosition(cid) local startDir = getCreatureLookDirection(cid) if isInArray({arrowice}, getPlayerSlotItem(cid, 10).itemid) then addEvent(RunPart,100,combat1_Ice_Area_Hit,cid,var) RunPart(combat0_Ice_Arrow,cid,var,dfcombat0_Ice_Arrow,startPos,startDir) addEvent(RunPart,200,combat2_Ice_Area_Hit,cid,var) addEvent(RunPart,300,combat3_Ice_Area_Hit,cid,var) return true elseif isInArray({arrowfire}, getPlayerSlotItem(cid, 10).itemid) then addEvent(RunPart,200,combat2_Fire_Area,cid,var) addEvent(RunPart,100,combat1_Fire_Area,cid,var) RunPart(combat0_Fire_Arrow,cid,var,dfcombat0_Fire_Arrow,startPos,startDir) addEvent(RunPart,300,combat3_Fire_Area,cid,var) return true elseif isInArray({arrowenergy}, getPlayerSlotItem(cid, 10).itemid) then addEvent(RunPart,200,combat2_Lightning_Area_Hit,cid,var) addEvent(RunPart,100,combat1_Lightning_Area_Hit,cid,var) RunPart(combat0_Lightning_Arrow,cid,var,dfcombat0_Lightning_Arrow,startPos,startDir) addEvent(RunPart,300,combat3_Lightning_Area_Hit,cid,var) return true elseif isInArray({arrowearth}, getPlayerSlotItem(cid, 10).itemid) then addEvent(RunPart,200,combat2_Brush,cid,var) RunPart(combat0_Earth_Arrow,cid,var,dfcombat0_Earth_Arrow,startPos,startDir) RunPart(combat0_Brush,cid,var) addEvent(RunPart,300,combat3_Brush,cid,var) return true else doSendMagicEffect(startPos, 2) doPlayerSendCancel(cid, "You need to have elemental arrows on your ammunition slot.") return false end end
  19. como é a vip do seu servidor?
  20. poderia ser qualquer uma das duas kkkk aqui tem uma talkaction já pronta http://www.tibiaking.com/forum/topic/16596-talkaction-comando-name-mudar-nome-de-char/ é só colocar uma condição de ter X item que ja fica como vc quer
  21. isso são exemplos da função.. no caso oque vc quer é uma action de um item que quando vc clique ele vai te mudar de sexo
  22. depende da edição que vc fez haha, que dualwield system que vc tá se referindo? oque eu conheço apenas soma os ataques/defesas e o attackspeed continua igual
  23. getPlayerSex(cid) Info This function checks player sex. Returns Player sex. For example: PLAYERSEX_FEMALE (0) - when player is female PLAYERSEX_MALE (1) - when player is male PLAYERSEX_GAMEMASTER (2) - gamemaster (Means if player have changed their sex to type = 2) Example local playerPos = getCreaturePosition(cid) local playerSex = getPlayerSex(cid) if playerSex == PLAYERSEX_FEMALE then --female doSendAnimatedText(playerPos, 'GiRl :*:*', TEXTCOLOR_GOLD) elseif playerSex == PLAYERSEX_MALE then --male doSendAnimatedText(playerPos, 'Wtf? I aM BoY.', TEXTCOLOR_GOLD) else --hermaphrodite doSendAnimatedText(playerPos, 'Who am I? :(', TEXTCOLOR_GOLD) end a função que troca de sexo é essa daqui sendo que em newSex você coloca só o numero seguindo a tabela acima: PLAYERSEX_FEMALE (0) - when player is female PLAYERSEX_MALE (1) - when player is male PLAYERSEX_GAMEMASTER (2) - gamemaster (Means if player have changed their sex to type = 2) doPlayerSetSex(cid, newSex)
  24. usa essas 3 linhas aqui no seu script que resolve ele checa se tem qualquer uma das condições e remove ambas if getCreatureCondition(cid, CONDITION_POISON) or getCreatureCondition(cid, CONDITION_FIRE) then doRemoveCondition(cid, CONDITION_POISON) doRemoveCondition(cid, CONDITION_FIRE)
  25. muito legal a idéia e é totalmente fazível usando essas duas funções: doCreatureSetSkullType(cid, skull) doAddCondition(cid, condition) mas transformar numa ferramente do map editor eu ja acho muito forçado hahaha e lembrando que vc teria que fazer uma ponte de acesso que nos dois primeiros sqms teria uma mensagem e nos outros teria o de set playerskull e de add a condition de pzlocked

Informação Importante

Confirmação de Termo