Ir para conteúdo

Featured Replies

Postado

Você consegue retornar o pokémon depois de solta-lo? ou quando você solta ele morre?

Tenta assim: " Go/Back da actions"

 

 


function onUse(cid, item, fromPosition, itemEx, toPosition)
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
----- Config -----
local MaximoSummon = 1
local nome = getItemName(item.uid)
local poke_name = nome:match('(.-) Pokeball')
local summons = getCreatureSummons(cid)
local action_id = getItemAttribute(item.uid, "aid")
----- Config -----
    if getItemAttribute(item.uid, "aid") == -1 then
    return doPlayerSendCancel(cid, "Seu pokemon está morto.")
    end    

    if getPlayerStorageValue(cid, 25000) == 5 then       
    return doPlayerSendCancel(cid, "Você está montando.")
    end
    if getPlayerStorageValue(cid, 23000) == 5 then
    return doPlayerSendCancel(cid, "Você está voando.")
    end
local summons = getCreatureSummons(cid)
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
doPlayerSendCancel(cid, "Para Soltar seus pokemons, coloque-os no slot da pokeball.")
return TRUE
end
if(table.maxn(summons) < MaximoSummon) then -- no summons
creature = doSummonCreature(poke_name, getCreaturePosition(cid))
registerCreatureEvent(creature, "DiePoke")
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(cid, "LogoutPoke")
doPlayerSay(cid, "Go,"..poke_name.."!!", TALKTYPE_ORANGE_1)
doSendMagicEffect(getCreaturePosition(creature), 188)

doConvinceCreature(cid, creature)
doTransformItem(getPlayerSlotItem(cid,8).uid, 2531, 1)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball")
        if action_id ~= 0 then
doCreatureAddHealth(creature, -(tonumber(getPokemonMaxLife(poke_name) - action_id)))
        else
        doCreatureAddHealth(creature, getPokemonMaxLife(poke_name))
        end
else
for _, pid in ipairs(summons) do
if (table.maxn(summons) >= 1) then
doItemSetAttribute(item.uid, "aid", getCreatureHealth(summons[1]))
doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 188)
doPlayerSay(cid, "Back,"..poke_name..".", TALKTYPE_ORANGE_1)
doRemoveCreature(pid)
doTransformItem(getPlayerSlotItem(cid,8).uid, 2532, 1)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball")
end
end
end
return true
end
 

 

 

Editado por karlkalvin (veja o histórico de edições)

                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Assinatura~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                pmnz1.jpg

  • Respostas 15
  • Visualizações 953
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Bodak Reborn
    Bodak Reborn

    Vê se no goback.lua não tem nenhuma verificação para caso o tile que o pokémon sair seja protection. A linha que summona o pokémon deve ser essa: doSummonMonster(cid, pokemon)

Posted Images

Postado
  • Autor
8 minutos atrás, karlkalvin disse:

Você consegue retornar o pokémon depois de solta-lo? ou quando você solta ele morre?

Tenta assim: " Go/Back da actions"

  Ocultar conteúdo

 


function onUse(cid, item, fromPosition, itemEx, toPosition)
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
----- Config -----
local MaximoSummon = 1
local nome = getItemName(item.uid)
local poke_name = nome:match('(.-) Pokeball')
local summons = getCreatureSummons(cid)
local action_id = getItemAttribute(item.uid, "aid")
----- Config -----
    if getItemAttribute(item.uid, "aid") == -1 then
    return doPlayerSendCancel(cid, "Seu pokemon está morto.")
    end    

    if getPlayerStorageValue(cid, 25000) == 5 then       
    return doPlayerSendCancel(cid, "Você está montando.")
    end
    if getPlayerStorageValue(cid, 23000) == 5 then
    return doPlayerSendCancel(cid, "Você está voando.")
    end
