Spik3ex 14 Postado Junho 6, 2013 Share Postado Junho 6, 2013 (editado) Olá caro amigos do XTibia. Venho aqui apresentar pra vocês no momento a melhor REV 3884 100% works. Quando eu digo 100% works, são todos os bugs e erros fixados, apresentamos os seguinte conteúdo nessa REV: - Fix/Patch Hotkey que pode haver lag/freeze no servidor. - Limite de peso de items no Mailbox 5000oz. - Anti-Push Enable 1sec. - PushTime Enable 1sec. (config.lua mudar pushCreatureDelay = 1 * 1) - Anti-Divulgação 100% (Não pode enviar links nem com espaço (ex: www .site. com)). - Anti-Clone items NPC (Hotkey Elfbot Patched/Fixed) - Proteção para jogador não levar debug. - Anti-Lag (correções na REV 0.4 , 0% de erros ao compilar) - Fix/Patched server closed connection MySQL. - Level e Vocação apareçem na tela de Login. - Auto Attack + Runa + Spells ao mesmo tempo. (Não tem exhaust É UM BUG DA REV 3884 CORRIGIDO POR MIM) - All hits works 100% players/monsters - Script já incluso na source para não ser banido da OTServlist.org Protocolo: 8.60 Tipo de Distro: CONSOLE E outras coisas que não me lembro por colocar, mais enfim, é a REV 3884 mais segura que eu fiz no momento... Essa versão é FREE, vou fazer mais atualizações, porém não vou postar, então usem e abusem dessa ultima atualização! Crio qualquer tipo de Distro com Dual Weapons, ou qualquer outro comando a escolha ( skype: igorp999 ) Downloads: Download (pasta data caso queira passar seu TFS para 0.4) http://www.sendspace.com/file/qjekej ATENÇÃO: Tome cuidado ao passar, peça a alguem experiente, pois podera bugar e parar o funcionamento de vários scripts do teu ATS. Distro atualizada 08/06/2013 (more bugs fixed) http://www.sendspace.com/file/d8rlf9 Distro atualizada (COM WAR SYSTEM) 08/06/2013 (more bugs fixed) http://www.sendspace.com/file/kcsite Dlls da distro: http://www.sendspace.com/file/2xyu6q Scans: Dlls.rar https://www.virustot...sis/1370769175/ data.rar https://www.virustot...sis/1370769136/ Distro IgorPereira.exe https://www.virustot...sis/1370769123/ Distro IgorPereira.exe (WAR SYSTEM) https://www.virustot...sis/1370790278/ WAR SYSTEM Se baixou com WAR SYSTEM leia abaixo como terminar a instalação. Execute essa SQL em sua database. CREATE TABLE IF NOT EXISTS `guild_wars` ( `id` INT NOT NULL AUTO_INCREMENT, `guild_id` INT NOT NULL, `enemy_id` INT NOT NULL, `begin` BIGINT NOT NULL DEFAULT '0', `end` BIGINT NOT NULL DEFAULT '0', `frags` INT UNSIGNED NOT NULL DEFAULT '0', `payment` BIGINT UNSIGNED NOT NULL DEFAULT '0', `guild_kills` INT UNSIGNED NOT NULL DEFAULT '0', `enemy_kills` INT UNSIGNED NOT NULL DEFAULT '0', `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `status` (`status`), KEY `guild_id` (`guild_id`), KEY `enemy_id` (`enemy_id`)) ENGINE=InnoDB;ALTER TABLE `guild_wars` ADD CONSTRAINT `guild_wars_ibfk_1` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_wars_ibfk_2` FOREIGN KEY (`enemy_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE;ALTER TABLE `guilds` ADD `balance` BIGINT UNSIGNED NOT NULL AFTER `motd`;CREATE TABLE IF NOT EXISTS `guild_kills` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `guild_id` INT NOT NULL, `war_id` INT NOT NULL, `death_id` INT NOT NULL) ENGINE = InnoDB;ALTER TABLE `guild_kills` ADD CONSTRAINT `guild_kills_ibfk_1` FOREIGN KEY (`war_id`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_2` FOREIGN KEY (`death_id`) REFERENCES `player_deaths` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_3` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE;ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0; Entre na pasta do seu OTServ/data/talkactions/talkactions.xml <talkaction words="/war" channel="0" event="script" value="war.lua" desc="(Guild channel command) War management."/> <talkaction words="/balance" channel="0" event="script" value="balance.lua" desc="(Guild channel command) Balance management."/> Crie um arquivo dentro da scripts na talkactions chamado "WAR.LUA" talkactions/scripts/war.lua function onSay(cid, words, param, channel)local guild = getPlayerGuildId(cid)if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0) return trueendlocal t = string.explode(param, ",")if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return trueendlocal enemy = getGuildId(t[2])if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return trueendif(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return trueendlocal enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy)if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free()endif(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild if(t[1] == "cancel") then query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy end tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp:getID() == -1) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end if(t[1] == "accept") then local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment") _tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0) return true end db.executeQuery("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. tmp:getDataInt("id") if(t[1] == "accept") then doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD) doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY) end tmp:free() db.executeQuery(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return trueendif(t[1] == "invite") then local str = "" tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp:getID() ~= -1) then if(tmp:getDataInt("status") == 0) then if(tmp:getDataInt("guild_id") == 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 tmp:free() end if(str ~= "") then doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0) return true 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.max(100000, math.min(1000000000, payment)) tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0) return true end db.executeQuery("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.executeQuery("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return trueendif(not isInArray({"end", "finish"}, t[1])) then return falseendlocal status = (t[1] == "end" and 1 or 4)tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status)if(tmp:getID() ~= -1) then local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id") tmp:free() doGuildRemoveEnemy(guild, enemy) doGuildRemoveEnemy(enemy, guild) db.executeQuery(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return trueendif(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return trueendtmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1")if(tmp:getID() ~= -1) then if(tmp:getDataInt("end") > 0) then tmp:free() doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id") tmp:free() db.executeQuery(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return trueenddoPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)return trueend Crie um arquivo dentro da scripts na talkactions chamado "BALANCE.LUA" talkactions/scripts/balance.lua local function isValidMoney(value)if(value == nil) then return falseendreturn (value > 0 and value <= 99999999999999)endfunction onSay(cid, words, param, channel)local guild = getPlayerGuildId(cid)if(guild == 0) then return falseendlocal t = string.explode(param, ' ', 1)if(getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER and isInArray({ 'pick' }, t[1])) then if(t[1] == 'pick') then local money = { tonumber(t[2]) } if(not isValidMoney(money[1])) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end local result = db.getResult('SELECT `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end money[2] = result:getDataLong('balance') result:free() if(money[1] > money[2]) then doPlayerSendChannelMessage(cid, '', 'The balance is too low for such amount.', TALKTYPE_CHANNEL_W, 0) return true end if(not db.executeQuery('UPDATE `guilds` SET `balance` = `balance` - ' .. money[1] .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;')) then return false end doPlayerAddMoney(cid, money[1]) doPlayerSendChannelMessage(cid, '', 'You have just picked ' .. money[1] .. ' money from your guild balance.', TALKTYPE_CHANNEL_W, 0) else doPlayerSendChannelMessage(cid, '', 'Invalid sub-command.', TALKTYPE_CHANNEL_W, 0) endelseif(t[1] == 'donate') then local money = tonumber(t[2]) if(not isValidMoney(money)) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end if(getPlayerMoney(cid) < money) then doPlayerSendChannelMessage(cid, '', 'You don\'t have enough money.', TALKTYPE_CHANNEL_W, 0) return true end if(not doPlayerRemoveMoney(cid, money)) then return false end db.executeQuery('UPDATE `guilds` SET `balance` = `balance` + ' .. money .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;') doPlayerSendChannelMessage(cid, '', 'You have transfered ' .. money .. ' money to your guild balance.', TALKTYPE_CHANNEL_W, 0)else local result = db.getResult('SELECT `name`, `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end doPlayerSendChannelMessage(cid, '', 'Current balance of guild ' .. result:getDataString('name') .. ' is: ' .. result:getDataLong('balance') .. ' bronze coins.', TALKTYPE_CHANNEL_W, 0) result:free()endreturn trueend Passo IMPORTANTE: Crie um arquivo chamado "101-war.lua" na pasta data/lib WAR_GUILD = 0WAR_ENEMY = 1WARINFO_LIMIT = 2 Agora em creaturescripts/scripts/start.lua ou init.lua adicione: db.executeQuery("DELETE FROM `guild_wars` WHERE `status` = 0 AND `begin` < " .. (os.time() - 2 * 86400) .. ";")db.executeQuery("UPDATE `guild_wars` SET `status` = 5, `end` = " .. os.time() .. " WHERE `status` = 1 AND `end` > 0 AND `end` < " .. os.time() .. ";") Sistema 100% Funcionando, enjoy @TESTEM E COMENTEM & REP ++. Thank you.Abraços, boa utilidade a todos. Editado Junho 9, 2013 por Spik3ex Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/ Compartilhar em outros sites More sharing options...
Taiger 286 Postado Junho 6, 2013 Share Postado Junho 6, 2013 Não tem as sources? Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1528752 Compartilhar em outros sites More sharing options...
Spik3ex 14 Postado Junho 6, 2013 Autor Share Postado Junho 6, 2013 Não tem as sources? Não amigo, esse Distro contém códigos PREMIUM de um forum aí que eu não posso citar o nome, e eu não posso publicar as source. Porém, é o melhor DISTRO no momento! Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1528756 Compartilhar em outros sites More sharing options...
Stryp 2 Postado Junho 7, 2013 Share Postado Junho 7, 2013 Na hora do login dá debug o_O Por que isso? '-' Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1529168 Compartilhar em outros sites More sharing options...
Spik3ex 14 Postado Junho 8, 2013 Autor Share Postado Junho 8, 2013 (editado) Na hora do login dá debug o_O Por que isso? '-' Você tá usando um OTServ 0.4?. Porque se não tiver vai ter que mudar as libs, e algumas functions no login.lua pra passa ele pra 0.4. Se o seu OT for 0.3.6 eu também tenho uma distro 0.3.6 postada aqui com as mesmas funções dessa amigo... Faça o download e abra ela. Abraços. >> http://www.xtibia.com/forum/topic/215766-distro-tfs-036-anti-dv-atualizada-07062013/ Editado Junho 8, 2013 por Spik3ex Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1529468 Compartilhar em outros sites More sharing options...
Stryp 2 Postado Junho 8, 2013 Share Postado Junho 8, 2013 Ok ok vou testar aqui já já rep+ Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1529762 Compartilhar em outros sites More sharing options...
Spik3ex 14 Postado Junho 8, 2013 Autor Share Postado Junho 8, 2013 Ok ok vou testar aqui já já rep+ Testa & comenta no topico, abraços. Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1529765 Compartilhar em outros sites More sharing options...
Vilden 137 Postado Junho 9, 2013 Share Postado Junho 9, 2013 (editado) Nossa cara, esse distro deve ta show de bola. Eu tenho um sv e sofro com um bug que os cara liga antipush embaixo da porta e ficam la mt tempo, e dai eles saem, o sv da uma travada. também tava com bug dos player toma debug.. edit: Tentei botar o distro 04 e não funcionou, da debug nas contas e no account manager funciona. ja o 036 funcionou.. você podia disponibiliza uma pasta /data pra gente usar como base? Editado Junho 9, 2013 por Vilden Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1529854 Compartilhar em outros sites More sharing options...
Spik3ex 14 Postado Junho 9, 2013 Autor Share Postado Junho 9, 2013 Nossa cara, esse distro deve ta show de bola. Eu tenho um sv e sofro com um bug que os cara liga antipush embaixo da porta e ficam la mt tempo, e dai eles saem, o sv da uma travada. também tava com bug dos player toma debug.. edit: Tentei botar o distro 04 e não funcionou, da debug nas contas e no account manager funciona. ja o 036 funcionou.. você podia disponibiliza uma pasta /data pra gente usar como base? Olá caro amigo, tópico atualizado com a pasta data e dlls e nova Distro fixada. Reveja o 1º post e baixe novamente! Dúvidas, só postar. Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1529963 Compartilhar em outros sites More sharing options...
AdilsonHacker 98 Postado Junho 9, 2013 Share Postado Junho 9, 2013 Tem War System ? Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1530067 Compartilhar em outros sites More sharing options...
Spik3ex 14 Postado Junho 9, 2013 Autor Share Postado Junho 9, 2013 (editado) Tem War System ? Nossa equipe não implantou o sistema de WarSystem devido a informação da equipe @TFS Team, o WarSystem incluso na source estava pesando mais o executavel (AUMENTO DE USO DE CPU). Mais temos a source pronta também com WarSystem se quiser também posto com as mesmas funções dessa Distro, porém se o executavel aumentar o uso de memoria não é problema da Distro. Temos também o WarSystem por Mod ou Scripts, que é 100% works nessa distro e sem nemhum tipo de alagamento na CPU. Abraços, até mais. Editado Junho 9, 2013 por Spik3ex Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1530072 Compartilhar em outros sites More sharing options...
AdilsonHacker 98 Postado Junho 9, 2013 Share Postado Junho 9, 2013 Tipo sé você postar ele ai desse jeito com war system , irei gostar bastante ! Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1530076 Compartilhar em outros sites More sharing options...
Spik3ex 14 Postado Junho 9, 2013 Autor Share Postado Junho 9, 2013 (editado) Tipo sé você postar ele ai desse jeito com war system , irei gostar bastante ! Ok, se insiste adicionar por source :S, postando em breve. Abraços. @TOPICO ATUALIZADO. Segue o 1º post e faça o download e a instalação do WAR SYSTEM. Abraços. Editado Junho 9, 2013 por Spik3ex Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1530079 Compartilhar em outros sites More sharing options...
AdilsonHacker 98 Postado Junho 9, 2013 Share Postado Junho 9, 2013 Amigo você colocou o scan , quero o download '-' Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1530104 Compartilhar em outros sites More sharing options...
Spik3ex 14 Postado Junho 9, 2013 Autor Share Postado Junho 9, 2013 Amigo você colocou o scan , quero o download '-' Se você ler o topico com bastante "ATENÇÃO" encontrará escrito: Distro atualizada (COM WAR SYSTEM) 08/06/2013 (more bugs fixed) http://www.sendspace.com/file/kcsite Abraços u.u Link para o comentário https://xtibia.com/forum/topic/215715-distro-tfs-04-anti-dv-atualizada-06062013/#findComment-1530109 Compartilhar em outros sites More sharing options...
Posts Recomendados