Jump to content
Close

Search the Community

Showing results for tags 'tfs 1.0'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community
    • Rules
    • Portal
    • Resources
    • Commerce
    • Clubs
  • OTServers
    • Discussion
    • Support
    • Tutorial
    • Download
    • Code Development
    • Contests and Events
    • Form Team
    • Advertise your Server
  • Tibia and Bots
    • Discussion
  • League of Legends's Geral
  • League of Legends's Suporte
  • Jogos Gerais's Geral
  • Nto New Season's Tópicos
  • Fakes's Fakes
  • Tibia's Geral
  • Tibia's Notícias
  • Tibia's Media
  • Tibia's Life Thread
  • Gráficos's Geral
  • Gráficos's Tutoriais
  • Gráficos's Recursos
  • Gráficos's Aprendizagem & Recursos
  • Gráficos's Galeria
  • Gráficos's Duelos & Batalhas
  • Gráficos's Suporte
  • Desenvolvimento e Programação's Geral
  • Desenvolvimento e Programação's Tutoriais
  • Desenvolvimento e Programação's Trabalhos
  • Desenvolvimento e Programação's Suporte
  • Computação's Geral
  • Computação's Dicas e Tutoriais
  • Computação's Suporte
  • Roleplaying's Roleplaying
  • Playground's (Off-topic)
  • Divulgações's Tópicos
  • Academia de Mapping's Quadro da Clopin
  • Academia de Mapping's Dev Area
  • Academia de Mapping's Quadro do Nolis
  • Academia de Mapping's Quadro do Namikaze
  • Styller's Tópicos

Calendars

  • Official Calendar
  • OTServs Calendar
  • Several Calendars

Product Groups

  • Advertisements in Top
  • Advertisements In Signatures
  • Advertisements in Topics
  • Others Advertisements

Categories

  • Sales Section
    • Scripting Sales
    • Codes Sales
    • Mapping Sales
    • Websites Sales
    • Design/Sprites Sales
    • Bots Sales
  • Look Jobs
  • Looking for Freelancers
  • Team Formation

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Localization


My character


Favorite OTServ


Bot preferred


Interests