local summons = getCreatureSummons(cid)
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
doPlayerSendCancel(cid, "Para Soltar seus pokemons, coloque-os no slot da pokeball.")
return TRUE
end
if(table.maxn(summons) < MaximoSummon) then -- no summons
creature = doSummonCreature(poke_name, getCreaturePosition(cid))
registerCreatureEvent(creature, "DiePoke")
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(cid, "LogoutPoke")
doPlayerSay(cid, "Go,"..poke_name.."!!", TALKTYPE_ORANGE_1)
doSendMagicEffect(getCreaturePosition(creature), 188)

doConvinceCreature(cid, creature)
doTransformItem(getPlayerSlotItem(cid,8).uid, 2531, 1)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball")
        if action_id ~= 0 then
doCreatureAddHealth(creature, -(tonumber(getPokemonMaxLife(poke_name) - action_id)))
        else
        doCreatureAddHealth(creature, getPokemonMaxLife(poke_name))
        end
else
for _, pid in ipairs(summons) do
if (table.maxn(summons) >= 1) then
doItemSetAttribute(item.uid, "aid", getCreatureHealth(summons[1]))
doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 188)
doPlayerSay(cid, "Back,"..poke_name..".", TALKTYPE_ORANGE_1)
doRemoveCreature(pid)
doTransformItem(getPlayerSlotItem(cid,8).uid, 2532, 1)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball")
end
end
end
return true
end
 

 

 

@karlkalvin

Esta tudo normal, porém ele não entra no CP ! Ele fica la fora.

Esta retornando tudo normal porém ele não entra no CP!

SEGUE OS PRINTS:

PRINT 1.png

PRINT 2.png

PRINT 3.png

Alguém ?

PF gente, me ajudem ! Rep +++++++

Editado por DedeMin (veja o histórico de edições)

Postado
  • Autor

@Enzo CaueCara, o otpokemon foi derivado desta base, da sim para corrigir os erros, porém eu não mexo muito bem de scripts!

 

Config.lua obs( eu apaguei as informações do server ) mais não alterei nada.

Spoiler

