atakashi 11 Postado Janeiro 7, 2014 Share Postado Janeiro 7, 2014 Oi pessoal, aew pro pessoal mais experiente que deve saber essa. no meu poketibia tem aquele pvp de time igual todos os outros, eu queria fazer um pvp sem time, ou seja ele ia ignora o lookfeet, porém não conseguir fazer, se alguem ai souber, ajuda aew. rep+ Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/ Compartilhar em outros sites More sharing options...
RodriigoRobson 111 Postado Janeiro 7, 2014 Share Postado Janeiro 7, 2014 (editado) cria um teleport que vai na arena pvp ! quando voce passa nakeles teleportes azul e vermelho ganha uma storage que impedem o player do proprio time se atacarem é so cria um teleport normal que vai na arena pvp! Editado Janeiro 7, 2014 por Nextbr Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1599651 Compartilhar em outros sites More sharing options...
atakashi 11 Postado Janeiro 8, 2014 Autor Share Postado Janeiro 8, 2014 nem, eu ja tentei a city toda pvp e não adianta, oque deixa eles se atacarem la é a storage que ganham. Além do rep+ vo dá R$ 30,00 para quem fizer o scripter funcionando perfeitamente. Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1599781 Compartilhar em outros sites More sharing options...
MaxxSilva 13 Postado Janeiro 9, 2014 Share Postado Janeiro 9, 2014 N é akilo q vc criar uma arena e tals e pelo remere vc seleciona a area toda com o pvp tol? Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1600398 Compartilhar em outros sites More sharing options...
atakashi 11 Postado Janeiro 9, 2014 Autor Share Postado Janeiro 9, 2014 e mais para pokemon, so por a area pvp não fica pvp. Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1600466 Compartilhar em outros sites More sharing options...
MaxxSilva 13 Postado Janeiro 9, 2014 Share Postado Janeiro 9, 2014 O meu ta a mesma coisa eu n sei oq e isso Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1600480 Compartilhar em outros sites More sharing options...
zipter98 1102 Postado Janeiro 9, 2014 Share Postado Janeiro 9, 2014 Se for PDA, some functions.lua, função canAttackOther. Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1600503 Compartilhar em outros sites More sharing options...
atakashi 11 Postado Janeiro 10, 2014 Autor Share Postado Janeiro 10, 2014 hum, mais como faço hum script de arena que todos possam se atacar sem ser time? tipo tenho esse codigo que é do pvp arena de time. function onStepIn(cid, item, position, fromPosition) --alterado v1.7 reformulado e melhorado ^^ if isSummon(cid) or ehMonstro(cid) then return false end --alterado v1.8 local posis = { --{{pos}, storage, cor da roupa}, [25695] = {{x = 1214, y = 1159, z = 15}, 6598754, 113}, [25696] = {{x = 1214, y = 1198, z = 15}, 6598755, 107}, [25701] = {{x = 476, y = 1847, z = 9}, 6598755, 114}, [25702] = {{x = 1227, y = 1179, z = 15}, 6598755, 107}, [25799] = {{x = 1566, y = 1094, z = 10}, 6598755, 130}, [25800] = {{x = 1053, y = 1050, z = 7}, 6598755, 94}, [25697] = {{x = 2035, y = 977, z = 8}, 6598754, 140}, [25698] = {{x = 1053, y = 1050, z = 7}}, --templo v1.8 [25699] = {{x = 1053, y = 1050, z = 7}}, [25700] = {{x = 1053, y = 1050, z = 7}}, [25703] = {{x = 1836, y = 1325, z = 9}, 6598754, 56}, } local action = posis[item.actionid] local out = getPlayerSex(cid) == 0 and 511 or 510 --alterado v1.9 if getPlayerStorageValue(cid, 17001) == 1 or getPlayerStorageValue(cid, 5700) >= 1 or getPlayerStorageValue(cid, 17000) == 1 then doPlayerSendCancel(cid, "You can't do that while ride/fly/or in a bike.") doTeleportThing(cid, fromPosition, false) --alterado v1.6 return true end if getPlayerStorageValue(cid, 52480) >= 1 then doPlayerSendCancel(cid, "You are already dueling!") doTeleportThing(cid, fromPosition, false) --alterado v1.6 return true end if posis[item.actionid] then if isInArray({25695, 25696, 25701, 25702, 25703, 25799, 25800, 25697}, item.actionid) then setPlayerStorageValue(cid, action[2], 1) doSetCreatureOutfit(cid, {lookType = out, lookBody = action[3], lookHead = action[3], lookLegs = action[3], lookFeet = action[3]}, -1) else setPlayerStorageValue(cid, 6598754, -1) setPlayerStorageValue(cid, 6598755, -1) setPlayerStorageValue(cid, 6598756, -1) setPlayerStorageValue(cid, 6598757, -1) doRemoveCondition(cid, CONDITION_OUTFIT) end doTeleportThing(cid, getClosestFreeTile(cid, action[1]), false) elseif item.actionid == 24158 then if getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then doPlayerSendCancel(cid, "You can't do that while is in battle!") doTeleportThing(cid, fromPosition, false) end end return true end onde eu tiro ele de time, e coloco a função de pvp para todos ? Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1600973 Compartilhar em outros sites More sharing options...
zipter98 1102 Postado Janeiro 10, 2014 Share Postado Janeiro 10, 2014 Faça o seguinte: um movement simples, que teleporte para a arena, e sete storage x no jogador. Aí, na função canAttackOther, você coloca uma verificação tipo essa: if getPlayerStorageValue(master1, storage) >= 1 and getPlayerStorageValue(master2, storage) >= 1 then return "Can" end Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1601069 Compartilhar em outros sites More sharing options...
zerefshirou 112 Postado Janeiro 10, 2014 Share Postado Janeiro 10, 2014 (editado) Acho melhor trocar, isso: if getPlayerStorageValue(master1, 6598754) >= 1 and getPlayerStorageValue(master2, 6598755) >= 1 then return "Can" end if getPlayerStorageValue(master1, 6598755) >= 1 and getPlayerStorageValue(master2, 6598754) >= 1 then ---estar em times diferentes return "Can" end por isso: if getTileInfo(getThingPos(master1)).pvp then return "Can" end Não testei mas isso, deveria permitir atacar se tiver em tile com "pvp", acho assim melhor e evitaria problemas com storages Editado Janeiro 10, 2014 por ZerefShirou Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1601187 Compartilhar em outros sites More sharing options...
atakashi 11 Postado Janeiro 11, 2014 Autor Share Postado Janeiro 11, 2014 (editado) deixa queto já axei vo tenta criar algo aki de teleporte oque não sei muito daonde se tiro isso? ZerefShirou funciono, ta matando no pvp. agora so mais uma coisa, tem como por para quando a pessoa mata alguem, ganha um ponto de win, e quando morre ganha 1 ponto de loser. para eu por um ranking de pvp, de qem mato mais e morreu. Editado Janeiro 10, 2014 por atakashi Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1601277 Compartilhar em outros sites More sharing options...
zerefshirou 112 Postado Janeiro 11, 2014 Share Postado Janeiro 11, 2014 (editado) Sim é possível e bem fácil, mas como não sei qual numero da skill que deve aumentar vou deixar onde deve mudar... doPlayerAddSkill(cid, IDdaSkillQueVaiAumentar, 1) Deve mudar pro numero ali... ai depende de como fica no teu client, mas os numeros são esses que eu saiba: SKILL_FIST = 0 SKILL_CLUB = 1 SKILL_SWORD = 2 SKILL_AXE = 3 SKILL_DISTANCE = 4 SKILL_SHIELD = 5 SKILL_FISHING = 6 SKILL__MAGLEVEL = 7 SKILL__LEVEL = 8 Edit: PQP AFF DENOVO CARA, ESSE XTIBIA TROLL, SEGUNDA VEZ QUE EU POSTO COISAS EMBAIXO E NÃO SAI OQUE EU ESCREVI PQP! Sobre onde deve mudar que eu saiba pra quando morrer no pvp é no exp.lua (talvez não seja mais pq antes acho que pegava storages então deve ter que mudar lá, creio eu)... Agora pra quando mata que eu saiba, ou é no exp.lua, ou é algum lugar do creaturescripts ou algum lugar da lib, não lembro ao certo agora... Editado Janeiro 11, 2014 por ZerefShirou Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1601451 Compartilhar em outros sites More sharing options...
atakashi 11 Postado Janeiro 11, 2014 Autor Share Postado Janeiro 11, 2014 (editado) achei aqui esse script playerpdeath.lua function onDeath(cid) if getPlayerStorageValue(cid, 63215) >= 1 then setPlayerStorageValue(cid, 63215, 0) end doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doCreatureSetLookDir(cid, SOUTH) doPlayerPopupFYI(cid, "test") doRemoveCreature(cid) return true end a parte do de matar a pessoal, onde eu edito aqui? porque eu nem to imaginando que função procura, para saber onde é para editar. obs: testei aki nesse playpdeath, deu certo não kkk. to usando o pda do bolz, e exp2.0 que usa nele, procurei algo de death dele, achei nada. Editado Janeiro 11, 2014 por atakashi Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1601532 Compartilhar em outros sites More sharing options...
zerefshirou 112 Postado Janeiro 11, 2014 Share Postado Janeiro 11, 2014 Posta o exp ai, nunca vi o do BOLZa de mulher, apesar de ainda se um pda Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1601671 Compartilhar em outros sites More sharing options...
atakashi 11 Postado Janeiro 12, 2014 Autor Share Postado Janeiro 12, 2014 local combats = { [PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC}, [GRASSDAMAGE] = {cor = COLOR_GRASS}, [POISONEDDAMAGE] = {cor = COLOR_GRASS}, [FIREDAMAGE] = {cor = COLOR_FIRE2}, [BURNEDDAMAGE] = {cor = COLOR_BURN}, [WATERDAMAGE] = {cor = COLOR_WATER}, [ICEDAMAGE] = {cor = COLOR_ICE}, [NORMALDAMAGE] = {cor = COLOR_NORMAL}, [FLYDAMAGE] = {cor = COLOR_FLYING}, [GHOSTDAMAGE] = {cor = COLOR_GHOST}, [GROUNDDAMAGE] = {cor = COLOR_GROUND}, [ELECTRICDAMAGE] = {cor = COLOR_ELECTRIC}, [ROCKDAMAGE] = {cor = COLOR_ROCK}, [BUGDAMAGE] = {cor = COLOR_BUG}, [FIGHTDAMAGE] = {cor = COLOR_FIGHTING}, [DRAGONDAMAGE] = {cor = COLOR_DRAGON}, [POISONDAMAGE] = {cor = COLOR_POISON}, [DARKDAMAGE] = {cor = COLOR_DARK}, [STEELDAMAGE] = {cor = COLOR_STEEL}, [MIRACLEDAMAGE] = {cor = COLOR_PSYCHIC}, [DARK_EYEDAMAGE] = {cor = COLOR_GHOST}, [SEED_BOMBDAMAGE] = {cor = COLOR_GRASS}, [SACREDDAMAGE] = {cor = COLOR_FIRE2}, [MUDBOMBDAMAGE] = {cor = COLOR_GROUND}, --alterado v1.9 } local function sendPlayerDmgMsg(cid, text) if not isCreature(cid) then return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, text) end local races = { [4] = {cor = COLOR_FIRE2}, [6] = {cor = COLOR_WATER}, [7] = {cor = COLOR_NORMAL}, [8] = {cor = COLOR_FIRE2}, [9] = {cor = COLOR_FIGHTING}, [10] = {cor = COLOR_FLYING}, [11] = {cor = COLOR_GRASS}, [12] = {cor = COLOR_POISON}, [13] = {cor = COLOR_ELECTRIC}, [14] = {cor = COLOR_GROUND}, [15] = {cor = COLOR_PSYCHIC}, [16] = {cor = COLOR_ROCK}, [17] = {cor = COLOR_ICE}, [18] = {cor = COLOR_BUG}, [19] = {cor = COLOR_DRAGON}, [20] = {cor = COLOR_GHOST}, [21] = {cor = COLOR_STEEL}, [22] = {cor = COLOR_DARK}, [1] = {cor = 180}, [2] = {cor = 180}, [3] = {cor = 180}, [5] = {cor = 180}, } local damages = {GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE, DARKDAMAGE, STEELDAMAGE} local fixdmgs = {PSYCHICDAMAGE, COMBAT_PHYSICALDAMAGE, GRASSDAMAGE, FIREDAMAGE, WATERDAMAGE, ICEDAMAGE, NORMALDAMAGE, GHOSTDAMAGE} local ignored = {POISONEDDAMAGE, BURNEDDAMAGE} local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE} function onStatsChange(cid, attacker, type, combat, value) if combat == FLYSYSTEMDAMAGE then return false end if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TV if not isCreature(attacker) then if not isInArray(fixdamages, combat) and combats[combat] then doSendAnimatedText(getThingPos(cid), value, combats[combat].cor) end return true end local damageCombat = combat -------------------------------------------------- if type == STATSCHANGE_HEALTHGAIN then if cid == attacker then return true end if isSummon(cid) and isSummon(attacker) and canAttackOther(cid, attacker) == "Cant" then return false end return true end -------------------------------------------------- if isMonster(cid) then local valor = value if not pokes[getCreatureName(cid)] and damageCombat == COMBAT_PHYSICALDAMAGE then valor = getOffense(attacker) * playerDamageReduction doCreatureAddHealth(cid, -math.abs(valor), 3, races[7].cor) return false elseif not pokes[getCreatureName(cid)] and damageCombat ~= COMBAT_PHYSICALDAMAGE then doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor) return false end end -------------------------------------------------- if isPlayer(attacker) then local valor = value if valor > getCreatureHealth(cid) then valor = getCreatureHealth(cid) end if combat == COMBAT_PHYSICALDAMAGE then return false end if combat == PHYSICALDAMAGE then doSendMagicEffect(getThingPos(cid), 3) doSendAnimatedText(getThingPos(cid), valor, races[getMonsterInfo(getCreatureName(cid)).race].cor) end if combats[damageCombat] and not isInArray(fixdmgs, damageCombat) then doSendAnimatedText(getThingPos(cid), valor, combats[damageCombat].cor) end if #getCreatureSummons(attacker) >= 1 and not isInArray({POISONEDDAMAGE, BURNEDDAMAGE}, combat) then doPlayerSendTextMessage(attacker, MESSAGE_STATUS_DEFAULT, "Your "..getPokeName(getCreatureSummons(attacker)[1]).." dealt "..valor.." damage to "..getSomeoneDescription(cid)..".") end return true end -------------------------------------------------- if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then return false end -------------------------------------------------- if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS then if isSummon(attacker) or isPlayer(attacker) then if canAttackOther(cid, attacker) == "Cant" then return false end end local valor = 0 if combat == COMBAT_PHYSICALDAMAGE then valor = getOffense(attacker) else valor = getSpecialAttack(attacker) end valor = valor * playerDamageReduction valor = valor * math.random(83, 117) / 100 if valor >= getCreatureHealth(cid) then valor = getCreatureHealth(cid) end valor = math.floor(valor) if valor >= getCreatureHealth(cid) then if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then setPlayerStorageValue(cid, 6598754, -1) setPlayerStorageValue(cid, 6598755, -1) doRemoveCondition(cid, CONDITION_OUTFIT) doTeleportThing(cid, posBackPVP, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) return false --alterado v1.8 end if getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 17000, 0) setPlayerStorageValue(cid, 17001, 0) setPlayerStorageValue(cid, 63215, -1) doChangeSpeed(cid, PlayerSpeed) local item = getPlayerSlotItem(cid, 8) local btype = getPokeballType(item.itemid) if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) end end end if getPlayerStorageValue(cid, 22545) == 1 then if getGlobalStorageValue(22550) == 1 then doPlayerSendTextMessage(cid, 20, "You are the last survivor of the golden arena! Take your reward!") doPlayerAddItem(cid, 2152, getPlayerStorageValue(cid, 22551)*2) setPlayerStorageValue(cid, 22545, -1) doTeleportThing(cid, getClosestFreeTile(cid, getClosestFreeTile(cid, posBackGolden)), false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid)) setPlayerRecordWaves(cid) endGoldenArena() return false --alterado v1.8 else setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1) setPlayerStorageValue(cid, 22545, -1) doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid)) setPlayerRecordWaves(cid) return true end end if getPlayerStorageValue(cid, 98796) >= 1 then setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) --alterado v1.8 doTeleportThing(cid, SafariOut, false) doSendMagicEffect(getThingPos(cid), 21) doPlayerSendTextMessage(cid, 27, "You die in the saffari... Best luck in the next time!") return false --alterado v1.8 end local corpse = doCreateItem(3058, 1, getThingPos(cid)) doDecayItem(corpse) doItemSetAttribute(corpse, "pName", getCreatureName(cid)) --alterado v1.7 coloca corpse quando o player morre! doItemSetAttribute(corpse, "attacker", getCreatureName(attacker)) doItemSetAttribute(corpse, "article", getPlayerSex(cid) == 0 and "She" or "He") if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) <= 10 then setPlayerStorageValue(cid, Agatha.stoIni, -1) setPlayerStorageValue(cid, Agatha.stoRec, -1) setPlayerStorageValue(cid, Agatha.stoPer, -1) setPlayerStorageValue(cid, Agatha.stoEni, -1) --alterado v1.9 agatha quest setPlayerStorageValue(cid, Agatha.stoRes, -1) end end doCreatureAddHealth(cid, -valor, 3, 180) if not isPlayer(cid) then addEvent(sendPlayerDmgMsg, 5, cid, "You lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".") end return false end -------------------------------------------------- if isMonster(attacker) and getPlayerStorageValue(attacker, 201) ~= -1 then if isPlayer(cid) then return false end if getPlayerStorageValue(getCreatureMaster(cid), ginasios[getPlayerStorageValue(attacker, 201)].storage) ~= 1 then return false end end -------------------------------------------------- if isMonster(cid) and getPlayerStorageValue(cid, 201) ~= -1 then if getPlayerStorageValue(getCreatureMaster(attacker), ginasios[getPlayerStorageValue(cid, 201)].storage) ~= 1 then return false end end -------------------------------------------------- if ehMonstro(cid) and ehMonstro(attacker) and not isSummon(cid) and not isSummon(attacker) then return false --alterado v1.9 /\ end -------------------------------------------------- --------------------REFLECT----------------------- if getPlayerStorageValue(cid, 21099) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then if not isInArray({"Team Claw", "Team Slice"}, getPlayerStorageValue(attacker, 21102)) then doSendMagicEffect(getThingPosWithDebug(cid), 135) doSendAnimatedText(getThingPosWithDebug(cid), "REFLECT", COLOR_GRASS) addEvent(docastspell, 100, cid, getPlayerStorageValue(attacker, 21102)) if getCreatureName(cid) == "Wobbuffet" then doRemoveCondition(cid, CONDITION_OUTFIT) end setPlayerStorageValue(cid, 21099, -1) setPlayerStorageValue(cid, 21100, 1) setPlayerStorageValue(cid, 21101, attacker) setPlayerStorageValue(cid, 21103, getTableMove(attacker, getPlayerStorageValue(attacker, 21102)).f) setPlayerStorageValue(cid, 21104, getCreatureOutfit(attacker).lookType) return false end end ------------------------------------------------- local multiplier = 1 if isCreature(cid) then poketype1 = pokes[getCreatureName(cid)].type poketype2 = pokes[getCreatureName(cid)].type2 end if not poketype1 or not poketype2 then return false end if getCreatureCondition(cid, CONDITION_INVISIBLE) then return false end if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then if isInArray(effectiveness[damageCombat].super, poketype1) then multiplier = multiplier + 0.5 end if isInArray(effectiveness[damageCombat].super, poketype2) then multiplier = multiplier + 0.5 end if isInArray(effectiveness[damageCombat].weak, poketype1) then multiplier = multiplier - 0.25 end if isInArray(effectiveness[damageCombat].weak, poketype2) then multiplier = multiplier - 0.25 end if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then if isInArray(specialabilities["foresight"], getCreatureName(attacker)) then multiplier = 0.5 end --alterado v1.6 end elseif combat == COMBAT_PHYSICALDAMAGE then if isGhostPokemon(cid) then if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --passiva Foresight!! doSendMagicEffect(getThingPos(cid), 3) return false end end local cd = getPlayerStorageValue(attacker, conds["Miss"]) local cd2 = getPlayerStorageValue(attacker, conds["Confusion"]) local cd3 = getPlayerStorageValue(attacker, conds["Stun"]) if cd >= 0 or cd2 >= 0 or cd3 >= 0 then if math.random(1, 100) > 50 then doSendMagicEffect(getThingPos(cid), 211) doSendAnimatedText(getThingPos(attacker), "MISS", 215) return false end end end -------------------------------------------------- local valor = value if multiplier == 1.5 and poketype2 == "no type" then multiplier = 2 elseif multiplier == 1.5 and poketype2 ~= "no type" then multiplier = 1.75 elseif multiplier == 1.25 then multiplier = 1 end -------------------------------------------------- if isSummon(cid) and isSummon(attacker) then if getCreatureMaster(cid) == getCreatureMaster(attacker) then return false end if canAttackOther(cid, attacker) == "Cant" then return false end end valor = valor * multiplier if isSummon(attacker) then valor = valor * getHappinessRate(attacker) else valor = valor * summonReduction end valor = math.floor(valor) if combat == COMBAT_PHYSICALDAMAGE then local value = getOffense(attacker) > 1000 and 3 or 2 block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid))) --alterado v1.9 testem essa nova formula plzzz '--' valor = (getOffense(attacker)/value) * block if valor <= 0 then valor = math.random(5, 10) --alterado v1.9 end if isInArray(specialabilities["counter"], getCreatureName(cid)) then if math.random(1, 100) <= 10 then doCreatureAddHealth(attacker, -valor, 3, 180) valor = 0 doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215) end end else valor = valor / getDefense(cid) end -------------------------Edited CLAN SYSTEM----------------------------------- if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk") elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2)) end ----------------------------------------------------------------------- ---------------------- FEAR / ROAR ------------------------------------ if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then return true end -------------------------------------------------------------------------- if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then valor = valor * 0 end end end if damageCombat == GROUNDDAMAGE then if isInArray(specialabilities["levitate"], getCreatureName(cid)) then valor = 0 end end ----------------------------------------------------------------------------- local p = getThingPos(cid) if p.x == 1 and p.y == 1 and p.z == 10 then return false end if getPlayerStorageValue(cid, 9658783) == 1 then return false --imune end ----------------------------------------------------------------------------- --------------- FIGHT MODE ----------------------- if useOTClient then if isSummon(cid) then local master = getCreatureMaster(cid) if getPlayerStorageValue(master, 248759) == 1 then valor = valor * 1.1 elseif getPlayerStorageValue(master, 248759) == 3 then valor = valor * 0.9 end end if isSummon(attacker) then local master = getCreatureMaster(attacker) if getPlayerStorageValue(master, 248759) == 1 then valor = valor * 1.1 elseif getPlayerStorageValue(master, 248759) == 3 then valor = valor * 0.9 end end end ----------------------------------------------------------------------------- if valor >= getCreatureHealth(cid) then if isInArray(cannotKill, combat) and isPlayer(cid) then valor = getCreatureHealth(cid) - 1 else valor = getCreatureHealth(cid) end end valor = math.floor(valor) ------------------ SKILLs Q CURAM O ATTACKER --------------------------------- local function doHeal(cid, amount) if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then amount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid)) end if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then doCreatureAddHealth(cid, amount) doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) end end if damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE then if getPlayerStorageValue(attacker, 95487) >= 1 then doHeal(attacker, valor) setPlayerStorageValue(attacker, 95487, -1) end elseif damageCombat == SEED_BOMBDAMAGE then doHeal(attacker, valor) end -------------------------------------------- ----------SACRED FIRE----------------------- if combat == SACREDDAMAGE and not ehNPC(cid) then local ret = {} ret.id = cid ret.cd = 9 ret.check = getPlayerStorageValue(cid, conds["Silence"]) ret.eff = 39 ret.cond = "Silence" doCondition2(ret) elseif combat == MUDBOMBDAMAGE and not ehNPC(cid) then local ret = {} ret.id = cid ret.cd = 9 ret.eff = 34 ret.check = getPlayerStorageValue(cid, conds["Miss"]) ret.spell = "Mud Bomb" --alterado v1.9 ret.cond = "Miss" doCondition2(ret) end --------------------------------------------- --------------Passiva Lifesteal Clobat------------ if combat == COMBAT_PHYSICALDAMAGE then if getCreatureName(attacker) == "Crobat" then doCreatureAddHealth(attacker, math.floor(valor)) doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30) end end -------------------------------------------- valor = math.abs(valor) --alterado v1.9 if isSummon(attacker) then if combat == COMBAT_PHYSICALDAMAGE then doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255) addEvent(doDoubleHit, 1000, attacker, cid, valor, races) else doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255) end else if combat ~= COMBAT_PHYSICALDAMAGE then doCreatureAddHealth(cid, -valor, 3, combats[damageCombat].cor) else doCreatureAddHealth(cid, -valor, 3, races[getMonsterInfo(getCreatureName(cid)).race].cor) addEvent(doDoubleHit, 1000, attacker, cid, valor, races) end if isSummon(cid) and valor ~= 0 then addEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Your "..getCreatureName(cid).." lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".") end end if damageCombat == FIREDAMAGE and not isBurning(cid) then local ret = {} ret.id = cid ret.cd = math.random(5, 12) ret.check = getPlayerStorageValue(cid, conds["Burn"]) ret.damage = isSummon(attacker) and getMasterLevel(attacker)+getPokemonBoost(attacker) or getPokemonLevel(attacker) ret.cond = "Burn" doCondition2(ret) elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) then local ret = {} ret.id = cid ret.cd = math.random(6, 15) ret.check = getPlayerStorageValue(cid, conds["Poison"]) local lvl = isSummon(attacker) and getMasterLevel(attacker) or getPokemonLevel(attacker) ret.damage = math.floor((getPokemonLevel(attacker)+lvl)/2) ret.cond = "Poison" doCondition2(ret) end --[[---------------CD BAR----------------------- if isSummon(cid) then doCreatureExecuteTalkAction(getCreatureMaster(cid), "/pokeread") end ]] ------------------------------------POTIONS------------------------------------------- if isSummon(cid) and type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 173) >= 1 then if damageCombat ~= BURNEDDAMAGE and damageCombat ~= POISONEDDAMAGE then setPlayerStorageValue(cid, 173, -1) doSendAnimatedText(getThingPos(cid), "Lost Heal", 144) end end end ----------------------------------------PASSIVAS------------------------------------- -------------------------------------------Counter Helix------------------------------------ if passivesChances["Helix"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Helix"][getCreatureName(cid)] then docastspell(cid, "Counter Helix") end -------------------------------------------Lava Counter/Electricity---------------------------- if passivesChances["Fire_Thunder"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Fire_Thunder"][getCreatureName(cid)] then docastspell(cid, "Lava-Electricity") end ---------------------------------------Stunning Confusion----------------------------------------- if passivesChances["Stunning"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning"][getCreatureName(cid)] then docastspell(cid, "Stunning Confusion") end -----------------------------------------Groundshock----------------------------------- if passivesChances["Groundshock"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Groundshock"][getCreatureName(cid)] then docastspell(cid, "Groundshock") end --------------------------------------Electric Charge--------------------------------------------- if passivesChances["Electric Charge"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Electric Charge"][getCreatureName(cid)] then docastspell(cid, "Electric Charge", 0, 0) end -------------------------------------Melody------------------------------------ if passivesChances["Melody"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Melody"][getCreatureName(cid)] then docastspell(cid, "Melody") end ------------------------------------- Dragon Fury / Fury --------------------------------------- if passivesChances["Dragon Fury"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Dragon Fury"][getCreatureName(cid)] then docastspell(cid, "Dragon Fury", 0, 0) end ------------------------------------- Mega Drain --------------------------------------- if passivesChances["Mega Drain"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mega Drain"][getCreatureName(cid)] then docastspell(cid, "Mega Drain") end ------------------------------------- Spores Reaction --------------------------------------- if passivesChances["Spores Reaction"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Spores Reaction"][getCreatureName(cid)] then docastspell(cid, "Spores Reaction") end ------------------------------------ Amnesia ---------------------------------------- if passivesChances["Amnesia"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Amnesia"][getCreatureName(cid)] then docastspell(cid, "Amnesia", 0, 0) end ----------------------------------- Zen Mind ----------------------------------------- if passivesChances["Zen Mind"][getCreatureName(cid)] and isWithCondition(cid) and math.random(1, 100) <= passivesChances["Zen Mind"][getCreatureName(cid)] then docastspell(cid, "Zen Mind", 0, 0) end ---------------------------------- Mirror Coat --------------------------------------- if passivesChances["Mirror Coat"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mirror Coat"][getCreatureName(cid)] then docastspell(cid, "Mirror Coat", 0, 0) end --------------------------------- Illusion ----------------------------------------- return false end Link para o comentário https://xtibia.com/forum/topic/226708-encerrado-pedido-pvp-sem-time/#findComment-1602056 Compartilhar em outros sites More sharing options...
Posts Recomendados