• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    Me sale error en consola

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default Me sale error en consola el Vie Nov 01, 2013 11:40 am

    Hola Amigis jajaja
    Tibia Face
    tengo bueno unos problemistas en mi ot primero esto

    Cuando me echo una Potions de mana o de Healing sale en la consola este error

    [31/10/2013 22:49:52] [Error - Action Interface]
    [31/10/2013 22:49:52] data/actions/scripts/liquids/potions.lua:onUse
    [31/10/2013 22:49:52] Description:
    [31/10/2013 22:49:52] data/actions/scripts/liquids/potions.lua:97: attempt to call global 'getItemParent' (a nil value)
    [31/10/2013 22:49:52] stack traceback:
    Pero igual las mana se gastan

    Haora con este puse un nuevo systema de Zombie event pero
    cuando todos entran y el event empiesa a sacar los zombie no sale y en el event me sale tal error este

    [31/10/2013 23:11:45] [Error - GlobalEvent Interface]
    [31/10/2013 23:11:45] data/globalevents/scripts/zombie/onthink.lua:onThink
    [31/10/2013 23:11:45] Description:
    [31/10/2013 23:11:45] data/lib/zombie_event.lua:123: attempt to index local 'pir' (a number value)
    [31/10/2013 23:11:45] stack traceback:
    [31/10/2013 23:11:45] data/lib/zombie_event.lua:123: in function 'spawnNewZombie'
    [31/10/2013 23:11:45] data/globalevents/scripts/zombie/onthink.lua:6: in function <data/globalevents/scripts/zombie/onthink.lua:1>
    [31/10/2013 23:11:45] [Error - GlobalEvents] Couldn't execute event: ZombieGlobalThink
    Este es el Zombie event que estoy usando

    [Tienes que estar registrado y conectado para ver este vínculo]

    Quien me ayude se gana un Megusta

    Ver perfil de usuario

    2default Re: Me sale error en consola el Vie Nov 01, 2013 11:47 am

    local config = {
    removeOnUse = "no",
    usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
    splashable = "no",
    realAnimation = "no", -- make text effect visible only for players in range 1x1
    healthMultiplier = 1.0,
    manaMultiplier = 1.0
    }

    config.removeOnUse = getBooleanFromString(config.removeOnUse)
    config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
    config.splashable = getBooleanFromString(config.splashable)
    config.realAnimation = getBooleanFromString(config.realAnimation)

    local POTIONS = {
    [8704] = {empty = 7636, splash = 2, health = {80, 120}}, -- small health potion
    [7618] = {empty = 7636, splash = 2, health = {150, 400}}, -- health potion
    [7588] = {empty = 7634, splash = 2, health = {500, 550}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
    [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
    [8473] = {empty = 7635, splash = 2, health = {850, 1125}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

    [7620] = {empty = 7636, splash = 7, mana = {110, 170}}, -- mana potion
    [7589] = {empty = 7634, splash = 7, mana = {190, 230}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
    [7590] = {empty = 7635, splash = 7, mana = {250, 325}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

    [8472] = {empty = 7635, splash = 3, health = {500, 600}, mana = {400, 500}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
    }

    local exhaust = createConditionObject(CONDITION_EXHAUST)
    setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

    function onUse(cid, item, fromPosition, itemEx, toPosition)
    local potion = POTIONS[item.itemid]
    if(not potion) then
    return false
    end

    if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
    if(not config.splashable) then
    return false
    end

    if(toPosition.x == CONTAINER_POSITION) then
    toPosition = getThingPos(item.uid)
    end

    doDecayItem(doCreateItem(2016, potion.splash, toPosition))
    doTransformItem(item.uid, potion.empty)
    return true
    end

    if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
    doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
    return true
    end

    if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
    not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
    then
    doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
    return true
    end

    local health = potion.health
    if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
    return false
    end

    local mana = potion.mana
    if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
    return false
    end

    doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
    if(not realAnimation) then
    doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
    else
    for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
    if(isPlayer(tid)) then
    doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
    end
    end
    end

    doAddCondition(cid, exhaust)
    if(not potion.empty or potion.empty == item.itemid or config.removeOnUse) then
    return true
    elseif potion.empty == item.uid then
    return doRemoveItem(item.uid)
    else
    doChangeTypeItem(item.uid, item.type - 1)
    if item.type == 1 then
    return true
    end
    end

    local v = getItemParent(item.uid)
    if not v or v.uid == 0 then
    local k = getPlayerItemById(cid, true, potion.empty)
    if k.uid > 0 and k.type < 100 and getPlayerFreeCap(cid) >= getItemInfo(potion.empty).weight then
    doChangeTypeItem(k.uid, k.type + 1)
    else
    doPlayerAddItem(cid, potion.empty, 1)
    end
    return true
    end

    local size = getContainerSize(v.uid)
    for i = 0, size-1 do
    local tmp = getContainerItem(v.uid, i)
    if tmp.itemid == potion.empty and tmp.type < 100 then
    return getPlayerFreeCap(cid) >= getItemInfo(potion.empty).weight and doChangeTypeItem(tmp.uid, tmp.type + 1) or doPlayerAddItem(cid, potion.empty, 1)
    end
    end

    if getContainerSize(v.uid) < getContainerCap(v.uid) then
    doAddContainerItem(v.uid, potion.empty)
    else
    local k = getPlayerItemById(cid, true, potion.empty)
    if k.uid > 0 and k.type < 100 and getPlayerFreeCap(cid) >= getItemInfo(potion.empty).weight then
    doChangeTypeItem(k.uid, k.type + 1)
    else
    doPlayerAddItem(cid, potion.empty, 1)
    end
    end
    return true
    end
    El Script de las potes

    Ver perfil de usuario

    3default Re: Me sale error en consola el Vie Nov 01, 2013 12:01 pm

    Psycho

    avatar
    Moderador
    Moderador
    si quieres un zmbie event mas acomodado te recomiendo este.

    [Tienes que estar registrado y conectado para ver este vínculo]



    AFC By Psycho & Alfa Server
    [Tienes que estar registrado y conectado para ver este vínculo]
    Ver perfil de usuario http://dio-pcl.ddns.net

    4default Re: Me sale error en consola el Vie Nov 01, 2013 1:11 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Afff usa este
    Código:
    local config = {
       removeOnUse = "no",
       usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
       splashable = "yes",
       range = -1,
       area = {1, 1} -- if not set correctly, the message will be sent only to user of the item
    }

    local multiplier = {
       health = 1.0,
       mana = 1.0
    }

    local POTIONS = {
       [8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion
       [7618] = {empty = 7636, splash = 42, health = {100, 200}}, -- health potion
       [7588] = {empty = 7634, splash = 42, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
       [7591] = {empty = 7635, splash = 42, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
       [8473] = {empty = 7635, splash = 42, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

       [7620] = {empty = 7636, splash = 47, mana = {70, 130}}, -- mana potion
       [7589] = {empty = 7634, splash = 47, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
       [7590] = {empty = 7635, splash = 47, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

       [8472] = {empty = 7635, splash = 43, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
    }

    for index, potion in pairs(POTIONS) do
       if(type(index) == 'number')then
          for k, v in pairs(config) do
             if(not potion[k]) then
                potion[k] = v
             end
          end

          if(potion.removeOnUse) then
             potion.removeOnUse = getBooleanFromString(potion.removeOnUse)
          end

          if(potion.usableOnTarget) then
             potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget)
          end

          if(potion.splashable) then
             potion.splashable = getBooleanFromString(potion.splashable)
          end

          if(type(potion.health) == 'table' and table.maxn(potion.health) > 1) then
             potion.health[1] = math.ceil(potion.health[1] * multiplier.health)
             potion.health[2] = math.ceil(potion.health[2] * multiplier.health)
          else
             potion.health = nil
          end


          if(type(potion.mana) == 'table' and table.maxn(potion.mana) > 1) then
             potion.mana[1] = math.ceil(potion.mana[1] * multiplier.mana)
             potion.mana[2] = math.ceil(potion.mana[2] * multiplier.mana)
          else
             potion.mana = nil
          end

          POTIONS[index] = potion
       end
    end

    function onUse(cid, item, fromPosition, itemEx, toPosition)
       local potion = POTIONS[item.itemid]
       if(not potion) then
          return false
       end

       if(not isPlayer(itemEx.uid) or (not potion.usableOnTarget and cid ~= itemEx.uid)) then
          if(not potion.splashable or not potion.splash) then
             return false
          end

          if(toPosition.x == CONTAINER_POSITION) then
             toPosition = getThingPosition(item.uid)
          end

          doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
          doRemoveItem(item.uid, 1)
          if(not potion.empty or potion.removeOnUse) then
             return true
          end

          if(fromPosition.x ~= CONTAINER_POSITION) then
             doCreateItem(potion.empty, fromPosition)
          else
             doPlayerAddItem(cid, potion.empty, 1)
          end

          return true
       end

       if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) and
          not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
       then
          doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_MONSTER, false, cid)
          return true
       end

       if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_CANUSEFAR)) then
          doPlayerSendDefaultCancel(cid, RETURNVALUE_TOOFARAWAY)
          return true
       end

       if(potion.health and not doTargetCombatHealth(cid, itemEx.uid, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
       end

       if(potion.mana and not doTargetCombatMana(cid, itemEx.uid, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
       end

       if(type(potion.area) == 'table' and table.maxn(potion.area) > 1) then
          for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), potion.area[1], potion.area[2])) do
             if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, tid)
             end
          end
       else
          doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, itemEx.uid)
          if(itemEx.uid ~= cid) then
             doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, cid)
          end
       end

       doRemoveItem(item.uid, 1)
       if(not potion.empty or potion.removeOnUse) then
          return true
       end

       if(fromPosition.x ~= CONTAINER_POSITION) then
          doCreateItem(potion.empty, fromPosition)
       else
          doPlayerAddItem(cid, potion.empty, 1)
       end

       return true
    end



    Ver perfil de usuario http://www.tibiaface.com

    5default Re: Me sale error en consola el Vie Nov 01, 2013 1:12 pm

    Psycho

    avatar
    Moderador
    Moderador
    Prueba este man!..

    Código:
    local config = {
       removeOnUse = "no",
       usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
       splashable = "no",
       realAnimation = "no", -- make text effect visible only for players in range 1x1
       healthMultiplier = 1.0,
       manaMultiplier = 1.0
    }

    config.removeOnUse = getBooleanFromString(config.removeOnUse)
    config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
    config.splashable = getBooleanFromString(config.splashable)
    config.realAnimation = getBooleanFromString(config.realAnimation)

    local POTIONS = {
       [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion
       [7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion
       [7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
       [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
       [8473] = {empty = 7635, splash = 2, health = {1100, 1100}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

       [7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion
       [7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
       [7590] = {empty = 7635, splash = 7, mana = {650, 750}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

       [8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
    }

    local exhaust = createConditionObject(CONDITION_EXHAUST)
    setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

    function onUse(cid, item, fromPosition, itemEx, toPosition)
       local potion = POTIONS[item.itemid]
       if(not potion) then
          return false
       end

       if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
          if(not config.splashable) then
             return false
          end

          if(toPosition.x == CONTAINER_POSITION) then
             toPosition = getThingPos(item.uid)
          end

          doDecayItem(doCreateItem(2016, potion.splash, toPosition))
          doTransformItem(item.uid, potion.empty)
          return true
       end

       if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
          doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
          return true
       end

       if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
          not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
       then
          doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
          return true
       end

       local health = potion.health
       if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
          return false
       end

       local mana = potion.mana
       if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
          return false
       end

       doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
       if(not realAnimation) then
          doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
       else
          for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
             if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
             end
          end
       end

       doAddCondition(cid, exhaust)
       if(not potion.empty or config.removeOnUse) then
          doRemoveItem(item.uid, 1)
          return true
       end
       doRemoveItem(item.uid, 1)
       return true
    end



    AFC By Psycho & Alfa Server
    [Tienes que estar registrado y conectado para ver este vínculo]
    Ver perfil de usuario http://dio-pcl.ddns.net

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).