
RaioX
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
RaioX recebeu reputação de jhosefra7 em [PEDIDO] Vender house por itemÉ possível executar um comando específico e gerar aquele documento da house, mas não para um player que estiver perto, para poder colocar na backpack, no market, etc?
-
RaioX recebeu reputação de leonlimapolve em [Link Quebrado]GLOBAL FULL DOWNLOAD 10.95 [TFS 1.2/FERUMBRAS QUEST/KRAILOS/NEW ARENA/CAST/NEW ITEMS/REWARD/EVENTS/CASINO] ~ AtualizaçõesDentro de alguns dias, ok. Mas tem alguma previsão? Se ele estiver mais completo do que os servidores daqui, não desperdiçamos tempo corrigindo os bugs dos outros e esperaremos o seu. De qualquer forma, parabéns pelo seu trabalho e pela preocupação em ajudar.
-
RaioX deu reputação a Anuudek em GLOBAL FULL [TFS 1.2 - Reward System, BattleField Event, Seacrest Ground] EXCLUSIVO(PARA QUEM NÃO SABE COMPILAR UM OT NO LINUX CLIQUE AQUI)
Seacrest Grounds War System Taming System DB WOE Quest All Mounts Roshamuul, Oramond, Venore, AB, Zao, Farmine PTR & CR Quest Browse Field Opção "Report Coordenate" (CTRL+Z) Todas Hunts do 10.8/10.9 Cast System REWARD SYTEM BATTLEFIELD EVENT Várias quests desbugadas (YALAHAR QUEST COMO EXEMPLO) Recompensas pra LVL 30+ (BANK SYSTEM)
Datapack: MediaFire
Scan: VirusTotal
Website(Gesior): MediaFire
Sources: MediaFire
Database necessária: MediaFire
Créditos à CIPSOFT e ao TFS Team por disponibilizar Sistemas feitos pela equipe CIPSOFT. -
RaioX deu reputação a Elwyn em Sistema de rewardScript feito para TFS 1.x
Esse script foi feito para ajudar os mappers a fazerem quests sem precisar saber scriptwriting. Basta criar um bau, por actionid 15000 e um uniqueid que não coincida com outras storages usadas. Dentro do baú é só por quantos itens quiser.
Em data/actions/scripts crie um script chamado reward_system.lua e cole o seguinte código:
E em actions.xml cole a seguinte tag:
<!-- Reward System --> <action actionid="15000" script="reward_system.lua"/> E pronto.
Edit: Atualizado, agora o baú pode conter bags/backpacks/containers que contém itens.
-
RaioX deu reputação a Nechros em Free for use!Tutorialzinho pra fazer folhagens,
Usei essa técnica pra fazer a arvore de cima. Pode ajudar alguém
C achar q vale a pena pode dar REP++ ai, n sei pra q serve, mas pelo jeito ajuda ja q tanta gente pede haha
-
RaioX deu reputação a Bruno Minervino em Compilando TFS 1.3 com vídeo-aulaCompilando TFS 1.3 no Windows
1. Baixe os softwares requeridos
Para compilar o The Forgotten Server no Windows, você vai precisar:
Visual Studio 2015 (Compilador)
TFS SDK v3.2 (libs)
Libs do Boost C++ (32-bits, 64-bits)
2. Instale os softwares requeridos
Após ter baixado os softwares listados na etapa acima, comece instalando o Visual Studio e Boost C++. Extraia o TFS SDK v3.2 em qualquer pasta do seu computador e execute o arquivo "register_tfssdk_env.bat" para setar a variável de ambiente do local onde está o TFS SDK, assim nosso compilador irá encontrar as libs quando começar a compilar. Mova o arquivo "register_boost_env.bat" da pasta do TFS SDK para a pasta onde você instalou as libs do Boost C++ e execute-o (se você seguiu os passos do instalador, está esta na pasta chamada boost_1_62_0).
3. Baixe as sources
Se você possuir o Git Client instalado, você poderá clonar a última cópia com este comando:
> git clone https://github.com/otland/forgottenserver.git
Se você não possuir o Git Client instalado, você poderá baixar a última cópia do The Forgotten Server através do link: https://github.com/otland/forgottenserver/archive/master.zip
4. Compilando
Procure o diretório vc14 na pasta do The Forgotten Server que você baixou, e abra o arquivo "theforgottenserver.sln". Isso deverá iniciar o Visual Studio 2015 e você estará pronto para continuar.
Para configurar a compilação, navegue para Build -> Configuration Manager no menu superior. Um popup deverá aparecer onde você poderá escolher entre "Release" ou "Debug" para compilar, escolha também para qual Plataforma você irá compilar: 32-bits (Win32) ou 64-bits (x64).
Para iniciar a compilação, abra o menu Build novamente e clique em Build Solution (Ctrl + Shift + B).
5. Vídeo-aula
https://www.youtube.com/watch?v=Zfil84FMJsk
6. Créditos
Mark - Autor do tutorial e do projeto The Forgotten Server
Bruno Minervino - Tradução e gravação do vídeo
-
RaioX deu reputação a Drazyn1291 em Compilando TFS 1.3 com vídeo-aulaFunciona para versões menores de 1.x tbm?
-
RaioX deu reputação a leoleo em Train System (sistema de trem com video) testado tfs 1.0 by leoleoBem, venho trazer para vocês hoje um sistema de train funcionando 100% em TFS 1.0.
Direto ao assunto postei um video para verem o funcionamento
http://youtu.be/Lrw1lhTxp8E
Instalação
Primeiramente pessoal, deverão abrir a pasta data/movements/scripts/ . Copie qualquer arquivo renomeando-o como 'train.lua' sem as aspas. Abra esse arquivo e cole o seguinte codigo.
Feito isso pessoal, vão em data/movements/movements.xml e cole isso logo apos o primeiro <movements> do arquivo
Gostaria de convida-los para visitar o topico onde estou desenvolvendo meu projeto. O Pronoba
Acesse o PRONOBA
Obrigado
Creditos pelo script
LEOLEO
-
RaioX deu reputação a Bruno Carvalho em [v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)@Mitsuig Cara, estou seu servidor e a source 10.76 com cast system + map editor + otb (com suporte a oramond) pronto para lançar, mas queria bater um papo com você antes. Me aceita skype ou chama pm aqui no tk...
-
RaioX deu reputação a KekezitoLHP em Email System v1.3.9-- Name: E-mail System
-- Version: 1.3.9
-- Credits: Conde2
-- Tested: TFS 0.3.4(5) Crying Damson
_________________________
Sobre:
Este é um simples sistema de e-mails, que te possibilita mandar mensagens para todos os players, ate os offiline.
Necessário criar uma pasta chama "email" dentro da pasta DATA
OBS: NECESSITA DA LIB EXHAUSTION DO TFS !!
Comandos:
Código:
Agora vamos ao que interessa...
Abra a pasta data/talkactions/script e adicione isso em um arquivo lua chamado email.lua.
Dentro desse arquivo adicione esse Script:
EMAIL_BLOCK = 6364 EMAIL_ANTI_SPAWN = 15 EMAIL_MIN_MENSSAGE = 10 EMAIL_MAX_MENSSAGE = 100 EMAIL_STORAGE_ANTI_SPAWN = 6365 function onSay(cid, words, param) if words == "!sendemail" then if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param. Please use: !sendemail name, menssage") return TRUE end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "No menssage specified.") return TRUE end if (getPlayerGUIDByName(t[1]) == 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[1] .. " not exist.") return TRUE end if (string.len(t[2]) <= EMAIL_MIN_MENSSAGE) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't send this menssage, because so short.") return TRUE end if (string.len(t[2]) > EMAIL_MAX_MENSSAGE) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't send this menssage, because so long.") return TRUE end local id = getPlayerIdByName(""..t[1].."") if (getDataBaseStorage(id,EMAIL_BLOCK) == 1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, the player: " .. t[1] .. " has been blocked yours menssages.") return TRUE end if exhaustion.check(cid, EMAIL_STORAGE_ANTI_SPAWN) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Please wait a ".. exhaustion.get(cid, EMAIL_STORAGE_ANTI_SPAWN) .." secondes to send other email.") return TRUE end local directory = "data//email//".. t[1] ..".txt" if onFile("exist", directory) == FALSE then onFile("create", directory, "BY: ".. getCreatureName(cid) .." [" .. os.date("%d/%m/%Y %H:%M:%S") .. "] ".. t[2] .."\n") doPlayerSendTextMessage(cid, 22, "You have send to ".. t[1] .." this menssage: " .. t[2] .. ".") exhaustion.make(cid, EMAIL_STORAGE_ANTI_SPAWN, EMAIL_ANTI_SPAWN) else onFile("update", directory, "BY: ".. getCreatureName(cid) .." [" .. os.date("%d/%m/%Y %H:%M:%S") .. "] ".. t[2] .."") doPlayerSendTextMessage(cid, 22, "You have send to ".. t[1] .." this menssage: " .. t[2] .. "") exhaustion.make(cid, EMAIL_STORAGE_ANTI_SPAWN, EMAIL_ANTI_SPAWN) end local target = getPlayerByNameWildcard(""..t[1].."") if(target == 0) then target = getCreatureByName(""..t[1].."") if(target == 0) then return TRUE end end local tmp = getCreaturePosition(target) if (isOnline(""..t[1].."") == TRUE) then addEvent(doSendAnimatedText, 1, tmp, "Menssage!", TEXTCOLOR_PURPLE) addEvent(doSendAnimatedText, 1000, tmp, "Menssage!", TEXTCOLOR_PURPLE) addEvent(doSendAnimatedText, 2000, tmp, "Menssage!", TEXTCOLOR_PURPLE) doPlayerSendTextMessage(target, 19, " A new menssage arrived, look your email box. (!checkemail)!!") end elseif words == "!checkemail" then local name = getCreatureName(cid) local directory = "data//email//".. name ..".txt" if onFile("exist", directory) == FALSE or onFile("load", directory) == nil then doPlayerSendTextMessage(cid, 22, "Sorry you don't have any menssage.") else for line in io.lines(directory) do doShowTextDialog(cid,7528, "You have menssages: \n \n ".. line .." \n \n \n For look the next menssage click in the button: OK") end end elseif words == "!deleteemail" then local name = getCreatureName(cid) local directory = "data//email//".. name ..".txt" if onFile("exist", directory) == TRUE and onFile("load", directory) ~= nil then onFile("delete", directory) onFile("erase", directory) doPlayerSendTextMessage(cid, 22, "Sucessful!! You have deleted all yours menssages !!") else doPlayerSendTextMessage(cid, 22, "Sorry you don't have any menssage to delete.") end elseif words == "!blockemail" then setPlayerStorageValue(cid, EMAIL_BLOCK, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You has been bloked your e-mail. Please relog to make effect.") elseif words == "!unblockemail" then setPlayerStorageValue(cid, EMAIL_BLOCK, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You has been unbloked your e-mail. Please relog to make effect.") end end Agora vá em data/global.lua
Ou em data/lib/data.lua e adicione isso na última linha:
function isOnline(name) -- by mock local players = getOnlinePlayers() name = string.lower(name) for i, player in ipairs(players) do player = string.lower(player) if name == player then return TRUE end end return FALSE end function getDataBaseStorage(pid,value_id) -- by Conde2 local coisa = db.getResult("SELECT * FROM `player_storage` WHERE `player_id` = ".. pid .." AND `key` ="..value_id..";") if coisa:getID() == -1 then return -1 else return coisa:getDataInt("value") end end function onFile(type, directory, content) -- by Conde2 local master = 0 if type == "create" then local file = io.open(directory, "w") master = file:write(content) file:close() elseif type == "erase" then local file = io.open(directory, "w+") master = file:write("") file:close() elseif type == "load" then local file = io.open(directory,"r") master = file:read() file:close() elseif type == "update" then local file = io.open(directory, "a+") master = file:write(content.."\n") file:close() elseif type == "return" then local file = io.open(directory, "a+") master = file:write(" "..content) file:close() elseif type == "delete" then os.remove(directory) elseif type == "exist" then file = io.open(directory) if file == nil then master = FALSE else master = TRUE end end return master end Tags:
E finalmente vá para data/talkactions/talkactions.xml
Abra ele com um bloco de notas e adicione isso:
<talkaction words="!sendemail" event="script" value="email.lua"/> <talkaction words="!deleteemail" event="script" value="email.lua"/> <talkaction words="!checkemail" event="script" value="email.lua"/> <talkaction words="!blockemail" event="script" value="email.lua"/> <talkaction words="!unblockemail" event="script" value="email.lua"/> Configurando:
Para configurar basta ir em data/talkactions/email.lua e editar isso:
EMAIL_BLOCK = 6364
EMAIL_ANTI_SPAWN = 15
EMAIL_MIN_MENSSAGE = 10
EMAIL_MAX_MENSSAGE = 100
EMAIL_STORAGE_ANTI_SPAWN = 6365
# Storage value para bloquear / desbloquear o email.
# O tempo que o player terá que esperar para mandar outra mensagem (Em segundos)
# Quantas letras no mínimo a mensagem tem que ter para poder ser enviada.
# Quantas letras no máximo deverá ter a menssagem.
# Storage para definir o exausted !!
-
RaioX deu reputação a MaXwEllDeN em {Simple} Level Points#Introdução
Este é um sistema muito simples e básico que eu fiz baseando-me no jogo Mu Online, no qual ao avançar de nível você ganha pontos que podem ser distribuídos para aumentar seus "stats".
#Instalação
Faça o download do sistema e cole na pasta do seu servidor.
@Creaturescripts
Depois abra a pasta creaturescripts/scripts que fica dentro da pasta data do seu servidor, abra o arquivo login.lua, com algum editor de texto, e lá no final antes do último return true cole a seguinte linha:
registerCreatureEvent(cid, "PointSystem") #Configuração No arquivo PointsSystem.lua da pasta lib L_LvlPoints = { vocPoints = { -- [Skill] = Pontos que ganha, [1] = 3, [2] = 3, [3] = 3, [4] = 5, [5] = 5, [6] = 5, [7] = 5, [8] = 8, }, entre Colchetes fica o id da vocation, e depois do sinal de igualdade a quantidade de pontos que ele ganhará por level que for upado. attributes = { ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}, -- Precisa usar 2 points para adicionar 10 de hp ["energy"] = {np = 4, vl = 2, nm = "Mana Points"}, ["magic"] = {np = 30, vl = 1, nm = "Magic Level"}, ["shielding"] = {np = 40, vl = 1, nm = "Shielding Skill"}, ["sword"] = {np = 20, vl = 1, nm = "Sword Skill"}, ["axe"] = {np = 20, vl = 1, nm = "Axe Skill"}, ["club"] = {np = 20, vl = 1, nm = "Club Skill"}, ["distance"] = {np = 20, vl = 1, nm = "Distance Skill"}, } np - quantidade de pontos para adicionar o stat vl - quanto vai adicioanar pelo np. Exemplo: ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}
Com 2 pontos eu compro 5 de HP
É isso ai galera, bye bye
-
RaioX deu reputação a luanluciano93 em [TFS 1.x] TK Vip SystemOlá pessoal, estou desenvolvendo esse sistema vip para TFS 1.x, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos.
É só ir no arquivo data/lib/core/player.lua e adicionar esse código no começo do script:
-- ALTER TABLE `accounts` ADD `vip_time` BIGINT(20) NOT NULL DEFAULT 0; -- player:getVipTime() function Player.getVipTime(self) local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") local time = resultId ~= false and result.getNumber(resultId, "vip_time") or 0 result.free(resultId) return time end -- player:isVip() function Player.isVip(self) return self:getVipTime() > os.time() and true or false end -- player:addVipDays(days) function Player.addVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVipDays(days) function Player.removeVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:setVipDays(days) function Player.setVipDays(self, days) return db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVip() function Player.removeVip(self) db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:sendVipDaysMessage() function Player.sendVipDaysMessage(self) if self:isVip() then local vipTime = self:getVipTime() - os.time() local vipDays = 1 + (math.floor(vipTime / 86400)) return self:getVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You have '.. vipDays .. ' vip day(s) in your account.') end end -- player:checkVipLogin() function Player.checkVipLogin(self) if self:getVipTime() > 0 and not self:isVip() then return self:removeVip() and self:teleportTo(self:getTown():getTemplePosition()) end end
As funções são:
• player:getVipTime() - Retorna o valor da tabela vip_time (igual esta na database).
• player:isVip() - Retorna se o player é vip ou não.
• player:addVipDays(days) - Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days").
• player:removeVipDays(days) - Usa-se em algum script para para remover dias de vip do player (parâmetro de entrada "days").
• player:setVipDays(days) - Usa-se em algum script para para mudar os dias de vip do player (parâmetro de entrada "days").
• player:removeVip() - Usa-se em algum script para para remover todo tempo de vip do player.
• player:sendVipDaysMessage() - Retorna uma mensagem no player mostrando os dias de vip que ainda restam ao player.
• player:checkVipLogin() - Checa se a vip do player acabou, se sim teleporta ele para o templo.
Qualquer dúvida ou erro/bug poste aqui.
-
RaioX deu reputação a Malblofor em [WebSite] Gesior Tfs 1.0 Modificado by Malbloforup@
37 down e nenhum comentario e nem rep+