gabrielmotta1 0 Postado Setembro 18, 2011 Share Postado Setembro 18, 2011 (editado) Precdo De Um script Pos Animado Um Lugar Que Fica Aparecendo Mensagen tipo Bem Vindo Pra Ot9.10 ja testei alguns de 8.6 mas n funcionou aki fica dando um erro stack traceback: [C]: in function 'error' data/lib/050-function.lua:711 in function 'dosendanimatedtext' data/globalevents/scripts/info.texto:4 in function <data/globalevents/script/texto.lua> Quem Me Ajudar Ganha Rep+ Editado Setembro 18, 2011 por gabrielmotta1 Link para o comentário https://xtibia.com/forum/topic/168107-pos-animada/ Compartilhar em outros sites More sharing options...
maurano 2 Postado Setembro 26, 2011 Share Postado Setembro 26, 2011 kra.. acredito que seja "DoSendAnimatedText" com maiúsculas! tenta troca no script e fala se resolveu Link para o comentário https://xtibia.com/forum/topic/168107-pos-animada/#findComment-1108009 Compartilhar em outros sites More sharing options...
gabrielmotta1 0 Postado Setembro 29, 2011 Autor Share Postado Setembro 29, 2011 Troquei mais n adiantou nada ja tentei varios escripts de pos animada mais todos dao esse erro eu usso o 4fun server Link para o comentário https://xtibia.com/forum/topic/168107-pos-animada/#findComment-1109221 Compartilhar em outros sites More sharing options...
maurano 2 Postado Setembro 29, 2011 Share Postado Setembro 29, 2011 Eae kra!! .. então a seção esta errada!! você deveria ter ido em "duvidas sobre scripts" ou em "pedidos de scripts" mas dps alguem move você! agora vou tentar te ajudar! Vá em globalevents/scripts - copie e cole qual quer arquivo la .lua e renomeie para efeitos.lua(ou algum nome que você deseje). Agora dentro dele você apaga tudo e coloca : function onThink(interval, lastExecution) pos1 = {x = 10, y = 20, z = 7, stackpos = 0} doSendMagicEffect(pos1, 33) doSendAnimatedText(pos1, "Teleports!!!",math.random(1,149)) return TRUE end Bom.. axo que não tem mt segredo. Ali em "pos1" você coloca o lugar onde você quer q o texto ou a animaçao apareça Ali em "doSendMagicEffect(pos1,33)" é onde diz o efeito que sera jogado, que no caso é o efeito 33, mas como você quer 1 texto e nao 1 efeito você pode apagar essa linha! E ali em "doSendAnimatedText(pos1, "texto que você quer aqui",math.random(1,149)" é onde diz o texto... ali em "pos1" é o lugar que você configurou acima, dps você coloca o texto entre aspas "" e o "math.random" é que a cor do texto sera em um random entre 1 e 149. Caso você queria adicionar outra coordenada ficará assim! : function onThink(interval, lastExecution) pos1 = {x = 10, y = 20, z = 7, stackpos = 0} pos2 = {x = 30, y = 40, z = 8, stackpos = 0} doSendAnimatedText(pos1, "Bem Vindo ao OT9.10",math.random(1,149)) doSendAnimatedText(pos2, "Teleports!!",math.random(1,149)) return TRUE end Agora você vai em Globalevents/globalevents.xml e la em baixo antes de "</globalevents> você coloca : <globalevent name="EfeitosGerais" interval="3" script="efeitos.lua"/> name = nome interval = intervalo de tempo, que no caso esta 3(segundos), entao o texto ou a animaçao vai ser disparada de 3 em 3 segundos... mas você pode configurar ao seu gosto! script = o nome certinho do script que no caso agora é "efeitos.lua" bom... o script é +- meu... ele estava pronto eu apenas dei uma facilitada e uma limpada nele..mas tambem nao sei quem fez ele pois ja veio com meu OT! testei ele aqui no meu ot que tambem é 8.60!! espero que funcione ai ^^ Link para o comentário https://xtibia.com/forum/topic/168107-pos-animada/#findComment-1109263 Compartilhar em outros sites More sharing options...
gabrielmotta1 0 Postado Setembro 29, 2011 Autor Share Postado Setembro 29, 2011 Não funciono aki deu o mesmo ero eu uso um ot 9.10 4 fun serve ja testei varios e deu mesmo erro Não funciono aki deu o mesmo ero eu uso um ot 9.10 4 fun serve ja testei varios e deu mesmo erro Link para o comentário https://xtibia.com/forum/topic/168107-pos-animada/#findComment-1109332 Compartilhar em outros sites More sharing options...
maurano 2 Postado Setembro 29, 2011 Share Postado Setembro 29, 2011 (editado) kra...entao acho que erro na sua Lib, você vai ter q postar sua lib aqui no topico para que algum scripter mais experiente que eu possa te ajudar!! ^^ desculpa nao ter conseguido =/ Editado Setembro 29, 2011 por kuun1 Link para o comentário https://xtibia.com/forum/topic/168107-pos-animada/#findComment-1109356 Compartilhar em outros sites More sharing options...
gabrielmotta1 0 Postado Setembro 30, 2011 Autor Share Postado Setembro 30, 2011 Toma ai pra quem poder me ajudar 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(str, "(%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 == -1 and time or 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 doSetItemSpecialDescription(uid, str) return doItemSetAttribute(uid, "description", str) 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, false, false, displayError) if(not cid) then cid = doCreateNpc(name, pos, displayError) end return cid end function getOnlinePlayers() local players = {} for i, cid in ipairs(getPlayersOnline()) 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) return isPlayer(cid) and (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 isSummon(cid) return getCreatureMaster(cid) and getCreatureMaster(cid) ~= cid end function isUnderWater(cid) return isInArray(underWater, getTileInfo(getCreaturePosition(cid)).itemid) 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, amount = 0, getPlayerLevel(cid), amount or 1 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) local amount = amount or 1 for i = 1, amount do doPlayerAddSpentMana(cid, getPlayerRequiredMana(cid, getPlayerMagLevel(cid, true) + 1) - getPlayerSpentMana(cid), false) end return true end function doPlayerAddSkill(cid, skill, amount, round) local amount = amount or 1 if(skill == SKILL__LEVEL) then return doPlayerAddLevel(cid, amount, round) elseif(skill == SKILL__MAGLEVEL) then return doPlayerAddMagLevel(cid, amount) end for i = 1, amount do doPlayerAddSkillTry(cid, skill, getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill), false) end return true 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 for _, pid in ipairs(getPlayersOnline()) 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 for _, pid in ipairs(getPlayersOnline()) 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 doItemSetActionId(uid, aid) return doItemSetAttribute(uid, "aid", aid) 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 isContainer(uid) local thing = getThing(uid) return thing.uid > 0 and thing.items ~= nil 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 function doSendAnimatedText(...) error("doSendAnimatedText is now a deprecated function.") end vip_storage = 95883 function setPlayerVipDays(cid, days) return setPlayerStorageValue(cid, vip_storage, (os.time() + 86400 * days)) and days end function getPlayerVipDays(cid) local left, d = (getPlayerStorageValue(cid, vip_storage) - os.time()), 0 while left >= 86400 do left = left - 86400 d = d+1 end return d end function isPlayerVip(cid) return getPlayerStorageValue(cid, vip_storage) >= os.time() and TRUE or FALSE end function doPlayerAddVipDays(cid, days) return setPlayerStorageValue(cid, vip_storage, (os.time() + (86400 * getPlayerVipDays(cid)) + (86400 * days))) and days end function doPlayerRemoveVip(cid) return setPlayerStorageValue(cid, vip_storage, 0) and TRUE end Link para o comentário https://xtibia.com/forum/topic/168107-pos-animada/#findComment-1109665 Compartilhar em outros sites More sharing options...
Posts Recomendados