Found 93 results

  1. Olá a todos, atualmente estou aprendendo programação e desenvolvendo um Servidor, uma das coisas chatas a se fazer era ficar alternando entre um Personagem PLAYER e outro GOD para testar algumas coisas, com esses 2 scripts eu resolvi esse problema.É um script simples que eu pretendo futuramente melhorá-lo.What does the command do? /adm - Transforma seu personagem em GOD e kika ele/player - Transforma seu personagem em PLAYER e kika ele LEMBRANDO QUE: Não é qualquer que consegue usar esse comando, você precisa ter dado a sua conta o acesso de god, assim podendo ter esse comando num Servidor Online com outros jogadores sem que os mesmos possam usar. \data\talkactions talkactions.xml Code: <talkaction words="/player" script="player.lua" /> <talkaction words="/adm" script="adm.lua" /> \data\talkactions\scripts adm.lua Code: function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(3)) position:sendMagicEffect(14) player:remove() return false end \data\talkactions\scripts player.lua function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(1)) position:sendMagicEffect(13) player:remove() return false end
  2. Olá pessoal, para quem não sabe esse script funciona da seguinte maneira, você escolhe um X item, e se o player tiver esse X item, e falar !addon "[nome do addon] ele ganha o addon full que ele escolheu. Crie um arquivo com o nome addondoll.lua em talkactions/scripts e coloque isso dentro: local outfits = { --[outfit] = {id_female, id_male} ["citizen"] = {136, 128}, ["hunter"] = {137, 129}, ["mage"] = {138, 130}, ["knight"] = {139, 131}, ["noblewoman"] = {140, 132}, ["summoner"] = {141, 133}, ["warrior"] = {142, 134}, ["barbarian"] = {147, 143}, ["druid"] = {148, 144}, ["wizard"] = {149, 145}, ["oriental"] = {150, 146}, ["pirate"] = {155, 151}, ["assassin"] = {156, 152}, ["beggar"] = {157, 153}, ["shaman"] = {158, 154}, ["norsewoman"] = {252, 251}, ["nightmare"] = {269, 268}, ["jester"] = {270, 273}, ["brotherhood"] = {279, 278}, ["demonhunter"] = {288, 289}, ["yalaharian"] = {324, 325}, ["warmaster"] = {336, 335}, ["wayfarer"] = {366, 367}, ["afflicted"] = {431, 430}, ["elementalist"] = {433, 432}, ["deepling"] = {464, 463}, ["insectoid"] = {466, 465}, ["red baron"] = {471, 472}, ["crystal warlord"] = {513, 512}, ["soil guardian"] = {514, 516}, ["demon"] = {542, 541} } function onSay(player, words, param) local addondoll_id = 9693 if player:getItemCount(addondoll_id) > 0 then local word = outfits[string.lower(param)] if param ~= "" and word then if (not player:hasOutfit(word[1], 3) or not player:hasOutfit(word[2], 3)) and player:removeItem(addondoll_id, 1) then player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:addOutfitAddon(word[1], 3) player:addOutfitAddon(word[2], 3) player:sendTextMessage(MESSAGE_INFO_DESCR, "Seu Addon full foi adicionado!") else player:sendCancelMessage("Voce ja tem este addon") end else player:sendCancelMessage("Digite novamente, algo esta errado!") end else player:sendCancelMessage("Voce nao tem addon doll!") end return true end E em talkactions.xml adcione a tag: <talkaction words="!addon" script="addondoll.lua"/> Para editar é fácil, nesta parte: local addondoll_id = 9693 Você escolhe o id do item que será o addon doll. E caso queira adicionar algum addon novo que não esteja configurado adicione ele na tabela male e female em sequencia aos outros. Exemplo: local --[outfit] = {id_female, id_male} Para usar no servidor é só usar o comando !addon "nomedoaddon Bem simples né pessoal ?! Espero ter ajudado, abraços!
  3. O título do tópico já diz tudo, o player quando esta com esse amuleto não pode ser movido por outro player. data/events/scripts/player.lua: local antiPushId = 13531 function Player:onMoveCreature(creature, fromPosition, toPosition) local creature = Creature(creature:getId()) local amulet = creature:getSlotItem(CONST_SLOT_NECKLACE) if not creature:isPlayer() and amulet and amulet:getId() == antiPushId then self:sendCancelMessage("You cannot push this player. They are wearing an anti-push amulet.") return false end return true end Créditos: Red
  4. Server Specs- Server version: 10.41.-TFS: 1.0Main features- Protection Zone in Towns. (Only Idea...)- If you dont eat your player can die! (Only Idea...)- Capacity Effects player speed, quick revive (In progress...)- Upgrade your items with specials objects. (In progress...)-blacksmith System (Completed)- Special potions, Antidotes, Speed Flask, support Potions... (In progress...)- Tame your favorite pet to help us in your adventure. (In progress...)- Extract pearls, gems, iron pieces and other valuable with minery. (In progress...)- Market system, Specialized npc's, and renting mounts. (Only Idea...)- Sell Faster-regeneration foods with your high-cook skills. (Only Idea...)- Random global missions (Bosses, young bosses, Raids, Strange npcs...) (Only Idea...)- Edited sprites for Dungeons, Quests, Bosses, Items, outfits (In progress...)- Y.A.D. System - If you die after your player dissapear! (Only Idea...)- Client edited for LegendOfAincrad with music and other features! (In progress...)-Spells of swords to attack with the speed of lightning (Only Idea...)-teleportation system so that when killing a boss unlocks the next floor (Completed)-Not being able to disconnect unless you fall asleep (In progress...)-Global daily missions, more variety in missions, whether it's killing characters from other animes, etc (In progress...)-Unique Skills so that your character is not equal to others (In progress...)-A single vocation, with several sub classes. Do you want to finish all the dungeons? go to the front. Do you want to be a blacksmith? Train your blacksmith skill and become a master with the hammer, your character will automatically get the subclass once you use a certain amount of points (Only Idea...)-Hotels and taverns where to rent a room to sleep, get some mission through npc or simply drink a drink (Only Idea...)-Did you commit a crime? You must go to prison and pay your sentence or bribe your guard (Only Idea...)Totally original economy system (Only Idea...)- PvP Mode (players can not attack in the city unless they have a duel, the duel is divided into several forms; -50% hp; the player who loses his life to less than 50% first loses.) (Only Idea...)Original record when creating a character and counts on the page using real and fictitious data (In progress...)-Group of maximum 6 members to do missions (Party) (Completed)- Random Raids - Easter Eggs - Achievements (Only Idea...) Contact: Twitter Facebook Otland
  5. Olá pessoal, para quem não sabe esse script funciona da seguinte maneira, você escolhe um X item, e ao dar use neste X item, será removido a skull e os frags do player que usa-lo (só funciona se estiver Red Skull ou Black Skull). Crie um arquivo com o nome frag_remover.lua em actions/scripts/ e coloque esse código dentro: function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) if table.contains({SKULL_RED, SKULL_BLACK}, player:getSkull()) then player:setSkull(SKULL_NONE) player:setSkullTime(0) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your skull has been removed!") db.query("UPDATE `player_deaths` SET `unjustified` = 0 WHERE `unjustified` = 1 AND `killed_by` = " .. db.escapeString(player:getName())) item:remove(1) else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You can only remove red or black skulls!") player:getPosition():sendMagicEffect(CONST_ME_POFF) end return true end E em actions.xml adicione a tag: <action itemid="XXXX" script="frag_remover.lua"/> Agora é só trocar o XXXX da tag acima pelo ID do item que será o seu Frag Remover Créditos: Ninja Bem simples né pessoal ?! Espero ter ajudado, abraços!
  6. Hello everyone, I'm looking for a team for my project LegendOfAincrad is based on the official first season of Sword Art Online, but this project is not new, we have been working on it for months and little by little we are moving forward, there are a link of what we're talking about:Sword Art Online - LegendOfAincrad¿What do we need now?- we're looking for some stuff to keep working, we need:* Mappers* Scripter* SpritersWe don't need anything else, so, if you want to apply to any job, you can contact me via PM.Greetings!
  7. Bom, eu passei por um problema quando estava testando o Gesior no meu OTServer: mesmo com o server online e portas liberadas o site continuava mostrando como offline. Eu vi que algumas pessoas sugeriram trocar no arquivo layout.php isto: if($config['status']['serverStatus_online'] == 1) por isto: if($config['status']['serverStatus_online'] >= 0) mas eu vi que estava errado, pois ele iria mostrar o server como online mesmo que não estivesse. Então eu andei olhando os códigos, mexendo nos arquivos e acabei achando o erro. No arquivo load.compat.php, dentro da pasta system, na linha #254 (pelo menos aqui) eu encontrei o seguinte código: $statusInfo = new ServerStatus($config['server']['ip'], $config['server']['statusPort'], 1); onde está escrito 'statusPort' eu percebi que no config.lua não tinha isto, pois lá estava 'statusProtocolPort'. Então basta trocar esta linha por: $statusInfo = new ServerStatus($config['server']['ip'], $config['server']['statusProtocolPort'], 1); Espero ter ajudado!
  8. Fala galera do TK, vi em alguns servidores grandes 10.x+ o comando de /war invite, ou seja todos os servidores que baixamos não contém este sistema, então resolvi pegar o script original como base e adapta-lo para tfs 1.0, trocando as funções e tudo mais. Sem mimimi vamos ao que interessa: Em data/talkactions/scripts crie um arquivo chamado: gwarabsolute.lua e dentro adicione o seguinte conteúdo: function onSay(cid, words, param) local player = Player(cid) local guild = player:getGuild() if(guild == nil) then player:sendCancelMessage("You need to be in a guild in order to execute this talkaction.") return false end local guild = getPlayerGuildId(cid) if not guild or (player:getGuildLevel() < GUILDLEVEL_LEADER) then player:sendCancelMessage("You cannot execute this talkaction.") return false end local t = string.split(param, ",") if(not t[2]) then player:sendChannelMessage("", "Not enough param(s).", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local enemy = getGuildId(t[2]) if(not enemy) then player:sendChannelMessage("", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end if(enemy == guild) then player:sendChannelMessage("", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local enemyName, tmp = "", db.storeQuery("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if tmp ~= false then enemyName = result.getDataString(tmp, "name") result.free(tmp) end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild1` = " .. enemy .. " AND `guild2` = " .. guild if(t[1] == "cancel") then query = "`guild1` = " .. guild .. " AND `guild2` = " .. enemy end tmp = db.storeQuery("SELECT `id`, `started`, `ended`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp == false) then player:sendChannelMessage("", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end if(t[1] == "accept") then local _tmp = db.storeQuery("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = result.getDataInt(_tmp, "balance") < result.getDataInt(tmp, "payment") result.free(_tmp) if(state) then player:sendChannelMessage("", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. result.getDataInt(tmp, "payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`ended` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`ended` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`started` = " .. os.time() .. ", `ended` = " .. (result.getDataInt(tmp, "ended") > 0 and (os.time() + ((result.getDataInt(tmp, "started") - result.getDataInt(tmp, "ended")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. result.getDataInt(tmp, "id") result.free(tmp) db.query(query) broadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return false end if(t[1] == "invite") then local str = "" tmp = db.storeQuery("SELECT `guild1`, `status` FROM `guild_wars` WHERE `guild1` IN (" .. guild .. "," .. enemy .. ") AND `guild2` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp ~= false) then if(result.getDataInt(tmp, "status") == 0) then if(result.getDataInt(tmp, "guild1") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end result.free(tmp) end if(str ~= "") then player:sendChannelMessage("", str, TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.floor(payment)+1000 tmp = db.storeQuery("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = result.getDataInt(tmp, "balance") < payment result.free(tmp) if(state) then player:sendChannelMessage("", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.query("INSERT INTO `guild_wars` (`guild1`, `guild2`, `started`, `ended`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") broadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return false end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.storeQuery("SELECT `id` FROM `guild_wars` WHERE `guild1` = " .. guild .. " AND `guild2` = " .. enemy .. " AND `status` = " .. status) if(tmp ~= false) then local query = "UPDATE `guild_wars` SET `ended` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. result.getDataInt(tmp, "id") result.free(tmp) db.query(query) broadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return false end if(status == 4) then player:sendChannelMessage("", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end tmp = db.storeQuery("SELECT `id`, `ended` FROM `guild_wars` WHERE `guild1` = " .. enemy .. " AND `guild2` = " .. guild .. " AND `status` = 1") if(tmp ~= false) then if(result.getDataInt(tmp, "ended") > 0) then result.free(tmp) player:sendChannelMessage("", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local query = "UPDATE `guild_wars` SET `status` = 4, `ended` = " .. os.time() .. " WHERE `id` = " .. result.getDataInt(tmp, "id") result.free(tmp) db.query(query) broadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return false end player:sendChannelMessage("", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end Ainda em data/talkactions/scripts crie um arquivo com nome de absolutebalance.lua e dentro adicione: local function isValidMoney(value) if(value == nil) then return false end return (value > 0 and value <= 99999999999999) end function onSay(cid, words, param) local player = Player(cid) local guild = player:getGuild():getId() if(guild == nil) then return true end local t = string.split(param, ' ', 1) if(player:getGuildLevel() == GUILDLEVEL_LEADER and isInArray({'pick'}, t[1])) then if(t[1] == 'pick') then local money = {tonumber(t[2])} if(not isValidMoney(money[1])) then player:sendChannelMessage('', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end local resultId = db.storeQuery("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) if resultId == false then return false end money[2] = result.getDataInt(resultId, "balance") result.free(resultId) if(money[1] > money[2]) then player:sendChannelMessage('', 'The balance is too low for such amount.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return false end if(not db.query('UPDATE `guilds` SET `balance` = `balance` - ' .. money[1] .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;')) then return false end doPlayerAddMoney(cid, money[1]) player:sendChannelMessage('', 'You have just picked ' .. money[1] .. ' money from your guild balance.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) else player:sendChannelMessage('', 'Invalid sub-command.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) end elseif(t[1] == 'donate') then local money = tonumber(t[2]) if(not isValidMoney(money)) then player:sendChannelMessage('', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return true end if(getPlayerMoney(cid) < money) then player:sendChannelMessage('', 'You don\'t have enough money.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) return true end if(not doPlayerRemoveMoney(cid, money)) then return false end db.query('UPDATE `guilds` SET `balance` = `balance` + ' .. money .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;') player:sendChannelMessage('', 'You have transfered ' .. money .. ' money to your guild balance.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) else local resultId = db.storeQuery('SELECT `name`, `balance` FROM `guilds` WHERE `id` = ' .. guild) if resultId == false then return false end player:sendChannelMessage('', 'Current balance of guild ' .. result.getDataString(resultId, "name") .. ' is: ' .. result.getDataInt(resultId, "balance") .. ' bronze coins.', TALKTYPE_CHANNEL_R1, CHANNEL_GUILD) result.free(resultId) end end Pós isto, abra seu talkactions.xml e dentro adicione: <!--War System TALK by Absolute --> <talkaction words="/war" separator=" " script="gwarabsolute.lua" /> <talkaction words="/balance" separator=" " script="absolutebalance.lua" /> Nota: Você deve conter as colunas na database (Praticamente todas já possuem). Tabela de comando in-game para players: Observação Final: Você pode manter tanto a página quanto a talkaction para seu GuildWAR. Este conteúdo é feito por mim e exclusivo ao fórum tibiaking.com, não autorizo cópias ou demais postagens. Demais dúvidas utilize o fórum para perguntar. Espero ter ajudado. Absolute.
  9. Olá pessoal, para quem não sabe esse script funciona da seguinte maneira, você escolhe um X item, e se o player tiver esse X item, e falar !mount [nome da mount] ele ganha a mount que ele escolheu. Crie um arquivo com o nome mountdoll.lua em talkactions/scripts e coloque isso dentro: local mounts = { --["mount"] = {id = x}, ["widow queen"] = {id = 1} } function onSay(player, words, param) local word = mounts[string.lower(param)] local mountdoll_id = 9019 -- id do mount doll if player:getItemCount(mountdoll_id) > 0 then if param ~= "" and word then if not player:hasMount(word.id) and player:removeItem(mountdoll_id, 1) then player:sendTextMessage(MESSAGE_INFO_DESCR, "You got your mount!") player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:addMount(word.id) else player:sendCancelMessage("You already have this mount.") end else player:sendCancelMessage("This mount does not exist.") end else player:sendCancelMessage("You must have a mount doll in your backpack!") end return true end E em talkactions.xml adcione a tag: <talkaction words="!mount" script="mountdoll.lua"/> Para editar é fácil, nesta parte: local mountdoll_id = 9019 -- id do mount doll Você escolhe o id do item que será o mount doll. E caso queira adicionar alguma mount nova que não esteja configurado adicione ele na tabela em sequencia aos outros igual o exemplo: -- ["mount"] = {id = x}, Eu deixei configurei apenas 1 mount, basta pegar os ids das mount e fazer igual o exemplo. Para usar no servidor é só usar o comando !mount "mountname Bem simples né pessoal ?! Espero ter ajudado, abraços!
  10. Olá galerinha do TK, pra quem me conhece sabe que sou fã dos Gesiors (globais e bem feitos), por isso vim trazer algumas imagens e informações de um Gesior que acabei de terminar, esta quentinho, ainda tenho umas coisinhas pra add, mas o principal está pronto, eu espero que vocês gostem. Algumas informações sobre o site: funciona no TFS 1.0 Guild Page novo do tibia global. Fórum do tibia global. Accountmanagement do tibia global, com novas funcionalidades Sistema de compra de pontos e shop online inspirado no tibia global. Página de characters mostrando os nomes antigos do personagem que trocou o nome. (Former names) Painel Administrativo com as principais funções do site. (Ainda em construção, sendo implementado mais coisas.) E outras coisas mais, que a medida que for lembrando posto aqui. Sistema de recuperação de conta igual ao global. RK co 20 caracteres igual ao global. Abaixo vou postar algumas fotos para que vocês vejam, em breve colocarei ele online, pra vocês poderem testar as funcionalidades, mas como esse é apenas um show off, ai vai algumas fotinhas. Obs.: O sistema de pagamento dele é pelo pagseguro, e é todo automatico. A venda de items, montarias, outfits, extra services é feita por premium points, toda pelo site, sempre precisar de mount doll, addon doll ou sei la o que. Galera, espero que gostem e comentem, é feito com dedicação! Link do site online: Removido
  11. Olá Pessoal! Estou tendo problemas com o TALKACTIONS desse sistema. tive anteriormente com alguns arquivos no site, mais questionei aqui no forúm e o luanluciano93 me ajudou em todos eles. Porém agora ao tentar utilizar o comando no SV não vai e da o seguinte erro no console: Se alguem puder me ajudar com esse erro, agradeço! Segue em anexo a talk actions guild.points.lua guildpoints.lua
  12. Evento Devovorga testado TFS 1.0 tíbia 10.37 mapa global breve explicação do evento obejetivo: mata os 5 bosses do evento rise devovorga para liberar acesso a sala do boss devovorgar com tempo de 5 horas para conclusão do evento. bosses: Anmothra Irahsae Teneshpar Phrodomo Chikhaton vamus para os scripts Data/creaturescripts/scripts cria uma pasta com nome "evento devovorga" dentro da pasta cria arquivo com nome bossdevovorga.lua copia e cola tudo dentro: local bosses = { ["devovorga"] = 206 } function onKill(cid, target) if(bosses[string.lower(getCreatureName(target))]) then if(string.lower(getCreatureName(target)) == "") then setGlobalStorageValue(bosses[string.lower(getCreatureName(target))], getGlobalStorageValue(bosses[string.lower(getCreatureName(target))]) < 1 and 1 or 2) if(getGlobalStorageValue(bosses[string.lower(getCreatureName(target))]) == 2) then end return true end broadcastMessage("Thanks to the mighty and fearless Tibians who drove Devovorga back into her abyss, your regeneration has been improved.", MESSAGE_EVENT_ADVANCE) broadcastMessage("You made it - Devovorga, the incredibly powerful weapon sealed deep below Vengoth, was destroyed.", MESSAGE_EVENT_ADVANCE) broadcastMessage("Upon her death, energy was released all over the world - the next month, it will boost your health and mana regeneration.", MESSAGE_EVENT_ADVANCE) broadcastMessage("Congratulations, Tibians!", MESSAGE_EVENT_ADVANCE) setGlobalStorageValue(bosses[string.lower(getCreatureName(target))], 2) addEvent(setGlobalStorageValue, 3 * 60 * 1000, bosses[string.lower(getCreatureName(target))], 0) end return true end proximo passo Data/creaturescripts/scripts cria uma pasta com nome "evento devovorga" dentro da pasta cria arquivo com nome bosses.lua copia e cola tudo dentro: local tpId = 11798 local tps = { ["Anmothra"] = {pos = {x=32955, y=31519, z=9}, toPos = {x=32950, y=31514, z=9}, time = 18000}, ["Irahsae"] = {pos = {x=32942, y=31514, z=9}, toPos = {x=32937, y=31510, z=9}, time = 18000}, ["Teneshpar"] = {pos = {x=32947, y=31506, z=9}, toPos = {x=32936, y=31524, z=9}, time = 18000}, ["Phrodomo"] = {pos = {x=32937, y=31521, z=9}, toPos = {x=32913, y=31515, z=9}, time = 18000}, ["Chikhaton"] = {pos = {x=32913, y=31527, z=9}, toPos = {x=32946, y=31516, z=10}, time = 18000}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em 5 horas corra grandes aventureiros", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end proximo passo Data/creaturescripts abra o arquivo creaturescripts.xml adicione essas duas linhas: <event type="death" name="teleport" script="evento devovorga/bosses.lua"/> <event type="kill" name="bossdevovorga" script="evento devovorga/bossdevovorga.lua"/> arquivos creaturescripts finalizado proximo passo Data/movements/scripts criar um arquivo chamado teleportarea.lua copiar e colar tudo dentro: function onStepIn(cid, item, position, fromPosition) local teleport = { action = item.actionid, [17001] = {x=32975, y=32427, z=8}, [17002] = {x=32976, y=32429, z=7}, [17003] = {x=32634, y=32305, z=8}, [17004] = {x=32629, y=32329, z=7}, [17005] = {x=32131, y=31835, z=8}, [17006] = {x=32169, y=31829, z=7}, [17007] = {x=31936, y=31538, z=8}, [17008] = {x=31965, y=31582, z=7}, [17009] = {x=33325, y=31741, z=8}, [17010] = {x=33325, y=31741, z=7}, [17011] = {x=32956, y=31516, z=8}, [17012] = {x=32949, y=31520, z=7}, [17013] = {x=32956, y=31519, z=9}, [17014] = {x=32943, y=31514, z=9}, [17015] = {x=32947, y=31507, z=9}, [17016] = {x=32937, y=31522, z=9}, [17017] = {x=32948, y=31520, z=7} } if(not isPlayer(cid)) then return true end doTeleportThing(cid, teleport[item.actionid]) return true end proximo Data/movements/scripts criar um arquivo chamado devo.lua copiar e colar tudo dentro: local teleports2 = { [2181] = {text = "Ate o Proximo Evento", newPos = {x = 32948, y = 31520, z = 7}, storage = 7}, } local teleports = { [2182] = {boss = true, text = "Parabéns você concluiu o Evento Rise of Devovorga", bossStorage = 206, newPos = {x = 32945, y = 31521, z = 9}, storage = 7}, } function onStepIn(cid, item, position, lastPosition) if (item.uid == 2181) then if(getPlayerStorageValue(cid,1050) <= teleports2[item.uid].storage) then setPlayerStorageValue(cid, 1050, teleports2[item.uid].storage) end doTeleportThing(cid, teleports2[item.uid].newPos) doSendMagicEffect(teleports2[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports2[item.uid].text, TALKTYPE_ORANGE_1) return true end if(teleports[item.uid].boss) then if(getGlobalStorageValue(teleports[item.uid].bossStorage) == 2) then if(getPlayerStorageValue(cid,1050) <= teleports[item.uid].storage) then setPlayerStorageValue(cid, 1050, teleports[item.uid].storage) end doTeleportThing(cid, teleports[item.uid].newPos) doSendMagicEffect(teleports[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports[item.uid].text, TALKTYPE_ORANGE_1) else doTeleportThing(cid, {x = 32912, y = 31515, z = 10}) doSendMagicEffect({x = 32912, y = 31515, z = 10}, CONST_ME_TELEPORT) doCreatureSay(cid, "Precisa Concluir o evento Rise of Devovorga.", TALKTYPE_ORANGE_1) end return true end if(teleports[item.uid].storage) then if(getPlayerStorageValue(cid, 1050) >= teleports[item.uid].storage) then doTeleportThing(cid, teleports[item.uid].newPos) doSendMagicEffect(teleports[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports[item.uid].text, TALKTYPE_ORANGE_1) else doTeleportThing(cid, lastPosition) doSendMagicEffect(getCreaturePosition(cid),10) doCreatureSay(cid, 'You don\'t have enough energy to enter this portal', TALKTYPE_ORANGE_1) end return true end if(teleports[item.uid]) then doTeleportThing(cid, teleports[item.uid].newPos) doSendMagicEffect(teleports[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports[item.uid].text, TALKTYPE_ORANGE_1) return true end return true end proximo passo Data/movements abra o arquivo movements.xml adicione essas duas linhas: <movevent event="StepIn" fromaid="17001" toaid="17016" script="teleportarea.lua"/> <movevent event="StepIn" fromuid="2181" touid="2182" script="devo.lua"/> arquivos movements finalizado proximo arquivos Data/raids criar um arquivo chamado devovorga.lua copiar e colar tudo dentro: <raid> <announce delay="1000" type="Event" message="Something is rumbling deep underground all over the world" /> <announce delay="20000" type="Event" message="The Power of Devovorga has risen again." /> <singlespawn delay="20000" name="Anmothra" x="32634" y="32309" z="8" /> <announce delay="30000" type="Event" message="The Fury of Devovorga has risen again." /> <singlespawn delay="30000" name="Irahsae" x="32967" y="32405" z="8" /> <announce delay="40000" type="Event" message="The Dark knowledge of Devovorga has risen again." /> <singlespawn delay="40000" name="Teneshpar" x="31932" y="31524" z="8" /> <announce delay="50000" type="Event" message="The Soul of Devovorga has risen again." /> <singlespawn delay="50000" name="Phrodomo" x="32135" y="31833" z="8" /> <announce delay="60000" type="Event" message="The Hatred of Devovorga has risen again." /> <singlespawn delay="50000" name="Chikhaton" x="33330" y="31741" z="8" /> <singlespawn delay="1000" name="Spawn of Devovorga" x="32931" y="31516" z="10" /> <singlespawn delay="2000" name="Spawn of Devovorga" x="32925" y="31515" z="10" /> <singlespawn delay="3000" name="Spawn of Devovorga" x="32925" y="31521" z="10" /> <singlespawn delay="4000" name="Spawn of Devovorga" x="32917" y="31521" z="10" /> <singlespawn delay="5000" name="Spawn of Devovorga" x="32914" y="31514" z="10" /> <singlespawn delay="6000" name="Devovorga" x="32921" y="31516" z="10" /> </raid> proximo passo Data/raids abra o arquivo Raids.xml adicione essa linhas: <raid name="Devovorga" file="Devovorga.xml" interval2="1440" chance="1" margin="60" enabled="yes"/> download da pasta dos monstro do evento finalizado os códigos vou explica como ativa o evento no momento que usar o comando /raid devovorga o evento iniciará assim sumonando cada mini Boss pra seu lugar os jogadores terá 5 horas no momento que matarem o primeiro mini Boss passando as 5 horas e não matarem os mini bosses ou ate mesmo o Boss devovorga o evento falhara quem estive dentro da sala ficara ate o final seja quando morre ou sair da sala do Boss assim não voltara mais não irei explica código por código porque esta tudo pronto para mapa global fica a critério de cada um não sou script ( fiz uma gambiarra esta funcionando 100%) apenas tentei fazer algo diferente OBS.: sala de premiação não finalizei pois fica a critério de cada um o que fazer (minha sugestão se os jogadores concluir o evento no próximo salve serve coloca Double XP pra galera hehehehe) fora os baus que darão os itens aos jogadores. Scan dos arquivos anexados detalhe para nao buga os portais como usei o portal dimensional portal id 11798 o servidor nao reconhece como teleport vai buga abra: pasta itens abra itens.xml procure por: <item fromid="5023" toid="5024" article="a" name="magic forcefield"> <attribute key="type" value="teleport" /> <attribute key="description" value="You can see the other side trough it." /> </item> substitua por esse: <item fromid="11798" toid="11799" article="a" name="dimensional portal"> <attribute key="type" value="teleport" /> <attribute key="description" value="You can see the other side trough it." /> </item> procure por: <item id="11798" article="a" name="dimensional portal" /> substitua por esse: <item id="5023" article="a" name="magic forcefield" /> pronto Antes de mais nada não sei se postei no lugar correto peço aos moderadores que se não tiver na área correta que movam para certa fico grato se copiar e colar pelo menos mantem os creditos fico grato
  13. Olá, esse script é usada para que o player que fique offline pelo tempo editado, perca a house automaticamente. Em globalevents/scripts/ crie um arquivo chamado doCheckHouses.lua e coloque esse código dentro: -- <globalevent type="startup" name="doCheckHouses" script="doCheckHouses.lua" /> local function doCheckHouses() local dias = 3 local tempo = os.time() - (dias * 24 * 60 * 60) local registros = db.storeQuery("SELECT `houses`.`owner`, `houses`.`id` FROM `houses`,`players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id` AND `players`.`lastlogin` <= " .. tempo .. ";") if registros ~= false then local count = 0 print('house leave code') repeat count = count + 1 local owner = result.getNumber(registros, "owner") local houseId = result.getNumber(registros, "id") local house = House(houseId) if house and (owner > 0) then print(house:getName()) house:setOwnerGuid(0) end until not result.next(registros) print('house leave house count:' .. count) result.free(registros) end end function onStartup() addEvent(doCheckHouses, 60 * 1000) return true end A tag do globalevents.xml esta no script como comentário, é só adiciona-lá. Para editar o tempo (em dias) que se o jogador ficar offline ele perderá a house é nessa linha: local dias = 3 OBS: Esse script é iniciado junto com o servidor, logo após aparecerá na distro as houses removidas e a quantidade total. Créditos: Luan e Cristofer.
  14. eu gostaria de um script quer o play mesmo salvar o char dele se tem como mim arruma isso para a versão TFS 1.0
  15. Convidar a guild / aceitar o convite / cancelar convite / rejeitar convite - tudo em no website. Algumas informações sobre War System (Com Escudos) no TFS 1,0 : - Por causa da TFS 1.0 limites tudo comprimento guerras deve ser de 7 dias - Não é aceito / cancelado / rejeitado convites para guerras desaparecerão após a reinicialização do servidor. - Você pode começar a qualquer momento guerra (você deve relogar após a guerra começar no site, se você não quer ficar PK no jogo) Estatísticas de guerras na página de cada guilda: Isto funciona apenas com o TFS 1.0! Como instalar: . 1 Substitua o conteúdo de pages/guilds.php (ques esta dentro do www do seu site) por esse: http://paste.ots.me/560176/text ou http://wklej.to/MZmZk/text 2 Substitua o conteúdo do page/wars.php por: (você também pode precisar adicionar o link no seu layout): http://paste.ots.me/560178/text ou http://wklej.to/dx2qs/text . 3 Crie um novo arquivo com o nome guildwar.php e coloque dentro da pasta classes também no www: http://paste.ots.me/560177/text ou http://wklej.to/pKWcF/text Site está pronto, você pode começar guerras, etc, mas eles nunca vão terminar, ainda falta arrumar o TFS . 4 Agora você deve editar seu script LUA servidor, abra data / GlobalEvents / scripts / startup.lua e encontre a linha: db.query("DELETE FROM `guild_wars` WHERE `status` = 0") Substitua por esta: db.query("UPDATE `guild_wars` SET `status` = 4, `ended` = " .. os.time() .. " WHERE `status` = 1 AND (`started` + 86400 * 7) < " .. os.time()) Agora vá no LAYOUT.php do seu Website e procure por isso: <a href='?subtopic=guilds'> <div id='submenu_guilds' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_guilds' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Guilds</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Em baixo do </a> adicione isto: <a href='?subtopic=wars'> <div id='submenu_wars' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_wars' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=RED><b>Guilds War</b></font></div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> --- --- --- End! Quero lembrar a todos que este trabalho não é meu, não fui eu que fiz! apenas copiei e traduzir para português Espero que tenham gostado! Caso vocês não tenham o Gesior 2012 compativel com o TFS 1.0 pode fazer o download clicando aqui Creditos: Gesior 99,9% (OTLand) Eu 0,01% (Tradução)
  16. E ai galera, venho para minha primeira contribuição! Tenho visto bastante pessoas com dificuldade ao compilar em Linux. Estarei inserindo imagens ao TUTORIAL para facilitar e melhor explicar. PROGRAMAS NECESSÁRIOS: http://the.earth.li/~sgtatham/putty/0.63/x86/putty.exe- Putty - Para conectar ao Terminal. http://sourceforge.net/projects/filezilla/files/FileZilla_Client/3.9.0.5/FileZilla_3.9.0.5_win32-setup.exe/download?use_mirror=ufpr -Filezilla - Para transferir arquivos ao servidor. PASSO 1: Acessar o servidor via SSH utilizando o programa Putty. (imagem Putty 1) (imagem Putty 2) PASSO 2: Digite os comandos abaixo no Putty após conectado. apt-get update apt-get upgrade PASSO 3: Instalando apache2 apt-get install apache2 cd /var/www PASSO 4: Instalando php5 cd /var/www apt-get install php5 /etc/init.d/apache2 restart Apache2 e PHP5 são necessários para deixar o website online. Você pode acessar através de seu IP faça o teste. Digite o seu IP no navegador. PASSO 5: Instalando MySQL, nos comandos abaixo será necessário a escolha de uma senha para o MySQL apt-get install mysql-server apt-get install libapache2-mod-auth-mysql apt-get install php5-mysql Concluída a instalação do MySQL, aplicação necessária para a Database do seu servidor. Você pode acessar através do seu IP seuip/phpmyadmin PASSO 6: Instalando phpmyadmin, os comandos abaixo será necessário a escolha de uma senha para acesso ao Banco de Dados. apt-get install phpmyadmin DEBIAN - ln -fvs /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf /etc/init.d/apache2 restart UBUNTU - echo "include /etc/phpmyadmin/apache.conf" | sudo tee -a /etc/apache2/apache2.conf Feito isto, está quase tudo pronto. VOcê pode acessar seu banco de dados atraves do seu ip seguindo de /phpmyadmin. Ficando http://seuip/phpmyadmin Acesse seu banco de dados USER: root Password: selecionado no passo acima. PASSO 7: Compilando o servidor. Nos passos abaixo fará necessário a transferência de arquivos ao seu servidor, você usará o programa FILEZILLA. Código abaixo, necessário para instalação das Libs para compilar TFS 1.0, caso apareça alguma mensagem de Y ou N, digite Y sudo apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev PASSO 8: Enviando o datapack, sources e website ao Servidor. Execute o aplicativo FILEZILLA (Imagem Filezilla 1) Acesse seu servidor com o mesmo usuário e senha para acessar o Putty. Usuário: root Senha: sua senha Acesse o diretório home /home Envie todos os arquivos para o /home (desktop), concluída transferencia é hora de compilar. PASSO 9: Acesse a pasta onde estão as Sources de seu TFS 1.0 cd /home/sources E execute o comando mkdir build && cd build PASSO 10: Instalando CMake apt-get install cmake PASSO 11: Execute o comando para compilar o servidos, neste passo se faz necessário você estar no diretório de suas Sources onde o arquivos CMakeLists.txt está e execute cmake .. PASSO 12: Compilando o TFS 1.0 make Concluída 100% seu servidor foi Compilado com sucesso. PASSO 13: Agora através do FILEZILLA, acesse o diretório /home/sources/build e mova o arquivo TFS para a pasta onde está seu datapack. Para facilitar em seu servidor, através FILEZILLA crie uma pasta chama otserv no diretório /home (imagem diretório datapack) Envie a pasta >>data<< o >>config.lua<< e o arquivo compilado >>TFS<< para dentro da pasta otserv. PASSO 14: Dando autorização para TFS, via Putty digite cd /home/otserv chmod 777 -R tfs PASSO 15: Ligando o TFS apt-get install screen screen ./tfs PASSO 16: Inserindo sua database ao MySQL. http://seuip/phpmyadmin Insira seu usuário e senha, conectado ao phpmyadmin, na área superior clique em SQL e execute o comando abaixo CREATE DATABASE global Acesse ao banco de dados criado, clique no banco de dados Global, vá até a aba superior Importar, escolha o a database de seu website no qual se encontra em seu computador e Execute. PASSO 17: Inserindo seu WebSite ao servidor. No FILEZILLA vá até o diretório abaixo /var/www Delete todos os arquivos existem dentro desta pasta, e transfira o seu website para dentro deste diretório. Faça as configurações em seu website através do config.php Lembrando que o server path deverá estar como abaixo. $config['site']['serverPath'] = "/home/otserv/"; PASSO 18: Concluído! Agora é só você estar fazendo as configurações de seu servidor e website. Pessoal, este é meu primeiro tutorial, caso haja algum erro ou haja alguma dúvida fico a disposição para os ajudar.
  17. Olá possuou dois problemas: 1 na promotion quando o player fica free ele perde, preciso que ele mesmo free fique promotion. 2 treiner offline sobe skill muito rápido, tentei modificar o cálculo mas aparentemente está igual.
  18. gente uso znote 1.5 e coloco no config.php admin acess a conta do meu admin e mesmo assim não tenho acesso para postar novidades e editar coisas dar pontos, etc.. alguem pode me ajudar ????????????????
  19. Boa Trade, Boa Noite ou Bom Dia. Scripts Gostaria de um Script quer ele aumenta a exp do play por uma 1 hora quer para aquele play fica 2x. TFS 1.0 URGENTE + Rep quando Concluir!
  20. Bom Galera Hoje vejo trazer a vocês um script que muitos procuram, mas acham os que não funciona ou acham em post's individuais E resolvi criar um Tópico pra facilitar na busca Chega de papo né ! Vamos ao que interessa ! --------------------------------------------------------------------------------//------------------------------------------------------------------------------------ 1º - Vai na pasta creaturescripts e add isso quer está aqui em baixo. Vamos ir em Pasta do ot --> Data --> creaturescripts xml E cole esse código/tag: Feito isso vamos em: Pasta do ot --> Data --> Creaturescripts --> Scripts copia e cola qualquer arquivo .lua e depois renomeá para tpmonster depois coloque isso quer está aqui em baixo no tpmonster.lua Ps:É obrigatoriamente ser arquivo .LUA {´~~´} Legenda Azul: nome do monstro vermelho: Posição onde irá aparecer o portal Roxo: Posição para onde o player será teletransportado -------------------------------------------------//-------------------------------------------- Agora vai na pasta monster do seu ot e procura pelo monstro que você quer e adicione isso quer está aqui em baixo antes do </monster> da pasta lua do bicho. E por aqui terminamos ! Espero que isso ajude a todos que estavam com problemas etc... Ps: Foi testado na TFS 1.0 Caso queira testar nas versões 0.3.6/0.4 e funcionar poste aqui Agradeço Desde de Já ! Créditos Script: Trypox Eu: Post
  21. Olá pessoal, para quem não sabe esse sistema permite vender items na "porta" da sua house, um tipo de market. Requisitos: Ultimas versões do TFS, caso contrário não irá funcionar! Imagens: Bom, a iamgem mostra tudo ... sua casa deve ter algo borda acessível, e no caso da iamgem, foi usado uma cesta, e dentro colocamos uma label e umas bag com os itens que serão vendidos dentro, na label ficará como o exemplo: sell [demon shield, 40000;] buy [dragon shield, 5000;] Bem simples né? Para implementar esses sistema devemos fazer os passos a seguir: [ 1 ] • Adicionar a seguinte tabela em sua database pelo phpmyadmin: [ 2 ] • Agora crie um arquivo em data/actions/script/, com o nome de house_shop.lua e coloque esse código dentro: [ 3 ] • Adicione a tag em data/actions/actions.xml <action itemid="1989" script="house_shop.lua"/> [ 4 ] • Adicione em data/events/events.xml: <event class="Player" method="onMoveItem" enabled="1"/> <event class="Player" method="onTradeRequest" enabled="1"/> [ 5 ] • Em data/events/scripts ... procure pelo arquivo player.lua e substitua essa parte: Por esta: [ 6 ] • Em data/events/scripts/player.lua, adicione isso: [ 7 ] • Em data/creaturescripts/scripts/login.lua, adicione isso acima de return true: Créditos: zbizu É isso pessoal, só repassei, espero que ajude alguém, abração!
  22. Gostaria de saber se alguém pode me disponibilizar o system REWARD CHEST para tfs 1.0, obrigado.
  23. Boa noite pessoal, Estou aqui me batendo para colocar uma area/passagem apenas para acesso premy, Alguem poderia me dar uma luz para essa função? procurei bastante para tfs 1.0 e não achei nada compativel.
  24. Boa tarde, Estou tentando programar um item para multiplicar a EXP por um tempo programado e sumir ao usar porem ja testei mais de 10 scripts e todos geram um erro parecido, indiferente do script gera erro na doPlayerSetExperienceRate. SCRIPT: http://pastebin.com/p3d2wjqH ERRO Lua Script Error: [Action Interface] data/actions/scripts/other/exp.lua:onUse data/actions/scripts/other/exp.lua:9: attempt to call global 'doPlayerSetExperienceRate' (a nil value) stack traceback: [C]: in function 'doPlayerSetExperienceRate' data/actions/scripts/other/exp.lua:9: in function

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...