-- The Forgotten Server Config

    -- Account manager
    accountManager = true
    namelockManager = true
    newPlayerChooseVoc = false
    newPlayerSpawnPosX = 1055
    newPlayerSpawnPosY = 1046
    newPlayerSpawnPosZ = 5
    newPlayerTownId = 11
    newPlayerLevel = 20
    newPlayerMagicLevel = 0
    generateAccountNumber = false

    notationsToBan = 3
    warningsToFinalBan = 4
    warningsToDeletion = 5
    banLength = 7 * 24 * 60 * 60
    killsBanLength = 7 * 24 * 60 * 60
    finalBanLength = 30 * 24 * 60 * 60
    ipBanishmentLength = 1 * 24 * 60 * 60
    broadcastBanishments = true
    maxViolationCommentSize = 200
    violationNameReportActionType = 2
    autoBanishUnknownBytes = false

    -- Battle
    -- NOTE: showHealingDamageForMonsters inheritates from showHealingDamage.
    -- loginProtectionPeriod is the famous Tibia anti-magebomb system.
    -- deathLostPercent set to nil enables manual mode.
    worldType = ""
    protectionLevel = 1000000
    pvpTileIgnoreLevelAndVocationProtection = true
    pzLocked = 10 * 1000
    huntingDuration = 60 * 1000
    criticalHitChance = 7
    criticalHitMultiplier = 1
    displayCriticalHitNotify = true
    removeWeaponAmmunition = true
    removeWeaponCharges = true
    removeRuneCharges = true
    whiteSkullTime = 15 * 60 * 1000
    noDamageToSameLookfeet = true
    showHealingDamage = true
    showHealingDamageForMonsters = true
    fieldOwnershipDuration = 5 * 1000
    stopAttackingAtExit = true
    oldConditionAccuracy = true
    loginProtectionPeriod = 10 * 1000
    deathLostPercent = 10
    stairhopDelay = 2 * 1000
    pushCreatureDelay = 2 * 1000
    deathContainerId = 1987
    gainExperienceColor = 215
    addManaSpentInPvPZone = true
    squareColor = 0
    allowFightback = true


    -- Connection config
    worldId = 0
    ip = "127.0.0.1"
    bindOnlyConfiguredIpAddress = false
    loginPort = 7171
    gamePort = 7172
    adminPort = 7171
    statusPort = 7171
    loginTries = 10
    retryTimeout = 5 * 1000
    loginTimeout = 60 * 1000
    maxPlayers = 50
    motd = "!"
    displayOnOrOffAtCharlist = false
    onePlayerOnlinePerAccount = true
    allowClones = false
    serverName = ""
    loginMessage = "!"
    statusTimeout = 5 * 60 * 1000
    replaceKickOnLogin = true
    forceSlowConnectionsToDisconnect = false
    loginOnlyWithLoginServer = false
    premiumPlayerSkipWaitList = true

    -- Database
    -- NOTE: sqlFile is used only by sqlite database, and sqlKeepAlive by mysql database.
    -- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value.
    sqlType = "sqlite"
    sqlHost = "localhost"
    sqlPort = 3306
    sqlUser = "root"
    sqlPass = ""
    sqlDatabase = "pkmflash"
    sqlFile = ""
    sqlKeepAlive = 0
    mysqlReadTimeout = 10
    mysqlWriteTimeout = 10
    encryptionType = "plain"

    -- Deathlist
    deathListEnabled = true
    deathListRequiredTime = 1 * 60 * 1000
    deathAssistCount = 19
    maxDeathRecords = 5

    -- Guilds
    ingameGuildManagement = true
    levelToFormGuild = 8
    premiumDaysToFormGuild = 0
    guildNameMinLength = 4
    guildNameMaxLength = 20

    -- Highscores
    highscoreDisplayPlayers = 30
    updateHighscoresAfterMinutes = 1

    -- Houses
    buyableAndSellableHouses = true
    houseNeedPremium = false
    bedsRequirePremium = true
    levelToBuyHouse = 60
    housesPerAccount = 0
    houseRentAsPrice = false
    housePriceAsRent = false
    housePriceEachSquare = 1000
    houseRentPeriod = "never"
    houseCleanOld = 0
    guildHalls = false

    -- Item usage
    timeBetweenActions = 200
    timeBetweenExActions = 1000
    hotkeyAimbotEnabled = true

    -- Map
    -- NOTE: storeTrash costs more memory, but will perform alot faster cleaning.
    mapName = ""
    mapAuthor = ""
    randomizeTiles = true
    storeTrash = true
    cleanProtectedZones = true
    mailboxDisabledTowns = "-1"

    -- Process
    -- NOTE: defaultPriority works only on Windows and niceLevel on *nix
    -- coresUsed are seperated by comma cores ids used by server process,
    -- default is -1, so it stays untouched (automaticaly assigned by OS).
    defaultPriority = "high"
    niceLevel = 5
    coresUsed = "-1"

    -- Startup
    optimizeDatabaseAtStartup = true
    removePremiumOnInit = true
    confirmOutdatedVersion = false

    -- Spells
    formulaLevel = 5.0
    formulaMagic = 1.0
    bufferMutedOnSpellFailure = false
    spellNameInsteadOfWords = false
    emoteSpells = false

    -- Outfits
    allowChangeOutfit = true
    allowChangeColors = true
    allowChangeAddons = true
    disableOutfitsForPrivilegedPlayers = false
    addonsOnlyPremium = true

    -- Miscellaneous
    -- NOTE: promptExceptionTracerErrorBox works only with precompiled support feature,
    -- called "exception tracer" (__EXCEPTION_TRACER__ flag).
    dataDirectory = "data/"
    bankSystem = true
    displaySkillLevelOnAdvance = false
    promptExceptionTracerErrorBox = true
    separateViplistPerCharacter = false
    maximumDoorLevel = 500
    maxMessageBuffer = 4

    -- Saving-related
    -- useHouseDataStorage usage may be found at README.
    saveGlobalStorage = true
    useHouseDataStorage = false
    storePlayerDirection = false

    -- Loot
    -- monsterLootMessage 0 to disable, 1 - only party, 2 - only player, 3 - party or player (like Tibia's)
    checkCorpseOwner = true
    monsterLootMessage = 3
    monsterLootMessageType = 25

    -- Ghost mode
    ghostModeInvisibleEffect = true
    ghostModeSpellEffects = true

    -- Limits
    idleWarningTime = 14 * 60 * 1000
    idleKickTime = 15 * 60 * 1000
    expireReportsAfterReads = 1
    playerQueryDeepness = 2
    maxItemsPerPZTile = 0
    maxItemsPerHouseTile = 0

    -- Premium-related
    freePremium = false
    premiumForPromotion = true

    -- Blessings
    -- NOTE: blessingReduction* regards items/containers loss.
    -- eachBlessReduction is how much each bless reduces the experience/magic/skills loss.
    blessingOnlyPremium = true
    blessingReductionBase = 30
    blessingReductionDecreament = 5
    eachBlessReduction = 8

    -- Rates
    -- NOTE: experienceStages configuration is located in data/XML/stages.xml.
    -- rateExperienceFromPlayers 0 to disable.
    experienceStages = true
    rateExperience = 2000000.0
    rateExperienceFromPlayers = 0
    rateSkill = 3.0
    rateMagic = 16.0
    rateLoot = 14.0
    rateSpawn = 1

    -- Monster rates
    rateMonsterHealth = 1.0
    rateMonsterMana = 1.0
    rateMonsterAttack = 1.0
    rateMonsterDefense = 1.0

    -- Experience from players
    -- NOTE: min~Threshold* set to 0 will disable the minimum threshold:
    -- player will gain experience from every lower leveled player.
    -- max~Threshold* set to 0 will disable the maximum threshold:
    -- player will gain experience from every higher leveled player.
    minLevelThresholdForKilledPlayer = 0.9
    maxLevelThresholdForKilledPlayer = 1.1

    -- Stamina
    -- NOTE: Stamina is stored in miliseconds, so seconds are multiplied by 1000.
    -- rateStaminaHits multiplies every hit done a creature, which are later
    -- multiplied by player attack speed.
    -- rateStaminaGain is divider of every logged out second, eg:
    -- 60000 / 3 = 20000 milliseconds, what gives 20 stamina seconds for 1 minute being logged off.
    -- rateStaminaThresholdGain is divider for the premium stamina.
    -- staminaRatingLimit* is in minutes.
    rateStaminaLoss = 1
    rateStaminaGain = 3
    rateStaminaThresholdGain = 12
    staminaRatingLimitTop = 41 * 60
    staminaRatingLimitBottom = 14 * 60
    rateStaminaAboveNormal = 1.5
    rateStaminaUnderNormal = 0.5
    staminaThresholdOnlyPremium = true

    -- Party
    -- NOTE: experienceShareLevelDifference is float number.
    -- experienceShareLevelDifference is highestLevel * value
    experienceShareRadiusX = 30
    experienceShareRadiusY = 30
    experienceShareRadiusZ = 1
    experienceShareLevelDifference = 2 / 3
    extraPartyExperienceLimit = 20
    extraPartyExperiencePercent = 5
    experienceShareActivity = 2 * 60 * 1000

    -- Global save
    -- NOTE: globalSaveHour means like 03:00, not that it will save every 3 hours,
    -- if you want such a system please check out data/globalevents/globalevents.xml.
    globalSaveEnabled = false
    globalSaveHour = 8
    shutdownAtGlobalSave = true
    cleanMapAtGlobalSave = false

    -- Spawns
    deSpawnRange = 2
    deSpawnRadius = 50

    -- Summons
    maxPlayerSummons = 2
    teleportAllSummons = true
    teleportPlayerSummons = true

    -- Status
    ownerName = ""
    ownerEmail = ""
    url = ""
    location = ""
    displayGamemastersWithOnlineCommand = false

    -- Logs
    -- NOTE: This kind of logging does not work in GUI version.
    -- For such, please compile the software with __GUI_LOGS__ flag.
    adminLogsEnabled = false
    displayPlayersLogging = true
    prefixChannelLogs = ""
    runFile = ""
    outLogName = ""
    errorLogName = ""
    truncateLogsOnStartup = false
 

 

Editado por DedeMin (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo