• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    Problemita con tfs 0.4.3777

    Compartir:

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

    1default Problemita con tfs 0.4.3777 el Vie Jul 27, 2018 10:44 pm

    Laloomega

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Hola tibiaface, tengo un problema con mi tfs, no es grave, nada de eso nadamas que si es castrante, en el .exe me sale esto
    Spoiler:

    [21:44:15.962] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such table: z_ots_comunication (SELECT * FROM z_ots_comunication WHERE "type" = 'login';)
    [21:44:16.021] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such table: z_ots_guildcomunication (SELECT * FROM z_ots_guildcomunication WHERE "type" = 'login';)
    me han dicho que ponga algo en data>lib>050-functions pero no se donde ponerlo este es mi .lua del 050
    Spoiler:

    function doPlayerGiveItem(cid, itemid, amount, subType)
    local item = 0
    if(isItemStackable(itemid)) then
    item = doCreateItemEx(itemid, amount)
    if(doPlayerAddItemEx(cid, item, true) ~= RETURNVALUE_NOERROR) then
    return false
    end
    else
    for i = 1, amount do
    item = doCreateItemEx(itemid, subType)
    if(doPlayerAddItemEx(cid, item, true) ~= RETURNVALUE_NOERROR) then
    return false
    end
    end
    end

    return true
    end

    function doPlayerGiveItemContainer(cid, containerid, itemid, amount, subType)
    for i = 1, amount do
    local container = doCreateItemEx(containerid, 1)
    for x = 1, getContainerCapById(containerid) do
    doAddContainerItem(container, itemid, subType)
    end

    if(doPlayerAddItemEx(cid, container, true) ~= RETURNVALUE_NOERROR) then
    return false
    end
    end

    return true
    end

    function doPlayerTakeItem(cid, itemid, amount)
    return getPlayerItemCount(cid, itemid) >= amount and doPlayerRemoveItem(cid, itemid, amount)
    end

    function doPlayerBuyItem(cid, itemid, count, cost, charges)
    return doPlayerRemoveMoney(cid, cost) and doPlayerGiveItem(cid, itemid, count, charges)
    end

    function doPlayerBuyItemContainer(cid, containerid, itemid, count, cost, charges)
    return doPlayerRemoveMoney(cid, cost) and doPlayerGiveItemContainer(cid, containerid, itemid, count, charges)
    end

    function doPlayerSellItem(cid, itemid, count, cost)
    if(not doPlayerTakeItem(cid, itemid, count)) then
    return false
    end

    if(not doPlayerAddMoney(cid, cost)) then
    error('[doPlayerSellItem] Could not add money to: ' .. getPlayerName(cid) .. ' (' .. cost .. 'gp).')
    end

    return true
    end

    function doPlayerWithdrawMoney(cid, amount)
    if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
    return false
    end

    local balance = getPlayerBalance(cid)
    if(amount > balance or not doPlayerAddMoney(cid, amount)) then
    return false
    end

    doPlayerSetBalance(cid, balance - amount)
    return true
    end

    function doPlayerDepositMoney(cid, amount)
    if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
    return false
    end

    if(not doPlayerRemoveMoney(cid, amount)) then
    return false
    end

    doPlayerSetBalance(cid, getPlayerBalance(cid) + amount)
    return true
    end

    function doPlayerAddStamina(cid, minutes)
    return doPlayerSetStamina(cid, getPlayerStamina(cid) + minutes)
    end

    function isPremium(cid)
    return (isPlayer(cid) and (getPlayerPremiumDays(cid) > 0 or getBooleanFromString(getConfigValue('freePremium'))))
    end

    function getMonthDayEnding(day)
    if(day == "01" or day == "21" or day == "31") then
    return "st"
    elseif(day == "02" or day == "22") then
    return "nd"
    elseif(day == "03" or day == "23") then
    return "rd"
    end

    return "th"
    end

    function getMonthString(m)
    return os.date("%B", os.time{year = 1970, month = m, day = 1})
    end

    function getArticle(str)
    return str:find("[AaEeIiOoUuYy]") == 1 and "an" or "a"
    end

    function isNumeric(str)
    return tonumber(str) ~= nil
    end

    function doNumberFormat(i)
    local str, found = string.gsub(i, "(%d)(%d%d%d)$", "%1,%2", 1), 0
    repeat
    str, found = string.gsub(ret, "(%d)(%d%d%d),", "%1,%2,", 1)
    until found == 0
    return str
    end

    function doPlayerAddAddons(cid, addon)
    for i = 0, table.maxn(maleOutfits) do
    doPlayerAddOutfit(cid, maleOutfits[i], addon)
    end

    for i = 0, table.maxn(femaleOutfits) do
    doPlayerAddOutfit(cid, femaleOutfits[i], addon)
    end
    end

    function doPlayerWithdrawAllMoney(cid)
    return doPlayerWithdrawMoney(cid, getPlayerBalance(cid))
    end

    function doPlayerDepositAllMoney(cid)
    return doPlayerDepositMoney(cid, getPlayerMoney(cid))
    end

    function doPlayerTransferAllMoneyTo(cid, target)
    return doPlayerTransferMoneyTo(cid, target, getPlayerBalance(cid))
    end

    function playerExists(name)
    return getPlayerGUIDByName(name) ~= nil
    end

    function getTibiaTime()
    local minutes, hours = getWorldTime(), 0
    while (minutes > 60) do
    hours = hours + 1
    minutes = minutes - 60
    end

    return {hours = hours, minutes = minutes}
    end

    function doWriteLogFile(file, text)
    local f = io.open(file, "a+")
    if(not f) then
    return false
    end

    f:write("[" .. os.date("%d/%m/%Y %H:%M:%S") .. "] " .. text .. "\n")
    f:close()
    return true
    end

    function getExperienceForLevel(lv)
    lv = lv - 1
    return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
    end

    function doMutePlayer(cid, time)
    local condition = createConditionObject(CONDITION_MUTED)
    setConditionParam(condition, CONDITION_PARAM_TICKS, time * 1000)
    return doAddCondition(cid, condition)
    end

    function getPlayerGroupName(cid)
    return getGroupInfo(getPlayerGroupId(cid)).name
    end

    function getPlayerVocationName(cid)
    return getVocationInfo(getPlayerVocation(cid)).name
    end

    function getPromotedVocation(vid)
    return getVocationInfo(vid).promotedVocation
    end

    function doPlayerRemovePremiumDays(cid, days)
    return doPlayerAddPremiumDays(cid, -days)
    end

    function getPlayerMasterPos(cid)
    return getTownTemplePosition(getPlayerTown(cid))
    end

    function getHouseOwner(houseId)
    return getHouseInfo(houseId).owner
    end

    function getHouseName(houseId)
    return getHouseInfo(houseId).name
    end

    function getHouseEntry(houseId)
    return getHouseInfo(houseId).entry
    end

    function getHouseRent(houseId)
    return getHouseInfo(houseId).rent
    end

    function getHousePrice(houseId)
    return getHouseInfo(houseId).price
    end

    function getHouseTown(houseId)
    return getHouseInfo(houseId).town
    end

    function getHouseDoorsCount(houseId)
    return table.maxn(getHouseInfo(houseId).doors)
    end

    function getHouseBedsCount(houseId)
    return table.maxn(getHouseInfo(houseId).beds)
    end

    function getHouseTilesCount(houseId)
    return table.maxn(getHouseInfo(houseId).tiles)
    end

    function getItemNameById(itemid)
    return getItemDescriptionsById(itemid).name
    end

    function getItemPluralNameById(itemid)
    return getItemDescriptionsById(itemid).plural
    end

    function getItemArticleById(itemid)
    return getItemDescriptionsById(itemid).article
    end

    function getItemName(uid)
    return getItemDescriptions(uid).name
    end

    function getItemPluralName(uid)
    return getItemDescriptions(uid).plural
    end

    function getItemArticle(uid)
    return getItemDescriptions(uid).article
    end

    function getItemText(uid)
    return getItemDescriptions(uid).text
    end

    function getItemSpecialDescription(uid)
    return getItemDescriptions(uid).special
    end

    function getItemWriter(uid)
    return getItemDescriptions(uid).writer
    end

    function getItemDate(uid)
    return getItemDescriptions(uid).date
    end

    function getTilePzInfo(pos)
    return getTileInfo(pos).protection
    end

    function getTileZoneInfo(pos)
    local tmp = getTileInfo(pos)
    if(tmp.pvp) then
    return 2
    end

    if(tmp.nopvp) then
    return 1
    end

    return 0
    end

    function doShutdown()
    return doSetGameState(GAMESTATE_SHUTDOWN)
    end

    function doSummonCreature(name, pos, displayError)
    local displayError, cid = displayError or true, doCreateMonster(name, pos, displayError)
    if(not cid) then
    cid = doCreateNpc(name, pos, displayError)
    end

    return cid
    end

    function getOnlinePlayers()
    local tmp = getPlayersOnline()
    local players = {}
    for i, cid in ipairs(tmp) do
    table.insert(players, getCreatureName(cid))
    end

    return players
    end

    function getPlayerByName(name)
    local cid = getCreatureByName(name)
    return isPlayer(cid) and cid or nil
    end

    function isPlayer(cid)
    return isCreature(cid) and cid >= AUTOID_PLAYERS and cid < AUTOID_MONSTERS
    end

    function isPlayerGhost(cid)
    if(not isPlayer(cid)) then
    return false
    end

    return getCreatureCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) or getPlayerFlagValue(cid, PLAYERFLAG_CANNOTBESEEN)
    end

    function isMonster(cid)
    return isCreature(cid) and cid >= AUTOID_MONSTERS and cid < AUTOID_NPCS
    end

    function isNpc(cid)
    return isCreature(cid) and cid >= AUTOID_NPCS
    end

    function doPlayerSetExperienceRate(cid, value)
    return doPlayerSetRate(cid, SKILL__LEVEL, value)
    end

    function doPlayerSetMagicRate(cid, value)
    return doPlayerSetRate(cid, SKILL__MAGLEVEL, value)
    end

    function doPlayerAddLevel(cid, amount, round)
    local experience, level = 0, getPlayerLevel(cid)
    if(amount > 0) then
    experience = getExperienceForLevel(level + amount) - (round and getPlayerExperience(cid) or getExperienceForLevel(level))
    else
    experience = -((round and getPlayerExperience(cid) or getExperienceForLevel(level)) - getExperienceForLevel(level + amount))
    end

    return doPlayerAddExperience(cid, experience)
    end

    function doPlayerAddMagLevel(cid, amount)
    for i = 1, amount do
    doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid, getPlayerMagLevel(cid, true) + 1) - getPlayerSpentMana(cid)) / getConfigInfo('rateMagic'))
    end
    return true
    end

    function doPlayerAddSkill(cid, skill, amount, round)
    if(skill == SKILL__LEVEL) then
    return doPlayerAddLevel(cid, amount, round)
    elseif(skill == SKILL__MAGLEVEL) then
    return doPlayerAddMagLevel(cid, amount)
    end

    return doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill'))
    end

    function getPartyLeader(cid)
    local party = getPartyMembers(cid)
    if(type(party) ~= 'table') then
    return 0
    end

    return party[1]
    end

    function isInParty(cid)
    return type(getPartyMembers(cid)) == 'table'
    end

    function isPrivateChannel(channelId)
    return channelId >= CHANNEL_PRIVATE
    end

    function doPlayerResetIdleTime(cid)
    return doPlayerSetIdleTime(cid, 0)
    end

    function doBroadcastMessage(text, class)
    local class = class or MESSAGE_STATUS_WARNING
    if(type(class) == 'string') then
    local className = MESSAGE_TYPES[class]
    if(className == nil) then
    return false
    end

    class = className
    elseif(class < MESSAGE_FIRST or class > MESSAGE_LAST) then
    return false
    end

    local players = getPlayersOnline()
    for _, pid in ipairs(players) do
    doPlayerSendTextMessage(pid, class, text)
    end

    print("> Broadcasted message: \"" .. text .. "\".")
    return true
    end

    function doPlayerBroadcastMessage(cid, text, class, checkFlag, ghost)
    local checkFlag, ghost, class = checkFlag or true, ghost or false, class or TALKTYPE_BROADCAST
    if(checkFlag and not getPlayerFlagValue(cid, PLAYERFLAG_CANBROADCAST)) then
    return false
    end

    if(type(class) == 'string') then
    local className = TALKTYPE_TYPES[class]
    if(className == nil) then
    return false
    end

    class = className
    elseif(class < TALKTYPE_FIRST or class > TALKTYPE_LAST) then
    return false
    end

    local players = getPlayersOnline()
    for _, pid in ipairs(players) do
    doCreatureSay(cid, text, class, ghost, pid)
    end

    print("> " .. getCreatureName(cid) .. " broadcasted message: \"" .. text .. "\".")
    return true
    end

    function getBooleanFromString(input)
    local tmp = type(input)
    if(tmp == 'boolean') then
    return input
    end

    if(tmp == 'number') then
    return input > 0
    end

    local str = string.lower(tostring(input))
    return (str == "yes" or str == "true" or (tonumber(str) ~= nil and tonumber(str) > 0))
    end

    function doCopyItem(item, attributes)
    local attributes = ((type(attributes) == 'table') and attributes or { "aid" })

    local ret = doCreateItemEx(item.itemid, item.type)
    for _, key in ipairs(attributes) do
    local value = getItemAttribute(item.uid, key)
    if(value ~= nil) then
    doItemSetAttribute(ret, key, value)
    end
    end

    if(isContainer(item.uid)) then
    for i = (getContainerSize(item.uid) - 1), 0, -1 do
    local tmp = getContainerItem(item.uid, i)
    if(tmp.itemid > 0) then
    doAddContainerItemEx(ret, doCopyItem(tmp, true).uid)
    end
    end
    end

    return getThing(ret)
    end

    function doRemoveThing(uid)
    if(isCreature(uid)) then
    return doRemoveCreature(uid)
    end

    return doRemoveItem(uid)
    end

    function setAttackFormula(combat, type, minl, maxl, minm, maxm, min, max)
    local min, max = min or 0, max or 0
    return setCombatFormula(combat, type, -1, 0, -1, 0, minl, maxl, minm, maxm, -min, -max)
    end

    function setHealingFormula(combat, type, minl, maxl, minm, maxm, min, max)
    local min, max = min or 0, max or 0
    return setCombatFormula(combat, type, 1, 0, 1, 0, minl, maxl, minm, maxm, min, max)
    end

    function doChangeTypeItem(uid, subtype)
    local thing = getThing(uid)
    if(thing.itemid < 100) then
    return false
    end

    local subtype = subtype or 1
    return doTransformItem(thing.uid, thing.itemid, subtype)
    end

    function doSetItemText(uid, text, writer, date)
    local thing = getThing(uid)
    if(thing.itemid < 100) then
    return false
    end

    doItemSetAttribute(uid, "text", text)
    if(writer ~= nil) then
    doItemSetAttribute(uid, "writer", tostring(writer))
    if(date ~= nil) then
    doItemSetAttribute(uid, "date", tonumber(date))
    end
    end

    return true
    end

    function getFluidSourceType(itemid)
    local item = getItemInfo(itemid)
    return item and item.fluidSource or false
    end

    function getDepotId(uid)
    return getItemAttribute(uid, "depotid") or false
    end

    function getItemDescriptions(uid)
    local thing = getThing(uid)
    if(thing.itemid < 100) then
    return false
    end

    local item = getItemInfo(thing.itemid)
    return {
    name = getItemAttribute(uid, "name") or item.name,
    plural = getItemAttribute(uid, "pluralname") or item.plural,
    article = getItemAttribute(uid, "article") or item.article,
    special = getItemAttribute(uid, "description") or "",
    text = getItemAttribute(uid, "text") or "",
    writer = getItemAttribute(uid, "writer") or "",
    date = getItemAttribute(uid, "date") or 0
    }
    end

    function getItemWeightById(itemid, count, precision)
    local item, count, precision = getItemInfo(itemid), count or 1, precision or false
    if(not item) then
    return false
    end

    if(count > 100) then
    -- print a warning, as its impossible to have more than 100 stackable items without "cheating" the count
    print('[Warning] getItemWeightById', 'Calculating weight for more than 100 items!')
    end

    local weight = item.weight * count
    --[[if(precision) then
    return weight
    end

    local t = string.explode(tostring(weight), ".")
    if(table.maxn(t) == 2) then
    return tonumber(t[1] .. "." .. string.sub(t[2], 1, 2))
    end]]--

    return weight
    end

    function getItemWeaponType(uid)
    local thing = getThing(uid)
    if(thing.itemid < 100) then
    return false
    end

    return getItemInfo(thing.itemid).weaponType
    end

    function getItemRWInfo(uid)
    local thing = getThing(uid)
    if(thing.itemid < 100) then
    return false
    end

    local item, flags = getItemInfo(thing.itemid), 0
    if(item.readable) then
    flags = 1
    end

    if(item.writable) then
    flags = flags + 2
    end

    return flags
    end

    function getItemLevelDoor(itemid)
    local item = getItemInfo(itemid)
    return item and item.levelDoor or false
    end

    function isItemStackable(itemid)
    local item = getItemInfo(itemid)
    return item and item.stackable or false
    end

    function isItemRune(itemid)
    local item = getItemInfo(itemid)
    return item and item.type == ITEM_TYPE_RUNE or false
    end

    function isItemDoor(itemid)
    local item = getItemInfo(itemid)
    return item and item.type == ITEM_TYPE_DOOR or false
    end

    function isItemContainer(itemid)
    local item = getItemInfo(itemid)
    return item and item.group == ITEM_GROUP_CONTAINER or false
    end

    function isItemFluidContainer(itemid)
    local item = getItemInfo(itemid)
    return item and item.group == ITEM_GROUP_FLUID or false
    end

    function isItemMovable(itemid)
    local item = getItemInfo(itemid)
    return item and item.movable or false
    end

    function isCorpse(uid)
    local thing = getThing(uid)
    if(thing.itemid < 100) then
    return false
    end

    local item = getItemInfo(thing.itemid)
    return item and item.corpseType ~= 0 or false
    end

    function getContainerCapById(itemid)
    local item = getItemInfo(itemid)
    if(not item or item.group ~= 2) then
    return false
    end

    return item.maxItems
    end

    function getMonsterAttackSpells(name)
    local monster = getMonsterInfo(name)
    return monster and monster.attacks or false
    end

    function getMonsterHealingSpells(name)
    local monster = getMonsterInfo(name)
    return monster and monster.defenses or false
    end

    function getMonsterLootList(name)
    local monster = getMonsterInfo(name)
    return monster and monster.loot or false
    end

    function getMonsterSummonList(name)
    local monster = getMonsterInfo(name)
    return monster and monster.summons or false
    end

    function choose(...)
    local arg = {...}
    return arg[math.random(1, table.maxn(arg))]
    end

    Ver perfil de usuario

    2default Re: Problemita con tfs 0.4.3777 el Vie Jul 27, 2018 10:59 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    ejecuta esto en tu base de datos sqlite con el sqlitestudio

    Código:
    DROP TABLE IF EXISTS z_ots_guildcomunication;
    CREATE TABLE z_ots_guildcomunication (
       id        INT( 11 )       NOT NULL,
       name      VARCHAR( 255 )  NOT NULL,
       type      VARCHAR( 255 )  NOT NULL,
       [action]  VARCHAR( 255 )  NOT NULL,
       param1    VARCHAR( 255 )  NOT NULL,
       param2    VARCHAR( 255 )  NOT NULL,
       param3    VARCHAR( 255 )  NOT NULL,
       param4    VARCHAR( 255 )  NOT NULL,
       param5    VARCHAR( 255 )  NOT NULL,
       param6    VARCHAR( 255 )  NOT NULL,
       param7    VARCHAR( 255 )  NOT NULL,
       delete_it INT( 2 )        NOT NULL
                                 DEFAULT '1',
       PRIMARY KEY ( id )
    );



    aqui esta la otra

    Código:
    DROP TABLE IF EXISTS z_ots_comunication;
    CREATE TABLE z_ots_comunication (
       id        INT( 11 )       NOT NULL,
       name      VARCHAR( 255 )  NOT NULL,
       type      VARCHAR( 255 )  NOT NULL,
       [action]  VARCHAR( 255 )  NOT NULL,
       param1    VARCHAR( 255 )  NOT NULL,
       param2    VARCHAR( 255 )  NOT NULL,
       param3    VARCHAR( 255 )  NOT NULL,
       param4    VARCHAR( 255 )  NOT NULL,
       param5    VARCHAR( 255 )  NOT NULL,
       param6    VARCHAR( 255 )  NOT NULL,
       param7    VARCHAR( 255 )  NOT NULL,
       delete_it INT( 2 )        NOT NULL
                                 DEFAULT '1',
       PRIMARY KEY ( id )
    );



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

    3default Re: Problemita con tfs 0.4.3777 el Vie Jul 27, 2018 11:25 pm

    Laloomega

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Para solucionar este problema se ejecutan estos 2 en el sqlite 
    Spoiler:

    DROP TABLE IF EXISTS z_ots_comunication;
    CREATE TABLE z_ots_guildcomunication (
      id        INT( 11 )       NOT NULL,
      name      VARCHAR( 255 )  NOT NULL,
      type      VARCHAR( 255 )  NOT NULL,
      [action]  VARCHAR( 255 )  NOT NULL,
      param1    VARCHAR( 255 )  NOT NULL,
      param2    VARCHAR( 255 )  NOT NULL,
      param3    VARCHAR( 255 )  NOT NULL,
      param4    VARCHAR( 255 )  NOT NULL,
      param5    VARCHAR( 255 )  NOT NULL,
      param6    VARCHAR( 255 )  NOT NULL,
      param7    VARCHAR( 255 )  NOT NULL,
      delete_it INT( 2 )        NOT NULL
                                DEFAULT '1',
      PRIMARY KEY ( id )
    )

    y tambien este
    Spoiler:

    DROP TABLE IF EXISTS z_ots_guildcomunication;
    CREATE TABLE z_ots_comunication (
      id        INT( 11 )       NOT NULL,
      name      VARCHAR( 255 )  NOT NULL,
      type      VARCHAR( 255 )  NOT NULL,
      [action]  VARCHAR( 255 )  NOT NULL,
      param1    VARCHAR( 255 )  NOT NULL,
      param2    VARCHAR( 255 )  NOT NULL,
      param3    VARCHAR( 255 )  NOT NULL,
      param4    VARCHAR( 255 )  NOT NULL,
      param5    VARCHAR( 255 )  NOT NULL,
      param6    VARCHAR( 255 )  NOT NULL,
      param7    VARCHAR( 255 )  NOT NULL,
      delete_it INT( 2 )        NOT NULL
                                DEFAULT '1',
      PRIMARY KEY ( id )
    );

    Ver perfil de usuario

    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).