então pessoal eu até a pouco tempo(ontem)
nao sabia desse bug
fiquei sabendo pq um cara com a msm duvida veio me pedir ajuda
eu tenho uma ideia de como arrumar mais nao sei se é possivel pois n sei mto de script
é tipo que assim você sobe no pokemon (ride ou fly) ae beleza
voce troca a pokebola do poke que ta no fly/ride pra uma que tenha um pokemon morto
ae voce sai do fly/ride ele vai criar o pokemon que esta no seu slot feet, que seria o morto
então ele cria o pokemon ae ele morre e aparece o corpo, ae é so vc captura
ae gostaria de saber, se n tem como arrumar pra sair do fly/ride somente se o pokemon certo estiver no local que seria o slot feet
caso precise vou postar o scrip de ride e fly:
Fly:
function getPokemonMaxLife(name) local file = io.open('data/monster/monsters.xml','r') local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>') file:close() local data = io.open('data/monster/'..(arquivo or ''),'r') if not data then return 100 end local maximo = data:read(-1):match('max%s*=%s*"(%d+)"') data:close() return maximo end function onUse(cid, item, frompos, item2, topos) local pokes = { ['Moltres'] = {229, 800}, ['Articuno'] = {230, 800}, ['Zapdos'] = {224, 800}, ['Mew'] = {232, 800}, ['Mewtwo'] = {233, 800}, ['Dragonite'] = {221, 300}, ['Pidgeot'] = {222, 350}, ['Fearow'] = {226, 400}, ['Aerodactyl'] = {227, 490}, ['Charizard'] = {216, 590}, ['Elder Charizard'] = {295, 800}, } local idballs = { [2531] = {"Pokeball"}, [2557] = {"Superball"}, [2524] = {"Greatball"}, [2525] = {"Ultraball"}, [2523] = {"Masterball"}, } local storage = 9393 -- Não mexa aqui! local exhaust = 0 -- Tempo para player poder usar o item novamente! (tempo em segundos) local time = 0 -- Tempo para ficar na montaria! (tempo em segundos) local old_speed = getCreatureBaseSpeed(cid) local summons = getCreatureSummons(cid) if (getPlayerStorageValue(cid, storage) <= os.time()) then if getPlayerStorageValue(cid, 24000) == 5 then return doPlayerSendCancel(cid, "You are riding.") end if getPlayerStorageValue(cid, 17000) == 10 then local nome = getItemName(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid) local balls = idballs[getPlayerSlotItem(cid,8).itemid] local poke_name = nome:match('(.-) '..balls[1]) local action_id = getItemAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "aid") if getSqmId(getCreaturePosition(cid)).itemid == CONST_FLYVOID then return doPlayerSendCancel(cid,"Desça antes de sair do fly") end setPlayerStorageValue(cid, storage, os.time()+exhaust) doChangeSpeed(cid, -(getCreatureSpeed(cid) - getCreatureBaseSpeed(cid))) doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 17000, 7) setPlayerStorageValue(cid, 23000, 6) local monster = doCreateMonster(poke_name, getCreaturePosition(cid)) doConvinceCreature(cid, monster) doCreatureAddHealth(monster, -(tonumber(getPokemonMaxLife(poke_name) - action_id))) doPlayerSay(cid, poke_name .. ", I'm tired of flying!", TALKTYPE_SAY) setPlayerStorageValue(cid, 9999,-1) setPlayerStorageValue(cid, 8888,-1) return true end if #getCreatureSummons(cid) < 1 then return doPlayerSendCancel(cid, "Para voar você precisa de um pokemon") end if isPremium(cid) == FALSE then return doPlayerSendCancel(cid, "Você não é premium account.") end local name = getCreatureName(getCreatureSummons(cid)[1]) local pokemon = pokes[getCreatureName(getCreatureSummons(cid)[1])] if not pokes[name] then return doPlayerSendCancel(cid, "Este pokemon não pode voar.") end setPlayerStorageValue(cid, storage, os.time()+exhaust) doChangeSpeed(cid, pokemon[2]) setPlayerStorageValue(cid, 17000, 10) setPlayerStorageValue(cid, 23000, 5) doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1) setPlayerStorageValue(cid,9999,pokemon[1]) setPlayerStorageValue(cid,8888,pokemon[2]) doItemSetAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "aid", getCreatureHealth(getCreatureSummons(cid)[1])) function getPokemonId(summons) for _, pid in ipairs(summons) do return pid end end doRemoveCreature(getPokemonId(summons)) doPlayerSay(cid, name .. ", Vamos voar!", TALKTYPE_SAY) doPlayerSendTextMessage(cid,27,'Fale \'up\' para subir e \'down\' para descer!.' ) if fly.using(cid) then local p = getCreaturePosition(cid) p.stackpos = 0 local f = getTileThingByPos(p) if fly.del(cid) then if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID then return true else setPlayerStorageValue(cid,10941,1) local p = getCreaturePosition(cid) setPlayerStorageValue(cid, 102011,p.x) setPlayerStorageValue(cid, 102012,p.y) setPlayerStorageValue(cid, 102013,p.z) return true end else doPlayerSendTextMessage(cid,27,'Você não pode voar neste local.') end end end return true end
Ride:
function getPokemonMaxLife(name) local file = io.open('data/monster/monsters.xml','r') local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>') file:close() local data = io.open('data/monster/'..(arquivo or ''),'r') if not data then return 100 end local maximo = data:read(-1):match('max%s*=%s*"(%d+)"') data:close() return maximo end function onUse(cid, item, frompos, item2, topos) local pokes = { ['Tauros'] = {128, 200}, ['Ninetales'] = {129, 300}, ['Rapidash'] = {130, 350}, ['Ponyta'] = {131, 200}, ['Rhyhorn'] = {132, 150}, ['Arcanine'] = {12, 500}, ['Shiny Arcanine'] = {492, 800}, ['Shiny Venusaur'] = {494, 700}, ['Crystal Onix'] = {293, 400}, ['Onix'] = {126, 350}, ['Venusaur'] = {134, 350}, ['Dodrio'] = {133, 350}, ['Doduo'] = {135, 250}, } local idballs = { [2531] = {"Pokeball"}, [2557] = {"Superball"}, [2524] = {"Greatball"}, [2525] = {"Ultraball"}, [2523] = {"Masterball"}, } local old_speed = getCreatureBaseSpeed(cid) local summons = getCreatureSummons(cid) local storage = 9393 local exhaust = 0 local time = 0 if (getPlayerStorageValue(cid, storage) <= os.time()) then if getPlayerStorageValue(cid, 18000) == 10 then local nome = getItemName(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid) local balls = idballs[getPlayerSlotItem(cid,8).itemid] local poke_name = nome:match('(.-) '..balls[1]) local action_id = getItemAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "aid") doChangeSpeed(cid, -(getCreatureSpeed(cid) - getCreatureBaseSpeed(cid))) setPlayerStorageValue(cid, storage, os.time()+exhaust) doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 18000, 7) setPlayerStorageValue(cid, 25000, 6) local monster = doCreateMonster(poke_name, getCreaturePosition(cid)) doConvinceCreature(cid, monster) doCreatureAddHealth(monster, -(tonumber(getPokemonMaxLife(poke_name) - action_id))) doPlayerSay(cid, poke_name .. ", I'm tired of riding!", TALKTYPE_SAY) return true end if isPremium(cid) == FALSE then return doPlayerSendCancel(cid, "Você não é premium account.") end if #getCreatureSummons(cid) < 1 then return doPlayerSendCancel(cid, "Para dar ride você precisa de um pokemon") end local pokemon = pokes[getCreatureName(getCreatureSummons(cid)[1])] local name = getCreatureName(getCreatureSummons(cid)[1]) if not pokes[name] then return doPlayerSendCancel(cid, "Este pokemon não pode dar ride.") end setPlayerStorageValue(cid, storage, os.time()+exhaust) doChangeSpeed(cid, pokemon[2]) setPlayerStorageValue(cid, 18000, 10) setPlayerStorageValue(cid, 25000, 5) doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1) setPlayerStorageValue(cid,10000,pokemon[1]) setPlayerStorageValue(cid,8889,pokemon[2]) doItemSetAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "aid", getCreatureHealth(getCreatureSummons(cid)[1])) function getPokemonId(summons) for _, pid in ipairs(summons) do return pid end end doRemoveCreature(getPokemonId(summons)) doPlayerSay(cid, name .. ", Let's go RIDE!", TALKTYPE_SAY) end end