Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/09/13 em todas áreas
-
Ola para alguns jogadores que jogaram meu servidor "Naruto Shinobi Life" em 2012 , hoje desisti do projeto e vim postar o mapa para vocês para quem não sabe , meu servidor digamos que não era um dos melhores na epoca mais fica com cerca de 50 a 40 player onnline por dia , sendo ele 24 Horas Bugs4 pontos
-
Shiny Dragonite (Pokemon)
Gabrieltxu e 2 outros reagiu a Noninhouh por um tópico no fórum
Bom galera, primeiramente gotaria de dizer que não é totalmente minha... PxG = 75% (Fez o verdadeiro Dragonite) Eu = 25% (Editei o verdadeiro Dragonite) E ai, oq acharam?3 pontos -
ah você usa versão mais antiga, aí complica... testa assim: local xml = io.open(getDataDir().."monster/monsters.xml", "r") local monsters = false if xml then monsters = xml:read("*all") xml:close() end function onLogin(cid) if monsters and monsters:find('name="'..getCreatureName..'"') then return false end return true end2 pontos
-
não deu pra enteder bem o que era pra ser isso aí, mas tenta assim: function hasWater(cid, percent, item, limit) if percent > (limit or 100) then return false end local pouch = item or getPlayerSlotItem(cid, 10) local ids = {11941, 11943} if isInArray(ids, pouch.itemid) and (pouch.actionid == 0 and 100 or pouch.actionid-100) >= percent then local newtype = (pouch.actionid == 0 and 100 + (limit or 100) or pouch.actionid) - percent if newtype == 100 then doTransformItem(pouch.uid, 11940) end doSetItemActionId(pouch.uid, newtype) return newtype end return false end function onLook(cid, thing, position, lookDistance) if thing.itemid > 1 then local n = hasWater(cid, 0, thing, 200) if n then doPlayerSendTextMessage(cid, 22, (n-100) .. "% of water.") end end return true end2 pontos
-
Só ter criatividade. Na minha opinião acho que não precisa ser um comércio como feira, por exemplo. Um chalé em uma montanha fria que ofereça suprimentos para aventureiros é algo relacionado, creio eu.. Não quero dar inspiração btw ;(2 pontos
-
TFS 0.4 + Source (8.70) é Source 0.4 (9.60)
josedb9 reagiu a AdilsonHacker por um tópico no fórum
Eai galerinha do Xtibia ? Suave ? Bom vejo muito pelo fórum muita gente precisando dos TFS 0.4 para versões mais novas como 8.70 é 9.60 , venho aqui trazer Essa Ajuda Para Vocês ! TFS 0.4 dev r5831 (9.60) Bom galera esta é uma soruce muito procurada então venho disponibilizar para vocês , está source está numa forma Estável , no momento ele só esta rodando nessa versão sem quase nenhuma novidades , mais para compensar as source já vai pronta sem bug para que vocês possam recompilar! ( SOURCE ) >Download Source< >Scan< [ Programa Usado Para Compilar o Distro ] CodeBlocks Créditos : Henke Rula ( De outro fórum que me passou as source ) AdilsonHacker ( Por trazer o conteúdo para o Xtibia ) TFS 0.4_dev r4382 (8.70) Este tfs 0.4 também vai todo estável , mais vai com war system sem bugs , Anti cloner , também não tem muita novidades mais como falei vai com as source para vocês compilarem do seus jeito ! >Download Distro+Source< >Scan< [ Programa Usado Para Compilar o Distro ] Dev C++ Créditos : AdilsonHacker Espero ter ajudado ! Abraços!1 ponto -
[8.54] Naruto Seven / Client Descompilado [Download]
superboy0008 reagiu a Stigal por um tópico no fórum
• NARUTO SEVEN - DOWNLOAD • Tópico e Links atualizados: 27/02/17 • Menu: ├ Informações; ├ Jutsus; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Jutsus Do Servidor • • PrintScreen • • Download's • Servidor 8.54 + Cliente (MediaFIRE) http://www.mediafire.com/file/99upszbnbb7aklb/Nrtao V.2.rar Senha Para Entrar No Server / (Do GOD): god / god • Creditos • Stigal, Avuenja.1 ponto -
Sistema de Torneio V2.0 Saudações galera, tudo de bão e do mió? Recebi alguns pedidos e vim trazer hoje para vocês o V2.0 do meu sistema de Torneio. Changelog: V2.0: Arrumado alguns BUGS. V2.0: Agora temos sala de espera. V2.0: Funciona também em Naruto, Pokemon & seus derivados! Instalação: Siga para data/lib, nessa mesma pasta crie um arquivo chamado tournament.lua e adicione dentro: Em data/npc/ crie um arquivo chamado Tournament.xml e adicione dentro: Entre na pasta scripts dentro de data/npc/ e crie um arquivo chamado tournament.lua e adicione dentro: Agora vá para a pasta data/globalevents/scripts, dentro dela crie um arquivo chamado tournament.lua e adicione dentro: Em globalevents.xml adicione essa tag: <globalevent name="TournamentStart" time="17:47" event="script" value="tournament.lua"/> Em data/actions/scripts, crie um arquivo chamado tournament.lua e adicione dentro: Abra com o bloco de notas o arquivo actions.xml e adicione a seguinte tag: <action uniqueid="18279" event="script" value="tournament.lua"/> Configuração: O arquivo que instalamos na pasta data/lib (tournament.lua), abra-o com o bloco de notas e vamos configurar esta parte: torneio = { awardTournament = 2148, awardAmount = 2, playerTemple = {x = 1008, y = 1018, z = 7}, tournamentFight = {x = 1017, y = 1026, z = 7}, area = {fromx = 1008, fromy = 1018, fromz = 7, tox = 1024, toy = 1033, toz= 7}, area2 = {x = 1008, y = 1018, z = 7}, {x = 1024, y = 1033, z = 7}, waitPlace = {x = 1017, y = 1044, z = 7}, waitArea = {fromx = 1010, fromy = 1040, fromz = 7, tox = 1024, toy = 1050, toz= 7}, startHour = "17:40:00", endHour = "17:50:00", price = 10000, revivePoke = 2494, } awardTournament colocamos o ItemID da recompensa do vencedor do torneio, awardAmount a quantidade. playerTemple colocamos as coordenadas do templo de alguma cidade, é para lá que ele vai ser teleportado ao vencer. tournamentFight colocamos as coordenadas do CENTRO da Arena de Torneios. Em area colocamos: (fromx, fromy e fromz) as coordenadas do canto superior esquerdo da Arena, (tox, toy e toz) colocamos as coordenadas do canto inferior direito da Arena. Em waitPlace colocamos as coordenadas do CENTRO, da Sala de Espera para começar o Torneio! Já o waitArea é a mesma coisa do "area" só que nesse é os cantos superior esquerdo e inferior direito da Sala de Espera. startHour colocamos a hora em que o NPC começa a vender entradas para o Torneio, é a hora do dia, com hora/minutos/e segundos, no formato "00:00:00", lá tem que ficar entre aspas! Já o endHour é a hora que ele para de vender as entradas e que começa o Torneio pra valer! Galera, o revivePoke, se seu OTServer for de Tibia, não MEXAM! Agora, se for Pokétibia, você muda o valor do revivePoke para o Item ID dos revives, isso serve para o player não levar revives pro Torneio. Em globalevents.xml na tag: <globalevent name="TournamentStart" time="17:47" event="script" value="tournament.lua"/> Aqui time="17:47" coloque o horário TERMINA as inscrições para o Torneio, é o mesmo do que endHour do lib. Mas aqui você só pode por em formato horas:minutos (00:00) Prontinho, agora é só ir no RME Map Editor e colocar UNIQUE ID 18279 em uma alavanca ou item dentro da Arena, isso serve para o player que ganhar ir embora com seu prêmio Finalizações: Bom galera, é isso por hoje, espero que façam um bom e ótimo uso. Estou disposto a aceitar DICAS/SUGESTÕES/CRÍTICAS & BUGS! Muito obrigado pela atenção! Download Tournament MAP (8.54) Download Sistema de Torneio V2.01 ponto
-
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 true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return true end local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free() end if(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 true end if(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 true end if(not isInArray({"end", "finish"}, t[1])) then return false end local 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 true end if(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end tmp = 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 true end doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end Crie um arquivo dentro da scripts na talkactions chamado "BALANCE.LUA" talkactions/scripts/balance.lua local function isValidMoney(value) if(value == nil) then return false end return (value > 0 and value <= 99999999999999) end function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(guild == 0) then return false end local 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) end elseif(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() end return true end Passo IMPORTANTE: Crie um arquivo chamado "101-war.lua" na pasta data/lib WAR_GUILD = 0 WAR_ENEMY = 1 WARINFO_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.1 ponto
-
Slayer Art Online Client
Alaneric02 reagiu a craigmabbit por um tópico no fórum
bom, eu resolvei retomar o projeto Slayer Art Online"Sword Art Online", e fiz umas atualizações no projeto enfim, ai vai uma ss Bom, isso é só o começo.1 ponto -
Olááá galera do Ékz. Esses dias o XTibia tá muito parado, não tem nem pedido direito pra atender, e no último Sds teve poucos scripts. Entããão resolvi postar um sisteminha que eu fiz com base num pedido em algum lugar da internet. É o Partner System. O que ele faz: Você chama um amigo seu para jogar o server, mas para dar um ânimo nele, você convida-o para ser seu Partner, e enquanto ele for abaixo de tal level (configurável, default 50), ele terá um bônus de EXP (configurável, default 10%). Assim que chegar no level limite, o bônus acaba. Motivos para usar o sistema? Ora, como já disse anteriormente, serve para animar o jogo do player, para incentivá-lo a jogar mais. Chega de blablabla e vamos ao script: Novidades: • Agora você pode aceitar ou rejeitar convites mesmo que a pessoa que te convidou esteja offline • Quando você convida alguém e ele rejeita ou aceita o convite com você offline, ao logar você recebe uma mensagem informando a decisão da pessoa. • Todos os bugs corrigidos Configurando: waittime = 24 -- Tempo de espera em horas para convidar alguém novamente storage = 4651 level = 100 -- Level necessário para convidar alguém maxlevel = 50000 -- Level máximo para alguém virar partner e para ter bônus de EXP maxp = 5 -- Maximo de partners que alguém pode ter rate = 1.1 -- Rate do bônus Uso: Player: !partner Fulano -- Fulano foi convidado Fulano: !partner aceitar ou rejeitar -- Fulano aceita ou rejeita o convite. Observações: 1) Todos os bugs corrigidos. 2) Funciona em TFS versão 0.3.6 pra frente. Créditos: LuckOake -- Pelo sistema Vodkart -- Pela ideia e ajudas1 ponto
-
Se conectando em um VPS Windows
joseanpereira reagiu a Erimyth por um tópico no fórum
Ola Amigos Xtibianos. Hoje trago a vocês um Tutorial explicando facilmente como se conectar em um VPS Windows, o VPS usado hoje sera o Windos Starter da Empresa ServerSoft, bom espero que gostem vamos la. Passo 1.0 Primeiramente Vamos ao Botão Iniciar no Seu Windows. e na barra " Pesquisar programas e Arquivos " Digite a seguinte frase: " Conexão de área de Trabalho Remota " assim você ira localizar o sistema que ira utilizar para se conectar ao VPS como mostra a Imagem abaixo. Passo 2.0 Quando você Localizar a Conexão de área de Trabalho Remota clique sobre ela, e uma nova janela ira aparecer, nessa nova janela você ira Colocar o IP do VPS que a empresa lhe passou após contratar o serviço. Exemplo: Passo 2.1 Após colocar seu IP Clique em Conectar, e aguarde aparecer a tela de Login. Nela coloque seu Password, que também foi Informado a você após contratar o serviço, este password ou foi escolhido por você ou pela empresa e foi enviado Juntamente ao IP através do seu e-mail de contato cadastrado no site. Exemplo: Após digitar seu Password clique em OK e aguarde a conexão. Prontinho amigo, você já esta conectado ao Seu VPS Windows. Foi super Fácil né? espero poder ajudar a você em tirar suas duvidas com a Conexão em Windows. Segue uma Imagem da área de Trabalho Remota.1 ponto -
[Encerrado] Mapa Para Pokemon
vital900 reagiu a Alvarovictor por um tópico no fórum
Mano mil desculpas...1 ponto -
•Topico Resolvido / Reportado para Moverem1 ponto
-
local outfits = { [1413] = {1510, 1511, 1512},--volcanic male [1160] = {1689, 1690, 1691, 1692, 1693, 1694, 1695,1694, 1693, 1692, 1691, 1690},--raibolt male [1162] = {1696, 1697, 1698, 1699, 1700, 1699, 1698, 1697, 1696},--seavel male [1159] = {1701, 1702, 1703, 1704, 1705, 1704, 1703, 1702, 1701},--naturia male [1158] = {1710, 1711, 1709, 1708, 1707, 1706, 1707, 1708, 1709, 1709, 1711, 1710},--wingeon male [1751] = {1713, 1714, 1715, 1712, 1715, 1716, 1715, 1714, 1713},--malefic male [1155] = {1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725},--Gardestrike male [1161] = {1727, 1728, 1729, 1730, 1731, 1732, 1733},--Psycraft male [1156] = {1735, 1736, 1737, 1738, 1739, 1734, 1738, 1737, 1736, 1735},--Orebound male [1153] = {1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1750},--malefic female [1146] = {1760, 1761, 1762, 1763, 1764, 1763, 1762, 1761, 1760},--Gardestrike female [1152] = {1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1765},--volcanic female [1151] = {1774, 1775, 1776, 1777, 1778, 1779, 1780},--seavel female [1149] = {1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791},--Naturia female [1145] = {1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1792},--Psycraft female [1150] = {1801, 1802, 1803, 1804, 1805, 1804, 1803, 1802, 1801},--Orebound female [1147] = {1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1806},--Raibolt female [1148] = {1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824},--Wingeon female [1183] = {1829, 1830, 1831, 1832, 1831, 1832},--police male [1184] = {1825, 1826, 1827, 1828, 1827, 1828},--police female }TEU OUTFIT N TA AKI KRL1 ponto
-
1 ponto
-
Download: http://www.sendspace.com/file/natjgw Download Link 2#: http://www.multiupload.nl/BO902OJG51 OS DOIS FUNCIONANDO 100%.1 ponto
-
Shiny Dragonite (Pokemon)
BananaFight reagiu a Enself por um tópico no fórum
Gostei bastante cara se tem talento nossa. REP+1 ponto -
Kamatami Global - NOVO 8.6 !
murilo103 reagiu a legolaszinho por um tópico no fórum
Servidor criado ontem!!! Venha conferir! Site: http://www.kamatami-global.com IP: sv.kamatami-global.com PORT: 7171 Versão: 8.60' 8.61 Servidor: 24 Horas Hospedado e Protegido por JVServers/Limestone Networks World: PVP 100+ *ZAO COMPLETED! *Guild Wars (Escudos) *Outfits 100%, confira nosso site para saber melhor sobre umas modificações que fizemos. *Respawns próprios e personalizado *Mapa Global Full (Contendo updates para deixar 100% global) *Bank System *Quests Global 100% *Magias 9.8 e customs SEM BUG DE COMBO ~~> ISSO MESMO 9.8 *TASK System 100% Algumas Quests: -Demon Helmet -Dreamer’s Challenge -Firewalker Boots -In Service of Yalahar -Koshei the Deathless -Pits of Inferno -Svargrond Arena -The Ancient Tombs -The Annihilator -The Inquisition -The Demon Oak -The Elemental Spheres -The New Frontier -The Queen of the Banshees -Wrath of the Emperor -Entre outras1 ponto -
Proibir nome de monstro script LUA
Hamsterbob reagiu a AdilsonHacker por uma questão
Amigo testei aqui deu erro , qualquer player que logar o script pensa que e monster é não acontece nada , só da esse erro no console , se desse pra arruma e pra quando o player com nome de monstro logar é for kikado aparecer a msg "Proibido Nomes De Monstro" ou algo assim ficaria legal ! SS Abraços!1 ponto -
1 ponto
-
Programação C
Prodigious reagiu a fredpadua por uma questão
Como eu expliquei, a multiplicação, nada mais é doque -> numero + numero + numero .. int main() { int i; for(i = 0; i <= 3; i++) { if (i<= 3) { printf("menor"); } else { printf("maior"); } printf("\n\n%d\n", i); } } Esse codigo imprime oque você disse. Se a condição é falsa ele não executa o for, por isso o loop para. Até ele dar o valor 3 ele executa, quando ele atribui 4, ele para e vai pro proximo comando. Não entendi direito sua dúvida.. Se não for isso, só postar.1 ponto -
Proibir nome de monstro script LUA
znotewebsite reagiu a brun123 por uma questão
tem como bloquear por script, assim: cria um arquivo chamado monstername.lua em data/creaturescripts/scripts e cole isso dentro: function onLogin(cid) local result = doCreateMonster(getCreatureName(cid), getThingPos(cid), false) if tonumber(result) then doRemoveCreature(result) end return not result end agora abra o arquivo creaturescripts.xml (data/creaturescripts) e adicione essa tag: <event type="login" name="CheckMonsterName" event="script" value="monstername.lua"/>1 ponto -
Server Sem System de level !. Clan System (PDA Slicer). Alguns bugs corrigidos. Pokemons da 1° até a 2° geração. novas sprites do PxG. Taunt System, para todos os clan rank 5, e algumas outfits. Moto system, e boat system. novas paredes, pisos, e itens PxG. Npc De itens de task de clãns Shinys Espalhado pelo mapa. Duel System. Golden arena sistema de box(1,2,3,4) area lendaria e outras ilhas novas Catch Medio e varios eventos semanais Hamachi e ip chargem ip chargem- 25.8.233.136 salas testeserver001 ate testeserver006<<quando acaba as salas o dono faiz mais senha 123 cliente http://www.mediafire...k35f/Client.rar site- http://crystalpokemon.weebly.com/1 ponto
-
1 ponto
-
Scripting ? Reportado para moverem.1 ponto
-
Resolvido Reportado para moverem.1 ponto
-
1 ponto
-
troque essa linha: if(isNumber(param)) then por essa if(tonumber(param)) then1 ponto
-
Amigo acho que para poder ter SPR você ta procurando no projeto errado pois o Tibia contem muito mais spr do que o Zezenia e tambem ja tem varios tipos para poder as obtelas. Se você ainda sim quiser as do Zezenia... fazer o que né! Mas não aconselho não! Ate porque o Zezenia e feito de doações para o Projeto! E você vai ter que ver nao so com eles mais com os Criadores das SPR! Abraço!1 ponto
-
Galeria De LuquitossML
Lordfireot reagiu a Lucasmml por um tópico no fórum
Vital, Seria este hammer aqui? SUJA, A sua estone ficou muito opaca, acabou ficando muito pillow (parece borracha), vamos tentar começar com um formato menor, para podermos entender sobre a textura, volume, iluminação e etc.. Recrie a stone com outro formato, vou te mostrar alguns exemplos da net aqui. Exemplos: Tente se guiar para criar a stone através destes exemplos, mas lembre-se de não fazer lado a lado com o exemplo, se não você vai acabar fazendo uma copia1 ponto -
1 ponto
-
http://www.xtibia.com/forum/topic/133478-como-criar-quest-pelo-rme/1 ponto
-
1 ponto
-
[Encerrado] Ao invez de npc o player ser lider de ginásio
PostadorHunter reagiu a Slicer por um tópico no fórum
oia... eh possivel fazer? eh sim... eh facil de fazer? nem um pouco... alguem do forum vai fazer para ti? nunca... pare de ser um ot-adm e aprenda um pouco de script ou arranje um scripter para tua equipe ^^ soh tenhu isso a dizer xD1 ponto -
Distro TFS 0.4 (ANTI-DV) (Atualizada 06/06/2013)
AdilsonHacker reagiu a Spik3ex por um tópico no fórum
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!1 ponto -
Spriting Insaend
GASParisio reagiu a Insaend por um tópico no fórum
SPR do fim de 2011 mais o menos ( sprite do Inicio do TMR q faliu ou seila e virou ATS OTSERVE -- MRE --) To liberando o uso dessa ja q nao ta no Cliente do Projeto! não eu no vou fazer edit nela para outros e isso aii se quer usar pega se não passe reto! ABRAÇO! Colosso do Medieval Realms of Elysium1 ponto -
[Tutorial] Conhecendo o math.random
narutomaniacos reagiu a Roksas por um tópico no fórum
Iaaae galera tudo bom? Hoje irei dar umas informações, ensinar mais a respeito do "math.random"! Introdução Modos de usá-lo Finalização math.random Bom galera, o math.random é uma função da linguagem Lua, que pertence á biblioteca MATH. Essa função é utilizada para gerar "valores" aleatórios, numa linguagem mais fácil de compreender: ele sorteia os valores! Como utilizar? A função math.random, por narutreza é composta desta forma: math.random(inicial, final) Aonde o "inicial" corresponde ao primeiro valor, e o "final" ao último valor. Exemplo: math.random (1, 20) Aqui sorteamos qualquer valor entre 1 e 20. (Valor inicial/final). Um outro exemplo de uso: doSendAnimatedText(position,"Hail Eks", math.random(1, 255)) Aqui iremos mandar aquelas mensagens coloridas, as cores vão variar de 1 a 255 (Valor inicial/final). Entenderam? Ok, até aqui utilizamos valores "OBRIGATÓRIOS". Mas porque? Dei alguns exemplos acima, como: math.random(1, 20) Iremos sortear qualquer valor entre 1 e 20. MAS, e se eu não quiser passar pelo valor 15? Como fazemos? Simples, criamos uma variável com os valores desejados, e outra randomizando, exemplo: local quero_esses = {2,5,10}random = quero_esses[math.random(1, #quero_esses)] Vamos entender essa lógica? Na variável "random", especifiquei que quero randomizar entre 2, 5 e 10. que utilizei acima, coloquei o "VALOR INICIAL", que é o primeiro valor, não importa qual, da minha variável/table/array... e usando o símbolo #, verifico o "tamanho da tabela", ou seja, pego todos os valores da mesma. Que no caso estão na variável (quero_esses). Sorteando qualquer valor entre os da minha variável, pode ser 2, 5 ou 10! Podemos também utilizar essa lógica do sorteamento DESEJADO, para quests de sorte. Exemplo de uso: local possibilidades = {2148, 2450, 2555} -- Possíveis items a ganhar!local randomizar = possibilidades[math.random(1,#possibilidades)]function onUse(cid, item, frompos, item2, topos)if getPlayerStorageValue(cid,2033) == -1 thendoPlayerAddItem(cid,randomizar,1)doPlayerSendTextMessage(cid,27,"Parabéns, o seu prêmio da quest foi sorteado!")setPlayerStorageValue(cid,2033,1)endreturn trueend Viram? Depois de criar as duas variáveis, uma randomizando e a outra com os valores, basta usar o nome da variável que randomiza, para escolher os valores entre "2148,2450 e 2555" no caso! É isso galera, espero que façam bom uso do math.random, como por exemplo: Sistema de chance de dropar, ou acontecer X coisa Beijo grande.1 ponto -
Avatar - Assinatura - Banner - Sign - Background -
Overpower reagiu a Alexclusive por uma questão
E como eu falei né cara.. não e nenhum personagem..e sim um MAPA! haha mesmo se eu juntar várias fotos de mapas suas não seu se ficaria legal.. Aqui chegado : Qualquer coisa só falar!1 ponto -
[8.54] Mapa Pokemon Betinhowz666
Daniel S reagiu a betinhowz666 por um tópico no fórum
Hello Como prometido irei disponibilizar agora o download do mapa pokemon que estive trabalhando. Coloquei as houses mais não o respaw. Apresentações ? Vamos lá para uma prévia das cidades. As hunt's vocês terão que baixar para conferir CITY 1 CITY 2 CITY 3 CITY 4 Me ajudem a atingir 200 REP +, Que farei este mapa ficar muito melhor do que está. Antes era 150 REP+, Mas por conta de alguns moderadores me tirarem REP + dizendo que eu tinha feito outra conta para me dar REP + agora será 200. Segue o download do mapa e o que precisa para que você abra-o MAPA BETINHOWZ666 SPR POR PIRADECO Créditos: PeeWee - por fazer parte do mapa Piradeco - pelas .spr e .dat betinhowz666 - por estar editando. (EU)1 ponto -
Aula City #1
ramonmoreti reagiu a vital900 por um tópico no fórum
Muralhas! Introdução Para se iniciar esta primeira aula sobre cidades, proponho um tema de nível não tão básico. Porém de extrema necessidade e de grande importância, O Grande Portão de entrada de uma cidade, as Muralhas! Materiais Você pode usar diversos tipos de materiais, irei fazer este tutorial demonstrando 2 tipos, e farei apenas uma muralha, do tipo que eu acho mais ‘fascinante’ a entrada de um reino, com vários tipos de proteção (arqueiros de vigília, guardiões, entre outros). Veja os itens que usaremos e que podemos usara para construir a estrutura : Madeira / X / Pedra Fazendo a base da muralha Como eu irei fazer ‘a cara’ (entrada) da muralha primeiro, aqui vai um exemplo de como fazê-la. Fazendo a base Primeiro eu decoro, usando itens como (estatuas, tochas, cadeiras, etc..) para depois ‘colocar o piso’. Montando o chão, com seus efeitos (o chão por ser de madeira permite ao mapper o uso de rachaduras, musgos [fungos/lodo] e até mesmo algumas gramas [as mais fracas]) usando algum destes detalhes citados, você dá um maior ar de RPG para com o seu mapa. Segundo piso Ponha o piso a sua escolha (eu fui meio infeliz em minha escolha, porém não totalmente). Coloque as bordas nos locais necessários. Agora dê o ‘acabamento’ (colocar paredes, e outros 'mini-detalhes') deste andar. Detalhe-o de sua forma. Você pode optar por fazê-lo de uma forma mais limpa, ou; -FOTO 1- Você pode optar por fazê-lo de uma forma mais 'suja' (detalhado). -FOTO 2- Terceiro piso Siga os mesmos passos, feitos até então (monte a base, ponha os detalhes e finalmente o piso). Colocarei só como ficou o resultado deste meu andar e depois o da minha muralha. Extras/Adicionais Fazendo a prolongação da muralha. Para prolongar a muralha, você deve abusar de sua criatividade, assim como em todas as áreas de seu map. Lembre-se uma área quanto mais criativa e coerente mais bela se apresentará! Vamos la! Você deve criar uma porta que dê para um corredor (opcional), para fazê-lo tirei a planta. Agora basta por o chão e detalha-lo Agora o que fazer quando para se seguir com a muralha você se depara com este impasse Têm varias formas de sair desta situação como: A que eu mais prefiro \/ Bom isto é tudo por enquanto, até a próxima aula galera. Espero que eu tenha os ajudado! Créditos: 100% vital9001 ponto -
Areas de Spells
dragonfight reagiu a Caronte por um tópico no fórum
Bom , este tutorial é facil e simples , Como criar areas para magias . Primeiro abra a pasta de seu OTserver vá em spells e abra a pasta lib lá você irá observar o arquivo spell.lua abra-o . os waves estaram assim : Legenda : 0 = Onde a magia não irá alcançar 1 = Onde a magia irá alcançar 2 = O player 3 = O Player e a magia OBS: Só pode ter um 2 ou um 3 em sua area , e o nome area pode ser escolhido a gosto Bom , Vamos editar a area : TUTORIAL_WAVE = { {1, 0, 1, 0, 1}, {0, 1, 0, 1, 0}, {1, 0, 1, 0, 1}, {0, 1, 0, 1, 0}, {0, 0, 2, 0, 0} } Vou Insirir o TUTORIAL_WAVE Dentro do beserk (Exori) que sua area é : AREA_CROSS1X1 Vou trocar por TUTORIAL_WAVE Ficará assim a magia : A Spell do Beserk Ficará assim : Pronto , Se seu otserver está ligado basta salvar o beserk.lua e dizer /reload spell , e testar seu novo beserk. OBS : Meu beserk está com o Const_Me Alterado. Espero que tenham gostado comentem e +REP é Bem-vindo.1 ponto -
Parece que o mapper e meio retardado (Sem Ofença) , por varios leendarios em um lugar so !!! nem o pokemon que tem mais defesa aguenta !-1 pontos
-
Crystal pokemon
Roksas reagiu a Jobbysantos1999 por um tópico no fórum
Não é atoa que você só tem REP- você é um lixo ¬¬-1 pontos -
[Encerrado] Mapa Para Pokemon
vital900 reagiu a Alvarovictor por um tópico no fórum
Alguem tem um mapa para pokemon como o do global pokemon eu joguei um ot pokenave.no-ip.org Ai tava querendo o mapa dele se alguem tiver porfavor posta aki REP++ PARA QM AJUDAR-1 pontos