-
Total de itens
1917 -
Registro em
-
Última visita
-
Dias Ganhos
7
Posts postados por BrunooMaciell
-
-
12 horas atrás, Yan18 disse:
O sistema do ícone system geralmente fica na pasta Data/Lib/IconSys.lua (na base do PokeRoxy fica lá), e o script pega a ball na bag e transforma no id com ícone. Só que tem base que só transforma a ball em ícone quando coloca a ball no slot de soltar o pokémon e tem base que pega da bag. Mas pelo que vi, nessa base pega do slot.
Eu vi a tabela.
Mas achei aqui como.
Pode encerrar ^^
-
Eu tentei isto mas nem foi e outro modo porem nao sei qual KKK
-
Bom uma duvida relacionado ao icon system do server PokeRoxy.
Queria saber como ativa ele queria testar uma coisa ate um possivel systema de paint nele.
Porem nao sei como ativa o icon system.
Sei que o server tem o systema de icon porem nao sei como ta e nao sei como ativa.
Quem tem o server e puder me ajudar na parte de como ativa o sistema.
Rep+++
-
8 horas atrás, Kooask disse:
Achou algum compativel ? Compartilha com nós ai !!
Poderia mandar aqui no tópico pra gente adaptar?
Entao amigo ainda nao coloquei no server to com um ainda mas pretendo testa
-
2 horas atrás, Alphapetboy disse:
Estou fazendo muitas mudanças no jogo e meu medo é ele lançar uma versão nova e eu ter q fazer tudo dnv..
to conseguindo resolver alguns bugs la
A mano e o risco mas acredito EU que ele nao va atualiza isso aqui nao male male da suport =/ unica coisa que ele falo que ia fazer e trazer uma nova source mais limpa.
Mas bom ja nao sei mas da pesca como eu disse tenta ver na conf.lua em skill xp
-
Isto ocorre quando itens desse mapa nao tem no seu server.
Pode ate ter o mesmo item porem pode estar com o ID diferente.
Oque eu recomendo caso queira muito este mapa nao sei se e de outro server.
E apaga estes item vermelho e editar em cima.
-
53 minutos atrás, Alphapetboy disse:
Sobre os erros citados no servidor e se vc vai fazer alguma update como disse, os erros que encontrei eu to tentando solucionar
o autoloot eu não consegui ainda e nem o bug da agua transparente (não da pra pescar ou nadar) ou o bug do level do fishing que não consegui arrumar, tá upando SUPER rapido
o level do player ta traquilo
Queria saber se realmente vai fazer uma v2
Sobre o XP da pesca testa aqui o
Vai na sua conf.lua
Pesquisa por >> rateSkill
Testa coloca um valor bem baixo e ve
18 horas atrás, Deadpool disse:tem um que postaram e esta 100% kk
Vou da uma olhada!!
Se pretende ainda posta uma nova source melhorada e se possivel arrumado o BUG do exe e com sistema de unique funcionando ??
OPS: o bug que falo e aquele de resp da source la
-
2 horas atrás, Deadpool disse:
mt trabalho por aqui, mas fala ai, vou tentar acompanhar o topico, mas so com coisas que realmente ninguem sabe.. abrir um ot todo mundo sabe..
po se podia da uma ajuda no auto loot do server.
Ele nao funciona
-
Alguem conseguil arrumar o autoloot do server ??
Que possa postar a soluçao ??
-
18 minutos atrás, knino disse:
oi pessoal, muito obrigado pelo servidor deadpool. Como eu poderia conectar o servidor com o cliente de outro ip
So muda o IP do clinte e do server.
Coloca o mesmo IP no server - conf.lua e no cliente - entergame.lua
-
Alguem conseguil resolver ??
-
Estou com um BUG no exp2.0
Nao sei se esta relacionado mass ...
Tipo quando eu capturo 6 pokemons o 7 se eu capturar ele vem pra minha BAG e nao pro DP e os DP ta tudo configurado tudo certinho.
BUG
Spoiler
[28/03/2020 23:34:10] [Error - CreatureScript Interface]
[28/03/2020 23:34:10] data/creaturescripts/scripts/exp2.0.lua:onStatsChange
[28/03/2020 23:34:10] Description:
[28/03/2020 23:34:10] data/creaturescripts/scripts/exp2.0.lua:305: attempt to index field '?' (a nil value)
[28/03/2020 23:34:10] stack traceback:
[28/03/2020 23:34:10] data/creaturescripts/scripts/exp2.0.lua:305: in function <data/creaturescripts/scripts/exp2.0.lua:64>SCRIPT
local combats = { --alterado v1.6 \/ [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.5 tabelas agora estao em lib/configuration.lua 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} --alterado v1.6 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 --alterado v1.5 cid == attacker if not isInArray(fixdamages, combat) and combats[combat] then doSendAnimatedText(getThingPos(cid), value, combats[combat].cor) end return true end local damageCombat = combat -------------------------------------------------- --alterado v1.6 retirado os combats sleep_powder e poison_powder daki! -------------------------------------------------- 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) --alterado v1.6 dano nos npcs 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, cid, 20, "Seu "..getPokeName(getCreatureSummons(attacker)[1]).." causou "..valor.." de dano no "..getSomeoneDescription(cid)..".") end return true end -------------------------------------------------- if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then --if ehMonstro(attacker) and getClosestFreeTile(getCreatureSummons(cid)[1]) >= 1 then --doSendAnimatedText(getThingPosWithDebug(attacker), "Hmpfg!", 215) --doMonsterSetTarget(attacker, getCreatureSummons(cid)[1]) --end return false end --if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then --if ehMonstro(attacker) and getClosestFreeTile(getCreatureSummons(cid)[1]) <= 0 then --doSendAnimatedText(getThingPosWithDebug(attacker), "Grrr!", 215) --doMonsterSetTarget(attacker, cid) --end --return true --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, {x = 1001, y = 1026, z = 14}, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) return false --alterado v1.8 elseif getPlayerStorageValue(cid, 577869) >= 1 then setPlayerStorageValue(cid, 577869, 0) doTeleportThing(cid, {x = 1009, y = 1084, z = 14}, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) return false elseif getPlayerStorageValue(cid, 20000) >= 1 then setPlayerStorageValue(cid, 20000, 0) setPlayerStorageValue(cid,30,0) doTeleportThing(cid, {x = 1172, y = 1366, z = 7}, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doPlayerSendTextMessage(cid, 20, "Você morreu no Saffari por Favor volte mais tarde!") return false elseif getPlayerStorageValue(cid, 20001) >= 1 then setPlayerStorageValue(cid,20001,0) doTeleportThing(cid, {x = 1371, y = 1240, z = 7}, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, 20, "You are died in demon room, please come back!") return false end ------------------------------------------- --- if getPlayerStorageValue(cid, 18) >= 1 then setPlayerStorageValue(cid,18,0) doRemoveCondition(cid, CONDITION_OUTFIT) end ------------Saffari---------------------------------- 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 ------------Edited Golden Arena------------------ if getPlayerStorageValue(cid, 22545) == 1 then if getGlobalStorageValue(22550) == 1 then doPlayerSendTextMessage(cid, 20, "Você foi o último sobrevivente da Golden Arena! Tome sua recompensa!") doPlayerAddItem(cid, 2160, getPlayerStorageValue(cid, 22551)*30/4) doPlayerAddExperience(cid, 1000, getPlayerStorageValue(cid, 22551)*30) 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) doPlayerAddItem(cid, 2152, getPlayerStorageValue(cid, 22551)*5) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid)) --setPlayerRecordWaves(cid) return true end end ---------------------------------- if getPlayerSex(cid) == 1 then local corpse = doCreateItem(3058, 1, getThingPos(cid)) doDecayItem(corpse) doItemSetAttribute(corpse, "name", "dead human (Vol:8). You recognize ".. getCreatureName(cid) ..". He was killed by a ".. getCreatureName(attacker) .."") elseif getPlayerSex(cid) == 0 then local corpse = doCreateItem(3065, 1, getThingPos(cid)) doDecayItem(corpse) doItemSetAttribute(corpse, "name", "dead human (Vol:8). You recognize ".. getCreatureName(cid) ..". She was killed by a ".. getCreatureName(attacker) .."") end end doCreatureAddHealth(cid, -valor, 3, 180) if not isPlayer(cid) then addEvent(sendPlayerDmgMsg, 5, cid, "Você perdeu "..valor.." em pontos de vida por um attack de "..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) then return false --edited monstro nao atacar monstro 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) --alterado v1.6 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 --alterado v1.6 poketype2 = pokes[getCreatureName(cid)].type2 end if not poketype1 or not poketype2 then return false end --alterado v1.6 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 --Edited effetivenes = pxg... ;p 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 --alterado v1.5 multiplier = 0.5 end --alterado v1.6 end -- X-Attack -- if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then local TierArray = {8, 9, 10, 11, 12, 13, 14} local Tiers = { [8] = {bonus = AtkBonus1}, [9] = {bonus = AtkBonus2}, [10] = {bonus = AtkBonus3}, [11] = {bonus = AtkBonus4}, [12] = {bonus = AtkBonus5}, [13] = {bonus = AtkBonus6}, [14] = {bonus = AtkBonus7}, } local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8) local Tier = getItemAttribute(ball.uid, "heldx") local bonusatk = {} if isInArray(TierArray, getItemAttribute(ball.uid, "heldx")) then bonusatk = Tiers[Tier].bonus else bonusatk = 1 end multiplier = multiplier * bonusatk end -- X-Attack -- elseif combat == COMBAT_PHYSICALDAMAGE then if isGhostPokemon(cid) then --alterado v1.3 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 --Edited miss system -- 50% chance de da miss no atk fisico doSendMagicEffect(getThingPos(cid), 211) doSendAnimatedText(getThingPos(attacker), "MISS", 215) --alterado v1.5 return false end end end -------------------------------------------------- local valor = value if multiplier == 1.5 and poketype2 == "no type" then multiplier = 2 --alterado v1.6 elseif multiplier == 1.5 and poketype2 ~= "no type" then multiplier = 1.75 elseif multiplier == 1.25 then --edited effetivines = pxg 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 block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid))) valor = getOffense(attacker) * block 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 -- Return -- if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then local returnbonus = {} local ball = getPlayerSlotItem(getCreatureMaster(cid), 8) local Tiers = { [15] = {bonus = DmgReturn1}, [16] = {bonus = DmgReturn2}, [17] = {bonus = DmgReturn3}, [18] = {bonus = DmgReturn4}, [19] = {bonus = DmgReturn5}, [20] = {bonus = DmgReturn6}, [21] = {bonus = DmgReturn7}, } local Tier = getItemAttribute(ball.uid, "heldx") if Tier and Tier > 14 and Tier < 22 then returnbonus = math.floor((valor * Tiers[Tier].bonus)) elseif not isInArray(Tiers, Tier) then returnbonus = 0 end doCreatureAddHealth(attacker, -returnbonus) end -- Return -- else -- Return -- if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then local returnbonus = {} local ball = getPlayerSlotItem(getCreatureMaster(cid), 8) local Tiers = { [15] = {bonus = DmgReturn1}, [16] = {bonus = DmgReturn2}, [17] = {bonus = DmgReturn3}, [18] = {bonus = DmgReturn4}, [19] = {bonus = DmgReturn5}, [20] = {bonus = DmgReturn6}, [21] = {bonus = DmgReturn7}, } local Tier = getItemAttribute(ball.uid, "heldx") if Tier and Tier > 14 and Tier < 22 then returnbonus = math.floor((valor * Tiers[Tier].bonus)) elseif not isInArray(Tiers, Tier) then returnbonus = 0 end doCreatureAddHealth(attacker, -returnbonus) end -- Return -- 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") --alterado v1.3 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 --alterado!! 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 --alterado v1.6 valor = valor * 0 --alterado v1.5 end end end if damageCombat == GROUNDDAMAGE then if isInArray(specialabilities["levitate"], getCreatureName(cid)) then valor = 0 --alterado v1.5 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 ----------------------------------------------------------------------------- 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) --alterado v1.6 ------------------ 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 --alterado v1.6 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) --alterado v1.6 end elseif damageCombat == SEED_BOMBDAMAGE then doHeal(attacker, valor) end -------------------------------------------- ----------SACRED FIRE----------------------- if combat == SACREDDAMAGE and not ehNPC(cid) then --alterado v1.6 local ret = {} ret.id = cid ret.cd = 9 ret.check = getPlayerStorageValue(cid, conds["Silence"]) ret.eff = 39 ret.cond = "Silence" doCondition2(ret) end --------------------------------------------- --------------Passiva Lifesteal Clobat------------ if combat == COMBAT_PHYSICALDAMAGE then if getCreatureName(attacker) == "Crobat" then --alterado v1.4 doCreatureAddHealth(attacker, math.floor(valor)) doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30) end end -------------------------------------------- --------------Passiva Lifesteal Clobat------------ if combat == COMBAT_PHYSICALDAMAGE then if getCreatureName(attacker) == "Golbat" then --alterado v1.4 doCreatureAddHealth(attacker, math.floor(valor)) doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30) end end -------------------------------------------- --------------Passiva Lifesteal Clobat------------ if combat == COMBAT_PHYSICALDAMAGE then if getCreatureName(attacker) == "Zubat" then --alterado v1.4 doCreatureAddHealth(attacker, math.floor(valor)) doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30) end end -------------------------------------------- --------------Passiva Lifesteal Clobat------------ if combat == COMBAT_PHYSICALDAMAGE then if getCreatureName(attacker) == "Shiny Crobat" then --alterado v1.4 doCreatureAddHealth(attacker, math.floor(valor)) doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30) end end -------------------------------------------- --------------Passiva Lifesteal Clobat------------ if combat == COMBAT_PHYSICALDAMAGE then if getCreatureName(attacker) == "Shiny Golbat" then --alterado v1.4 doCreatureAddHealth(attacker, math.floor(valor)) doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30) end end -------------------------------------------- --------------Passiva Lifesteal Clobat------------ if combat == COMBAT_PHYSICALDAMAGE then if getCreatureName(attacker) == "Shiny Zubat" then --alterado v1.4 doCreatureAddHealth(attacker, math.floor(valor)) doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30) end end -------------------------------------------- valor = math.abs(valor) --alterado v1.9 if isSummon(cid) and valor >= getCreatureHealth(cid) then onPokeHealthChange(getCreatureMaster(cid), true) elseif isSummon(cid) then onPokeHealthChange(getCreatureMaster(cid)) end if isSummon(attacker) then if combat == COMBAT_PHYSICALDAMAGE then doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255) addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v1.6 else doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255) end else if combat ~= COMBAT_PHYSICALDAMAGE then doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor) else doCreatureAddHealth(cid, -math.abs(valor), 3, races[getMonsterInfo(getCreatureName(cid)).race].cor) addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v1.6 end if isSummon(cid) and valor ~= 0 then --addEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Seu "..getCreatureName(cid).." perdeu "..valor.." de vida pelo attack do "..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) --alterado v1.6 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---------------------------- if passivesChances["Lava"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Lava"][getCreatureName(cid)] then docastspell(cid, "Lava-Counter") end ---------------------------------------Stunning Confusion----------------------------------------- if passivesChances["Stunning Confusion"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning Confusion"][getCreatureName(cid)] then docastspell(cid, "Stunning Confusion") end -----------------------------------------Shock-Counter----------------------------------- if passivesChances["Shock"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Shock"][getCreatureName(cid)] then docastspell(cid, "Shock-Counter") 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 ---------------------------------- Bone-Spin --------------------------------------- if passivesChances["Bone"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Bone"][getCreatureName(cid)] then docastspell(cid, "Bone-Spin") end --------------------------------- Illusion ----------------------------------------- return false end
Eu queria caso o 7 pokemon for capturado va pra DP normal.
Porem deu este erro no meio do teste nao sei se tem a ver.
Rep+++
-
So uma duvida meio boba mas assim como ativa o icon system ??
Queria ver um negocio do server na parte de icon
-
Oque eu pensei era fazer npcs de batalha o problema e os emblemas
-
8 horas atrás, nociam disse:
A linha do erro já postei a correção : if #getCreatureSummons(_target) > 0 then
Outra coisa tem uma source ai rolando que tem sua próprio configuração exemplo os métodos abaixo, além disso precisa ajustar o método doDano2 algo assim por causa dele os danos não batem fora que o monstro criado pelo npc não pega os eventos do spaw.lua etc......
doSetMonsterGym(summon, focus)
doSetGym(summon, 1)
doSetAttackGym(summon, focus)Se tiver o servidor limpo o método passado deve funcionar se tiver o serve cheio de adaptação igual ao que baixei para teste precisa procurar os problemas
https://i.gyazo.com/94b9ef1c0b210078b4577246b934199e.gif
No caso esta linha >> getCreatureSummons(_target)[1])
Muda pra este >> if #getCreatureSummons(_target) > 0 then
??
-
1 hora atrás, Yan18 disse:
Na condicional if estava com 1 igual. Testa assim:
------------------------------ FUNÇÃO LOCAL selfAttackCrature() --------------------------- local function selfAttackCreature() if #getCreatureSummons(getNpcCid()) > 0 and not isCreature(getCreatureTarget(getCreatureSummons(getNpcCid())[1])) then local list = getSpectators(getCreaturePosition(getNpcCid()), 7, 7, false) for i=0, table.getn(list) do local _target = list[i] if(_target ~= 0) then if isPlayer(_target) and not getTileInfo(getThingPos(_target)).protection then if #getCreatureSummfighting == falseons(_target) > 0 then doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], getCreatureSummons(_target)[1]) setPlayerStorageValue(getCreatureSummons(getNpcCid())[1], 99856201, getNpcCid()) else fighting = false end target = _target break end end end end end ----------------------------------------------------- CÓDIGO ----------------------------------------------------- local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 300 -- seconds local afk_time = 0 -- don't change local battle_turn = 1 -- don't change local challenger_turn = 0 -- don't change local pokemons = { {name = "Alakazam", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Shiny Hypno", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Mr. Mime", optionalLevel = 400, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Porygon", optionalLevel = 400, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Espeon", optionalLevel = 400, sex = SEX_FEMALE, nick = "", ball = "normal"}, } local function doSummonGymPokemon(npc) local this = npc if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = pokemons[battle_turn] doSummonMonster(this, it.name) local summon = getCreatureSummons(this)[1] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(summon), balleffect) setPlayerStorageValue(summon, 10000, balleffect) setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name)) setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name) doSetMonsterGym(summon, focus) addEvent(adjustWildPoke, 15, summon, it.optionalLevel) local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1) fighting = true battle_turn = battle_turn + 1 end local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc local a = gymbadges[getCreatureName(this)] + 8 doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 8).." as a prize.", 1) local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)])) end function onCreatureSay(cid, type, msg) local msg = string.lower(msg) if focus == cid then talk_start = os.clock() end if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then focus = cid talk_start = os.clock() conv = 1 selfSay("Hello "..getCreatureName(cid)..", my name is Sabrina and I'm Saffron's Gym Leader. How may I help you?") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then --if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then -- selfSay("You have already won my Marsh Badge, maybe some other day we can fight.") -- focus = 0 --return true --end if not hasPokemon(cid) then selfSay("To battle agains't a gym leader you need pokemons.") return true end selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?") conv = 2 return true end if isConfirmMsg(msg) and conv == 2 and focus == cid then challenger = focus setPlayerStorageValue(cid, 990, 1) selfSay("Yea, let's fight!") talk_start = os.clock() addEvent(doSummonGymPokemon, 850, getThis()) conv = 3 return true end if isNegMsg(msg) and conv == 2 and focus == cid then focus = 0 selfSay("It is better for you to refuse a battle against me!") return true end if msgcontains(msg, 'bye') and focus == cid then selfSay('Bye and do your best trainer!') setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local afk_warning = false function onThink() --doSendAnimatedText(getThingPos(getThis()), getCreatureName(getThis()), 215) if focus == 0 then selfTurn(2) fighting = false challenger = 0 challenger_turn = 0 battle_turn = 1 afk_time = 0 afk_warning = false if #getCreatureSummons(getThis()) >= 1 then setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0) doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1])) end return true else if not isCreature(focus) then focus = 0 return true end if fighting then talk_start = os.clock() if not isCreature(getCreatureTarget(getThis())) then if #getCreatureSummons(challenger) >= 1 then if getCreatureOutfit(getCreatureSummons(challenger)[1]).lookType ~= 2 then --alterado v1.6 selfAttackCreature() challenger_turn = challenger_turn + 1 afk_time = 0 end else afk_time = afk_time + 0.5 end end if afk_time > afk_limit_time then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("I have waited too long, come back when you are ready!") return true end if not afk_warning and afk_time > afk_limit_time / 2 then selfSay("Where's your pokemon? Let's fight!") afk_warning = true end if #getCreatureSummons(getThis()) == 0 then if battle_turn > #pokemons then addEvent(doWinDuel, 1000, focus, getThis()) setPlayerStorageValue(focus, 990, -1) focus = 0 return true end addEvent(doSummonGymPokemon, 1000, getThis()) end if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then selfSay("You lost our duel! Maybe some other time you'll defeat me.") setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Bye then.") return true end if (os.clock() - talk_start) > 30 then selfSay("Good bye and keep training!") setPlayerStorageValue(focus, 990, -1) focus = 0 end if getDistanceToCreature(focus) > max_distance then setPlayerStorageValue(focus, 990, -1) focus = 0 return true end local dir = doRedirectDirection(getDirectionTo(npcpos, focpos)) selfTurn(dir) end return true end
Deu este BUG
Spoiler[25/03/2020 15:55:00] [Error - Npc interface]
[25/03/2020 15:55:00] data/npc/scripts/gym/sabrina.lua:onThink
[25/03/2020 15:55:00] Description:
[25/03/2020 15:55:00] data/npc/scripts/gym/sabrina.lua:10: attempt to get length of global 'getCreatureSummfighting' (a nil value)
[25/03/2020 15:55:00] stack traceback:
[25/03/2020 15:55:00] data/npc/scripts/gym/sabrina.lua:10: in function 'selfAttackCreature'
[25/03/2020 15:55:00] data/npc/scripts/gym/sabrina.lua:178: in function <data/npc/scripts/gym/sabrina.lua:145> -
12 horas atrás, Yan18 disse:
Coloquei a função local selfAttackCrature que o nociam mandou, teste o código:
------------------------------ FUNÇÃO LOCAL selfAttackCrature() --------------------------- local function selfAttackCreature() if #getCreatureSummons(getNpcCid()) > 0 and not isCreature(getCreatureTarget(getCreatureSummons(getNpcCid())[1])) then local list = getSpectators(getCreaturePosition(getNpcCid()), 7, 7, false) for i=0, table.getn(list) do local _target = list[i] if(_target ~= 0) then if isPlayer(_target) and not getTileInfo(getThingPos(_target)).protection then if #getCreatureSummfighting = falseons(_target) > 0 then doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], getCreatureSummons(_target)[1]) setPlayerStorageValue(getCreatureSummons(getNpcCid())[1], 99856201, getNpcCid()) else fighting = false end target = _target break end end end end end ----------------------------------------------------- CÓDIGO ----------------------------------------------------- local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 300 -- seconds local afk_time = 0 -- don't change local battle_turn = 1 -- don't change local challenger_turn = 0 -- don't change local pokemons = { {name = "Alakazam", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Shiny Hypno", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Mr. Mime", optionalLevel = 400, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Porygon", optionalLevel = 400, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Espeon", optionalLevel = 400, sex = SEX_FEMALE, nick = "", ball = "normal"}, } local function doSummonGymPokemon(npc) local this = npc if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = pokemons[battle_turn] doSummonMonster(this, it.name) local summon = getCreatureSummons(this)[1] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(summon), balleffect) setPlayerStorageValue(summon, 10000, balleffect) setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name)) setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name) doSetMonsterGym(summon, focus) addEvent(adjustWildPoke, 15, summon, it.optionalLevel) local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1) fighting = true battle_turn = battle_turn + 1 end local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc local a = gymbadges[getCreatureName(this)] + 8 doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 8).." as a prize.", 1) local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)])) end function onCreatureSay(cid, type, msg) local msg = string.lower(msg) if focus == cid then talk_start = os.clock() end if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then focus = cid talk_start = os.clock() conv = 1 selfSay("Hello "..getCreatureName(cid)..", my name is Sabrina and I'm Saffron's Gym Leader. How may I help you?") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then --if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then -- selfSay("You have already won my Marsh Badge, maybe some other day we can fight.") -- focus = 0 --return true --end if not hasPokemon(cid) then selfSay("To battle agains't a gym leader you need pokemons.") return true end selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?") conv = 2 return true end if isConfirmMsg(msg) and conv == 2 and focus == cid then challenger = focus setPlayerStorageValue(cid, 990, 1) selfSay("Yea, let's fight!") talk_start = os.clock() addEvent(doSummonGymPokemon, 850, getThis()) conv = 3 return true end if isNegMsg(msg) and conv == 2 and focus == cid then focus = 0 selfSay("It is better for you to refuse a battle against me!") return true end if msgcontains(msg, 'bye') and focus == cid then selfSay('Bye and do your best trainer!') setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local afk_warning = false function onThink() --doSendAnimatedText(getThingPos(getThis()), getCreatureName(getThis()), 215) if focus == 0 then selfTurn(2) fighting = false challenger = 0 challenger_turn = 0 battle_turn = 1 afk_time = 0 afk_warning = false if #getCreatureSummons(getThis()) >= 1 then setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0) doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1])) end return true else if not isCreature(focus) then focus = 0 return true end if fighting then talk_start = os.clock() if not isCreature(getCreatureTarget(getThis())) then if #getCreatureSummons(challenger) >= 1 then if getCreatureOutfit(getCreatureSummons(challenger)[1]).lookType ~= 2 then --alterado v1.6 selfAttackCreature() challenger_turn = challenger_turn + 1 afk_time = 0 end else afk_time = afk_time + 0.5 end end if afk_time > afk_limit_time then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("I have waited too long, come back when you are ready!") return true end if not afk_warning and afk_time > afk_limit_time / 2 then selfSay("Where's your pokemon? Let's fight!") afk_warning = true end if #getCreatureSummons(getThis()) == 0 then if battle_turn > #pokemons then addEvent(doWinDuel, 1000, focus, getThis()) setPlayerStorageValue(focus, 990, -1) focus = 0 return true end addEvent(doSummonGymPokemon, 1000, getThis()) end if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then selfSay("You lost our duel! Maybe some other time you'll defeat me.") setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Bye then.") return true end if (os.clock() - talk_start) > 30 then selfSay("Good bye and keep training!") setPlayerStorageValue(focus, 990, -1) focus = 0 end if getDistanceToCreature(focus) > max_distance then setPlayerStorageValue(focus, 990, -1) focus = 0 return true end local dir = doRedirectDirection(getDirectionTo(npcpos, focpos)) selfTurn(dir) end return true end
OBS: Eu não testei, apenas inseri a função que o amigo mandou para ver se soluciona o problema.
Teste e veja se funciona, se der certo, dê rep+ para o @nociam
Deu este ERRO
Spoiler[25/03/2020 13:07:19] [Error - LuaScriptInterface::loadFile] data/npc/scripts/gym/sabrina.lua:10: 'then' expected near '='
[25/03/2020 13:07:19] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/gym/sabrina.lua
[25/03/2020 13:07:19] data/npc/scripts/gym/sabrina.lua:10: 'then' expected near '=' -
1 hora atrás, Deadpool disse:
Então, qual o erro/bug no catch?
O pokemon dusknoir o cath dele nao esta funcionando a ball nao vai nele porem eu vi e re-vi a configuration a pasta monster onde ele esta eu nao achei erro tinha 2 um com nome errado outro com nome certo porem deletei o errado e o certa esta certo e na configuration onde vi esta certo !!
Aii o ERRO dele e se mata ele ai fica o corps dele no chao porem nao da pra joga a ball nele.
Ai ate onde sei e so ele bugado nao sei se tem mais assim
-
6 minutos atrás, Alphapetboy disse:
Sim... Infelizmente eu não consigo resolver nenhum error.. e essa baseé muito boa
triste
oque eu recomendo irmao..
E tu pergunta aqui e fazer um topico do bug.
Eu no momento to quebrando cabeça com o cath.
Ate onde eu sei o poekmon >> pokemon dusknoir << ta bugado o cath dele porem a configuração dele ta certa e um bug bem estranho
-
47 minutos atrás, Alphapetboy disse:
@Deadpool Você vai atualizar o tópico sem esses erros listados? ainda estou tendo bastante problema no catch e nos outros.. se puder
Assim mano nao querendo te desanimar nem nada disso.
Mas acredito que ele nao vai da suport ao server nao.
Assim ele posto um server maneiro server bom porem cheio de bugs mas server em si e bom.
Oque me desanimo com ele:
E que deadpool fez muita promesa mas numca comprio nesse termo creio eu que ele nao vai da suport ao server.
Assim
- Ele falo que ia posta uma nova source melhorada do que esta que tem
Ate hoje nada
Eu uma fez troquei mensagem com ele no privado do xtibia ele diz que ia ajuda com os itens tentando descobrir quais sao os 2 itens que esta dando ERRO no exe do server.
Ate hoje nada.
Assim eu mesmo agradeço muito ele pela postagem do server porem tem uma amigo em algum post do server aqui mesmo que diz que o deadpool so fala mas nao faz assim nisso concordo com ele =/
e o deadpool diz mesmo que nao vai da mas suport ao server.
Entaooo ...
-
54 minutos atrás, Ayron5 disse:
Testei aqui, a npc solta o poke e depois de 1 segundo ela chama ele de volta e fala que perdi o duelo .-.
22:13 Sabrina: Sim, vamos lutar! 22:13 Sabrina: Alakazam, vamos a batalha! 22:13 Sabrina: Voce perdeu o duelo! Talvez algum outro momento voce vai me derrotar. 22:14 Sabrina: Voce foi otimo, Alakazam!
sabrina.lua
local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 30 -- seconds local afk_time = 0 -- don't change local battle_turn = 1 -- don't change local challenger_turn = 0 -- don't change local pokemons = { {name = "Alakazam", optionalLevel = 120, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Hypno", optionalLevel = 90, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Mr. Mime", optionalLevel = 90, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Porygon", optionalLevel = 80, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Shiny Alakazam", optionalLevel = 120, sex = SEX_FEMALE, nick = "", ball = "normal"}, {name = "Shiny hypno", optionalLevel = 120, sex = SEX_FEMALE, nick = "", ball = "normal"}, } local function selfAttackCreature() if #getCreatureSummons(getNpcCid()) > 0 and not isCreature(getCreatureTarget(getCreatureSummons(getNpcCid())[1])) then local list = getSpectators(getCreaturePosition(getNpcCid()), 7, 7, false) for i=0, table.getn(list) do local _target = list[i] if(_target ~= 0) then if isPlayer(_target) and not getTileInfo(getThingPos(_target)).protection then if #getCreatureSummons(_target) > 0 then doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], getCreatureSummons(_target)[1]) setPlayerStorageValue(getCreatureSummons(getNpcCid())[1], 99856201, getNpcCid()) else fighting = false end target = _target break end end end end end local function doSummonGymPokemon(npc) local this = npc if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = pokemons[battle_turn] doSummonMonster(this, it.name) local summon = getCreatureSummons(this)[1] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(summon), balleffect) setPlayerStorageValue(summon, 10000, balleffect) setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name)) setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name) doSetMonsterGym(summon, focus) addEvent(adjustWildPoke, 15, summon, it.optionalLevel) local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1) fighting = true battle_turn = battle_turn + 1 selfAttackCreature() end local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc local a = gymbadges[getCreatureName(this)] + 8 doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 8).." as a prize.", 1) local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)])) end function onCreatureSay(cid, type, msg) local msg = string.lower(msg) if focus == cid then talk_start = os.clock() end if msgcontains(msg, 'oi') and focus == 0 and getDistanceToCreature(cid) <= 4 then focus = cid talk_start = os.clock() conv = 1 selfSay("Ola "..getCreatureName(cid)..", Meu nome e Sabrina e eu sou o Lider do Gym Saffron. Como posso ajuda-lo?") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then --if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then -- selfSay("You have already won my Marsh Badge, maybe some other day we can fight.") -- focus = 0 --return true --end if not hasPokemon(cid) then selfSay("Para lutar com um lider de ginasio, voce precisa de pokemons.") return true end selfSay("Voce esta me desafiando a uma batalha. Sera uma "..#pokemons.." Pokemon Limite a batalha, vamos comecar?") conv = 2 return true end if isConfirmMsg(msg) and conv == 2 and focus == cid then challenger = focus setPlayerStorageValue(cid, 990, 1) selfSay("Sim, vamos lutar!") talk_start = os.clock() addEvent(doSummonGymPokemon, 850, getThis()) conv = 3 return true end if isNegMsg(msg) and conv == 2 and focus == cid then focus = 0 selfSay("E melhor voce recusar uma batalha contra mim!") return true end if msgcontains(msg, 'tchau') and focus == cid then selfSay('Tchau e faca o seu melhor, treinador!') setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local afk_warning = false function onThink() --doSendAnimatedText(getThingPos(getThis()), getCreatureName(getThis()), 215) if focus == 0 then selfTurn(2) fighting = false challenger = 0 challenger_turn = 0 battle_turn = 1 afk_time = 0 afk_warning = false if #getCreatureSummons(getThis()) >= 1 then setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0) doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1])) end return true else if not isCreature(focus) then focus = 0 return true end if fighting then talk_start = os.clock() if not isCreature(getCreatureTarget(getThis())) then if #getCreatureSummons(challenger) >= 1 then if getCreatureOutfit(getCreatureSummons(challenger)[1]).lookType ~= 2 then --alterado v1.6 selfAttackCreature() challenger_turn = challenger_turn + 1 afk_time = 0 end else afk_time = afk_time + 0.5 end end if afk_time > afk_limit_time then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Eu aguardei muito tempo, volte quando estiver pronto!") return true end if not afk_warning and afk_time > afk_limit_time / 2 then selfSay("Onde esta o seu pokemon? Vamos lutar!") afk_warning = true end if #getCreatureSummons(getThis()) == 0 then if battle_turn > #pokemons then addEvent(doWinDuel, 1000, focus, getThis()) setPlayerStorageValue(focus, 990, -1) focus = 0 return true end addEvent(doSummonGymPokemon, 1000, getThis()) end if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then selfSay("Voce perdeu o duelo! Talvez algum outro momento voce vai me derrotar.") setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Entao tchau.") return true end if (os.clock() - talk_start) > 30 then selfSay("Adeus e continue treinando!") setPlayerStorageValue(focus, 990, -1) focus = 0 end if getDistanceToCreature(focus) > max_distance then setPlayerStorageValue(focus, 990, -1) focus = 0 return true end local dir = doRedirectDirection(getDirectionTo(npcpos, focpos)) selfTurn(dir) end return true end
GYM system ta bugado kkkkkkkk creio eu de muito servers ta assim bugadao kkkk
Ta Complicado =/
-
1 hora atrás, Jasonxrx disse:
alguem sabe como permito a captura de todos os pokemons? tem alguns pokemons como dusknoir q não aceita pokeball
Ja tento da uma olhada na configuration.lua na parte de cath
-
1 minuto atrás, nociam disse:
Cara tem Skype? se não baixa compartilha a tela e vamos ajustar isso.
ate tenho mas tenho tbem discord
-
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
(Pedido) NPC Vende Outfit
em Scripts
Postado
Bom como o titulo ja diz tudo RS.
Alguem tem npc que vende outfit pra poketibia uma versao pra poketibia