Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 06/09/13 em todas áreas

  1. HeelNox

    Naruto Shinobi Life !

    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 Bugs
    4 pontos
  2. Noninhouh

    Shiny Dragonite (Pokemon)

    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
  3. 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 end
    2 pontos
  4. brun123

    Look script

    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 end
    2 pontos
  5. beto06

    [CAM #02]

    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
  6. 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
  7. • 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
  8. Roksas

    Tournament PVP V2.0

    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.0
    1 ponto
  9. 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
  10. craigmabbit

    Slayer Art Online Client

    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
  11. LuckOake

    Partner System 2.0 [Atualizado]

    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 ajudas
    1 ponto
  12. Erimyth

    Se conectando em um VPS Windows

    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
  13. Alvarovictor

    [Encerrado] Mapa Para Pokemon

    Mano mil desculpas...
    1 ponto
  14. •Topico Resolvido / Reportado para Moverem
    1 ponto
  15. Skymagnum

    Taunt System ERRO/BUG

    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 KRL
    1 ponto
  16. Blez

    Blez's Mapping Works

    1 ponto
  17. Download: http://www.sendspace.com/file/natjgw Download Link 2#: http://www.multiupload.nl/BO902OJG51 OS DOIS FUNCIONANDO 100%.
    1 ponto
  18. Enself

    Shiny Dragonite (Pokemon)

    Gostei bastante cara se tem talento nossa. REP+
    1 ponto
  19. legolaszinho

    Kamatami Global - NOVO 8.6 !

    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 outras
    1 ponto
  20. 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
  21. Enself

    erro no comando /save

    Resolvido reportado para moverem.
    1 ponto
  22. fredpadua

    Programação C

    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
  23. 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
  24. firewere

    Crystal pokemon

    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
  25. AdilsonHacker

    Qual o ID desse item?!

    Reportado Para Que Movam!
    1 ponto
  26. Enself

    Como Montar Sprites? [URGENTE]

    Scripting ? Reportado para moverem.
    1 ponto
  27. Enself

    Adicionar maximo de uso stone

    Resolvido Reportado para moverem.
    1 ponto
  28. Ground: 806.
    1 ponto
  29. Vodkart

    erro no comando /save

    troque essa linha: if(isNumber(param)) then por essa if(tonumber(param)) then
    1 ponto
  30. 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
  31. Lucasmml

    Galeria De LuquitossML

    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 copia
    1 ponto
  32. 1 ponto
  33. vital900

    Como Criar 1 Quest

    http://www.xtibia.com/forum/topic/133478-como-criar-quest-pelo-rme/
    1 ponto
  34. Luquinh4

    Como Criar 1 Quest

    FACIL PO
    1 ponto
  35. 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 xD
    1 ponto
  36. 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
  37. Insaend

    Spriting Insaend

    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 Elysium
    1 ponto
  38. 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
  39. 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
  40. betinhowz666

    [8.54] Mapa Pokemon Betinhowz666

    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
  41. vital900

    Aula City #1

    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% vital900
    1 ponto
  42. Caronte

    Areas de Spells

    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
  43. HeelNox

    Crystal pokemon

    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
  44. Jobbysantos1999

    Crystal pokemon

    Não é atoa que você só tem REP- você é um lixo ¬¬
    -1 pontos
  45. Alvarovictor

    [Encerrado] Mapa Para Pokemon

    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
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...