Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 07/13/12 em todas áreas
-
Otserver Remoto E Automatizado
ThiagoMartinsMR e um outro reagiu a DiogoTemporario por um tópico no fórum
Ensino aqui como acessar de qualquer lugar do mundo o servidor que você tem hosteado em sua máquina. E mais, como automatizar todos processos para que você só precise acessá-lo em caso de problemas com o banco de dados, ou se você quer mudar alguma coisa. Duvido que alguém esteja na mesma situação que eu e precise desse tutorial inteiro para deixar seu OT on. Porém, creio que partes desse tutorial são muito úteis para quem quer hostear um servidor em casa. Entre outras coisas ensino aqui: 1 Como fazer o pc ligar sozinho (sim, é possível!!!) Como fazer o pc desligar sozinho 2 Como fazer o OT iniciar com o PC 3 Como trocar o IP no config.lua para o atual automaticamente (IP dinâmico) 4 Como acessar seu servidor de outro computador 5 Como fazer backup do server automaticamente Não sei como estão os servidores atuais, se é viável hostear em casa como é um 7.6, que é o que estou hosteando, mas esse tutorial se aplica a qualquer servidor que use o config.lua para determinar o IP, ou que não precise do IP numérico no arquivo de configurações (funciona com seu IP do NO-IP ou do seu domínio pago). 1º Automatizando o desligamento e a inicialização do PC. Caso você queira que o PC desligue hora X e ligue hora Y todos os dias, é simples. Primeiro crie um arquivo.bat na localização que desejar com o seguinte conteúdo: shutdown /s /f /t 10 /c "Desligamento Automático" Usaremos isso mais tarde. Clique no menu iniciar, digite "tarefas" e abra o "Agendador de Tarefas" Ações>Criar Tarefa Imagem apenas pra mostrar a tela do agendador, siga os passos escritos e não o que está na imagem. Preencha os campos e clique em "Alterar Usuário ou Grupo..." Clique em "Avançado...", clique em "Localizar agora", clique duplo em "SISTEMA" OK, OK Agora vá em "Disparadores" e clique em "Novo..." Adicione o horário que quiser e a frequência, OK Aogra em "Ações" clique em "Novo" Procure aquele arquivo.bat que você criou, OK, OK O computador desligará na hora marcada. Para ligar o computador na hora desejada, siga este tutorial: http://www.xtibia.co...-ligar-sozinho/ 2º Configurações de IP. Pule essa parte caso você possa usar o ip do NO-IP no arquivo de configurações do OT, ou seu servidor não usar config.lua para configurar o IP. Caso você tenha IP dinâmico, o IP resseta geralmente quando você reinicia o computador. Neste caso, é necessário alterar o IP no config.lua toda vez que ligar o computador, ao menos para servidores 7.6. Isso pode ser feito automaticamente, caso você esteja usando o NO-IP. Para isso, baixe o NO-IP DUC e ponha para iniciar com o computador. Crie um arquivo.bat na pasta do config.lua com o seguinte conteúdo: @echo off title IP Dinâmico ping -n 35,0 localhost>nul ping -n 35,0 localhost>nul ping -n 35,0 localhost>nul for /f "tokens=6" %%A in ('type "%userprofile%\AppData\Local\Vitalwerks\DUC\DUC.log" ^| find /i "Remote IP Found:"') do (set IP_atual=%%A) for /f "tokens=3" %%A in ('type "config.lua" ^| find /i "ip ="') do (set IP_lua=%%A) set IP_lua=%IP_lua:~1,-1% cd "PASTA DO SEU OT AQUI!!!!" set arq=config.lua if "%IP_lua%"=="%IP_atual%" (exit) else (CALL :Substituindo_no_lua %IP_lua% %IP_atual% %arq%>%temp%\IP_Dinâmico.tmp) exit ::script para substituir palavra em arquivo feito por boss-head e editado para o propósito desse programa :Substituindo_no_lua SETLOCAL ENABLEEXTENSIONS SETLOCAL DISABLEDELAYEDEXPANSION if "%*"=="" findstr "^" "%~f0"&GOTO:EOF for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do ( set "line=%%B" if defined line ( call set "line=echo.%%line:%~1=%~2%%" for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X ) ELSE echo. ) del %arq% copy %temp%\IP_Dinâmico.tmp %arq% goto:EOF O que esse arquivo, criado por mim, faz, é pegar o IP atual do log do NO-IP DUC e, caso seja diferente do que está no config.lua, substitui o do config.lua pelo IP atual. Crie um atalho para esse programa na pasta inicializar para ele abrir com o PC. Siga este tutorial em caso de dificuldades: http://semnome.net/2...m-programa.html OBS: Note que você deve substituir, no code, "PASTA DO SEU OT AQUI!!!!" pela pasta do seu OT. As três primeiras linhas são um delay para o programa iniciar, pois o NO-IP DUC demora para pegar o IP pela primeira vez. Caso seu PC demore para iniciar, aumento o delay aumentando o número, que nesse code está como 35. 3º Iniciando o OT com o PC Você pode simplesmente criar um atalho para o server.exe na pasta inicializar, seguindo o tutorial linkado acima, ou, caso esteja utilizando o programa que fiz para atualizar o IP, crie um arquivo.bat com o seguinte conteúdo na pasta do seu servidor e ponha para iniciar com o PC: @echo off ping -n 35,0 localhost>nul ping -n 35,0 localhost>nul ping -n 35,0 localhost>nul ping -n 35,0 localhost>nul start ARQUIVO_DO_SEU_SERVER.exe exit 4º Acessando seu banco de dados remotamente. Você pode fazer isso com o serviço de área de trabalho remota do windows, mas existem algumas complicações, e o jeito mais fácil é usar um programa chamado TeamViewer. Este programa te permite acessar um computador remotamente, desde que ele esteja ligado e conectado à internet. Você deve registrar uma conta e configurar o "acesso não supervisionado". Para isso, na tela do TeamViewer clique em Conexão>Configurar acesso não supervisionado. Preencha os campos e marque para fazer logon automaticamente. Dessa forma você pode acessar seu PC onde está o OT de qualquer lugar, apenas digitando um usuário e senha, sem precisar que alguém esteja no PC do OT para autorizar o acesso. Para acessar o PC do OT de outro computador, basta baixar o TeamViewer, logar na conta que você criou, clicar em Computadores & contatos e dar um clique duplo no seu computador. Se você possui um anti-vírus ou firewall, adicione o TeamViewer às exceções, bem como às do firewall do windows, caso necessário. 5º Automatizando o backup do servidor Para fazer backup do servidor automaticamente, de modo semelhante a como você fez para desligar o PC automaticamente, crie uma tarefa repetindo de quantas em quantas horas você quer que o backup seja feito e com o seguinte arquivo.bat como "Ação", ao invés do de desligar o PC: Caso queira que o backup atual substitua o antigo: @echo off xcopy /e /h /y "PASTA DO SEU OT" "LOCAL ONDE VOCÊ QUER O BACKUP\PASTA DO SEU OT_BACKUP\" Caso queira criar diferentes backups @echo off xcopy /e /h /y "PASTA DO SEU OT" "LOCAL ONDE VOCÊ QUER O BACKUP\PASTA DO SEU OT_BACKUP%date:/=do%%time::=e%\" OBS: Salve esse arquivo na pasta onde está a pasta do seu OT. Todos os crédito às mim. Bjs.2 pontos -
Nome: Advanced Poll System Tipo: Talkaction Autor: Oneshot Fala, meus queridos. Peregrinando pela seção de Pedidos e Dúvidas, vi um pedido do membro sarioyana que despertou minha vontade de programar sistemas um pouco mais elaborados. O pedido dele se trata de um sistema de votação, onde o responsável pelo servidor pode iniciar uma votação com quantas opções desejar. Fiz algo bem simples, você só precisa configurar os storages no ínicio do script, caso você já esteja usando os que estão por padrão. Abra seu arquivo talkactions.xml e adicione isso: <talkaction log="yes" words="/newpoll;/endpoll" access="5" event="script" value="pollsystem.lua"/> <talkaction words="/vote;/poll" event="script" value="pollsystem.lua"/> Crie um novo arquivo chamado pollsystem.lua em data/talkactions/scripts e adicione isso: local POLL_STORAGE = 80000 local OPTIONS_STORAGE = 80001 local PLAYER_STORAGE = 80000 local function getTotalVotes() local options = table.unserialize(getStorage(OPTIONS_STORAGE)) local amount = 0 for _, option in ipairs(options) do amount = amount + option[2] end return amount end local function getMostVotedOption() local options = table.unserialize(getStorage(OPTIONS_STORAGE)) local value, ret = 0 for _, option in ipairs(options) do if option[2] > value then value = option[2] ret = option[1] end end return ret end function onSay(cid, words, param, channel) param = param or "" if param == "" and not words == "/poll" then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The command ".. words .." need parameters.") end local parameters, vote = {} if(words == "/newpoll") then if getStorage(POLL_STORAGE) ~= -1 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, but there is a poll in progress.\nIf you want to start a new poll, type /endpoll.") end parameters = string.explode(param, ",") if #parameters < 3 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The command /newpoll needs a poll and at least two options.") end if parameters[1] then local options = {} for i = 2, #parameters do table.insert(options, {parameters[i], 0}) end if #options < 2 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Insert at least two options after the poll") end doSetStorage(POLL_STORAGE, parameters[1]) options = table.serialize(options) doSetStorage(OPTIONS_STORAGE, options) doBroadcastMessage("A new poll is in progress with the title '".. getStorage(POLL_STORAGE) .."?'!\nSee the status with /poll and vote with /vote.") end elseif(words == "/vote") then vote = tonumber(param) or -1 local options = table.unserialize(getStorage(OPTIONS_STORAGE)) if getStorage(POLL_STORAGE) == -1 then return doPlayerSendCancel(cid, "There is not a poll in progress.") end if vote == -1 then return doPlayerSendCancel(cid, "You need to choose a option to vote.") end if getCreatureStorage(cid, PLAYER_STORAGE) == 1 then print(getCreatureStorage(cid, PLAYER_STORAGE)) return doPlayerSendCancel(cid, "You cannot vote two times.") end if vote > #options then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end options[vote][2] = options[vote][2] + 1 doSetStorage(OPTIONS_STORAGE, table.serialize(options)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have voted in the option ".. options[vote][1] .." successfully!") doCreatureSetStorage(cid, PLAYER_STORAGE, 1) elseif(words == "/poll") then local options = table.unserialize(getStorage(OPTIONS_STORAGE)) if getStorage(POLL_STORAGE) == -1 then return doPlayerSendCancel(cid, "There is not a poll in progress.") end local text = "ADVANCED poll SYSTEM\n\n".. getStorage(POLL_STORAGE) .."?\n" local count = 1 for _, option in ipairs(options) do text = text .."\n#".. count .." ".. option[1] .." ".. (getTotalVotes() == 0 and 0 or math.floor((option[2]/getTotalVotes()) * 100)) .."%\n" count = count + 1 end doPlayerPopupFYI(cid, text) elseif(words == "/endpoll") then if getStorage(POLL_STORAGE) == -1 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "There is not a poll to be ended.") end if not getMostVotedOption() then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wait at least one vote to end this poll.") end doBroadcastMessage("The poll '".. getStorage(POLL_STORAGE) .."?' has been finished!\nThe most voted option was ".. getMostVotedOption() ..".") doSetStorage(POLL_STORAGE, -1) doSetStorage(OPTIONS_STORAGE, -1) for _, player in ipairs(getPlayersOnline()) do doCreatureSetStorage(player, PLAYER_STORAGE, -1) end db.executeQuery("UPDATE `player_storage` SET value = -1 WHERE `key` = ".. PLAYER_STORAGE ..";") end return true end E pronto, o sistema está instalado. Basta agora no jogo com um GOD digitar: /newpoll pergunta,opção1,opção2,opção3,... E para finalizar a enquete /endpoll Jogadores podem usar os comandos abaixo para visualizar o estado da enquete e votar, respectivamente. /poll /vote O comando /vote deve ser seguido do número da opção que aparece no comando /poll Irei postar em breve um vídeo, fiquem ligados. Um grande abraço.1 ponto
-
[Creatureevent] Level Up = Ful Mana E Full Health
bianco001 reagiu a SkyDangerous por um tópico no fórum
Script: Level up = Ful Mana e Full Health Função: Ao evoluir sua vida e mana regenera no máximo Testado: Versão 8.6 INSTALANDO vá na pasta creaturescript/scripts e cria um arquivo no formato .lua com o nome de fullmh e cole isto: function onAdvance(cid, skill, oldlevel, newlevel) if skill == SKILL__LEVEL then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) end return TRUE end em seguida, em login.lua adicione o evento registerCreatureEvent(cid, "fullmh") depois em creaturescript.xml adicione a tag: <event type="advance" name="fullmh" event="script" value="fullmh.lua"/>1 ponto -
Baiak Extreme OTProjects 0.7 - O MELHOR BAIAK! (8.60) Servidor feito pela Otprojects. Fala galera estou aqui para apresentar o novo Baiak Extreme, A OTProjects trabalhou muito tempo neste servidor. Ele custava cerca de 35 Reais na loja da OTprojects, mas foi liberado de graça e eu estou repassando pra vocês. Este servidor é um dos Mapas Baiak mais completos, possui WoE, Dota, Coliseum, Zombie e outros Eventos. Tá esperando o que? Confira logo! Cidades: ├ Baiak City ├ Desert City ├ Hydraland ├ Yalahar (Cidade VIP) └ Thais Imagem #1: Templo - Baiak City Imagem #2: Glacial Area Imagem #3: Baiak City O Que Contêm no Servidor: ├ Eventos Exclusivos : ├DotA ├ WoE ├ Coliseum ├ Zombie Event ├ Yalahar como City VIP ├ City do Baiak Totalmente Reformulada. ├ Novos Teleports e Quests ├ War Castle ├ Novos NPC'S ├ War System. └ TFS 0.4 DEV Rev: 3777 Já Compilado. Lista Das Principais Quests (Todas Funcionando 100%): ├ The Annihilator Quest ├ Demon Helmet Quest ├ Firewalker Boots Quest ├ The Inquisition Quest ├ The Pits of Inferno Quest ├ The Demon Oak Quest └ In Service of Yalahar Quest Update 0.7: - Sem o Bug dos Stages - Com TFS 0.4 REV 3884 - O MELHOR PARA WINDOWS - Crashes no Console Removidos - Agora em MYSQL, Recomendo que usem o Xampp e o Gesior para fazer o Site. Senha do God: god/god Como Abrir o Mapa Caso dê Erro: Vai no RME Aperta em File>New>Import Map e Selecione o Mapa do Baiak Extreme. Download & Scan ATENÇÃO: UTILIZE MYSQL para Melhor Resultado! Download Os vírus acusados estão no Distro, o Servidor está Limpo! ATENÇÃO! Para o MELHOR FUNCIONAMENTO DO OT, Recomendo que USEM MYSQL! Créditos:1 ponto
-
Bom Galera , este é meu primeiro tutorial sobre websites. Só vai funcionar com database phpmyadmin Que pode ser muito útil para aqueles que gostam de resetar mas nao quer devolver items. =D Vamos lá. 1) Acesse seu localhost/phpmyadmin 2) Vá na sua database e depois em SQL 3) Vai aparecer "Faser consulta no banco de dados" 4) Nele voce escreve os codigos correspondentes á açao que voce quer faser. -AS açoes vou listar elas abaixo Para resetar os lvl e a life: UPDATE `players` SET `level` = '8', `health` = '180', `healthmax` = '180', `experience` = '4200', `mana` = '35', `manamax` = '35', `cap` = '400' Para resetar os skills: UPDATE `ot`.`players_skills` SET `value` = '10' Remover Premium Dos players: (serve para vip system que vende premmy no gesior) UPDATE account SET premdays=0; Adicionar 3 dias de Premium: UPDATE accounts SET premdays = premdays + 3; Mandar Geral po templo: UPDATE players SET posx = X, posy = Y, posz = Z; Criar Account Manager: INSERT INTO `players` VALUES (1, 'Account Manager', 1, 1, 1, 0, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 10, 10, 10, 0, 0); Remover Red skulls , Black Skuls e Frags de todos: UPDATE `players` SET `redskulltime`=0; Dar bless para todos: UPDATE `players` SET `blessings`=31; Remover um Item especifico: (exemplo 2160= crystal coin) ótimo para casos de clonadores. DELETE FROM player_depotitems, player_items, tile_items WHERE itemtype = 2160; Deletar players lvl 50- (CUIDADO, EXECUTANDO ESSA AÇAO VOCE IRÁ DELETAR OS SAMPLES. AUMENTE O LVL DOS SAMPLES E DEPOIS VOLTE AO NOMRAL) DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60 Deletar houses de players que foram deletados: UPDATE `houses` SET `owner` = '0' WHERE `houses`.`owner` NOT IN ( SELECT `players`.`id` FROM `players` WHERE `players`.`id` = `houses`.`owner` ); Trocar Outifit de all players: UPDATE players SET lookbody =61, lookfeet =93, lookhead =127, looktype =128 Deletar players que nunca logaram: DELETE FROM `players` WHERE `lastlogin`=0; É isso galera, espero ter ajudado. fmz? Se nao for muito para vcs , dao REP + Thanks. é para o xtibia. :XTibia_smile:1 ponto
-
Arena Sobrevivencia Event System
turox reagiu a drakylucas por um tópico no fórum
Bom, esse sistema é requisitado por muitos donos de servidores.. sempre quando pedem as pessoas fazem e enviam por PM, por ser meio dificil... Essa é minha versão desse sistema Créditos 90% Draky Lucas (eu) 10% Vodkart (uma função que utilizei e me explicou como funcionaria o sistema, q os players nao sabem explica direito kk) O que ele é? o GM do servidor digita /arena X, onde o X é o numero de jogadores necessarios para o evento começar.. supondo que o GM digitou /arena 5: o evento criaria um teleport na posição configurada; esperaria 5 players entrarem nesse teleport (não contando os GM's.. também configuravel); assim que o 5º player entrasse, o evento esperaria um delay (configuravel) e sumonaria os bixos de cada level do evento (monstros e leveis configuraveis), e assim que criasse os monstros, contaria o mesmo delay varias veses para ir avançando de nivel (e criando mais monstros), os que sobreviverem ao ultimo nivel (configuravel) ganham premios (configuraveis). Não se morre no evento e não se adquire loot dos monstros, mas ganha exp dos monstros também! [SIM, É CONFUSO DE ENTENDER.. COLOQUE NO SERVIDOR E VEJA VOCÊ MESMO] TESTADO COM The Lost Server 8.6 (Caso dê erro de storage, é pq não sei se no TFS/Baiak tem as funçoes setStorage com esse nome, mas me avise que eu arrumo a versão TFS/BAIAK) Instalando o sistema: Mapa: Script: na pasta onde fica o executavel do server, há uma pasta chamada Mods, entre nela e crie um arquivo chamado arena.xml e nele coloque isso: [PS: Editado 01:39 - 14/07/2012 por correção de um erro ortográfico do forum que comeu um parenteses do script] <?xml version="1.0" encoding="UTF-8"?> <mod name="Arena" version="1.0" author="DrakyLucas" contact="XTibia" enabled="yes"> <config name="arena_config"><![CDATA[ config = { delay = 60, -- tempo de um level para o outro posicaoPlayer = {x = 37,y = 96,z = 7}, -- posição q o player vai cair dps de entra no TP posicaoArena = {{x = 35,y = 94,z = 7},{x = 42,y = 99,z = 7}}, premio = { {2160,70}, {2152,50}, }, -- ID, Quantidade... só aceita de 1 a 100 por vez, e você pode adicionar quantos itens quiser. storage = 15444, -- não mecha.. posicaoTp = {x = 37, y = 91, z = 7}, -- posicao que o teleporte vai aparecer acesso = 3, -- acesso minimo para ser ignorado pelo evento, e o mesmo acesso para poder inicializa-lo } -- você pode adicionar quantos leveis desejar -- [NumeroDoLevel] = {{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade}}, leveis = { [1] = {{"Dragon",5}}, [2] = {{"Dragon",5},{"Dragon Lord",2}}, [3] = {{"Dragon Lord",5}}, [4] = {{"Demodras",2},{"Demon",1}}, [5] = {{"Demon",5},{"Orshabaal",1},{"Ferumbras",1}}, } function abrirTeleport(n) doItemSetAttribute(doCreateItem(1387, config.posicaoTp), "aid", 2941) -- cria o tp e deixa aid 2941 doBroadcastMessage("O Evento arena vai começar! teleport foi aberto e faltam ".. n .. " pessoas para o evento iniciar!") doSetStorage(config.storage, n) end function fecharTPeAguardarEvento() doRemoveItem(getTileItemById(config.posicaoTp, 1387).uid,100) doBroadcastMessage("O evento ja concluio " .. #getPlayersInArena() .. " players e começará em " .. config.delay .. " segundos!") addEvent(evento,config.delay*1000,1) end function HaveCreatureArena(area, remove, clean) -- função do Vodkart for x = area[1].x - 1, area[2].x + 1 do for y = area[1].y - 1, area[2].y + 1 do local pos = {x=x, y=y, z=area[1].z} local m = getTopCreature(pos).uid if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end if clean ~= false then doCleanTile(pos, false) end end end end function resetEvento() doSetStorage(config.storage, -1) end function criarMonstros(lv) local monstro = leveis[lv] local area = {config.posicaoArena[1],config.posicaoArena[2]} for i = 1,#monstro do for k=1,monstro[i][2]do pos = {x=math.random(area[1].x,area[2].x), y=math.random(area[1].y,area[2].y), z=area[1].z} monstrinho = doCreateMonster(monstro[i][1], pos) registerCreatureEvent(monstrinho, "removerCorpse") end end end function evento(i) if #getPlayersInArena() == 0 then doBroadcastMessage("Ninguem sobreviveu a arena =/") doBroadcastMessage("EVENTO TERMINADO!") HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true) -- remove monstros, itens da arena resetEvento() return true end if i == (#leveis +1) then HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true) doBroadcastMessage("Evento finalizado, " .. #getPlayersInArena() .. " sobreviveram ao evento!") for _, pid in ipairs(getPlayersInArena()) do doPlayerSendTextMessage(pid,22,"Parabens, você sobreviveu ao evento!") addItens(pid) doTeleportThing(pid,getTownTemplePosition(getPlayerTown(pid))) end resetEvento() return true end for _, pid in ipairs(getPlayersInArena()) do doPlayerSendTextMessage(pid,22,"GoGo Nivel " .. i .. " !!!") end criarMonstros(i) addEvent(evento,config.delay*1000,i+1) end function addItens(pid) for i=1,#config.premio do doPlayerAddItem(pid,config.premio[i][1],config.premio[i][2]) end doPlayerSendTextMessage(pid,22,"Parabens, voce recebeu seus premios!") end function getPlayersInArena() local t = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerAccess(pid) < config.acesso then if isInRange(getCreaturePosition(pid), config.posicaoArena[1], config.posicaoArena[2]) then table.insert(t, pid) end end end return t end ]]></config> <talkaction words="/arena" event="buffer"><![CDATA[ domodlib('arena_config') if getPlayerAccess(cid) < config.acesso then return doPlayerSendCancel(cid,"Voce nao tem acesso para esse comando") end if tonumber(param) ~= nil then -- se o parametro é numerico if tonumber(param) > 0 then doSetStorage(config.storage, param) abrirTeleport(param) end else doPlayerSendTextMessage(cid,19,"Digite /arena e um numero.. \n exemplo: \n/arena 5") end ]]></talkaction> <movevent type="StepIn" actionid="2941" event="script"><![CDATA[ domodlib('arena_config') if getPlayerAccess(cid) > config.acesso then doTeleportThing(cid, config.posicaoPlayer) return false end -- GM nao conta doSetStorage(config.storage,getStorage(config.storage) - 1) doTeleportThing(cid, config.posicaoPlayer) registerCreatureEvent(cid, "naoAtacarPlayer") registerCreatureEvent(cid, "morrerNaArena") if getStorage(config.storage) <= 0 then fecharTPeAguardarEvento() end return true ]]></movevent> <event type="login" name="VerSeTaNaArenaEExpulsa" event="script"><![CDATA[ domodlib('arena_config') if isInRange(getCreaturePosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end return true ]]></event> <event type="combat" name="naoAtacarPlayer" event="script"><![CDATA[ domodlib('arena_config') if isPlayer(cid) and isPlayer(target) then if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) and isInRange(getPlayerPosition(target), config.posicaoArena[1], config.posicaoArena[2]) then doPlayerSendCancel(cid, "Nao ataque seus amigos.") return false end end return true ]]></event> <event type="death" name="removerCorpse" event="script"><![CDATA[ domodlib('arena_config') doCreatureSay(cid,"Ninguem terá meu loot! Buaahahahha",1) pos = getCreaturePosition(cid) addEvent(doCleanTile,1,pos, false) return true ]]></event> <event type="statschange" name="morrerNaArena" event="script"><![CDATA[ domodlib('arena_config') if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then if type == STATSCHANGE_HEALTHLOSS then if isPlayer(cid) then if value >= getCreatureHealth(cid) then doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid))) doPlayerSendTextMessage(pid,22,"Você morreu na arena =/.. veja pelo lado positivo, você nao perdeu nada!") doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid)) return false end end end end return true ]]></event> </mod> pronto, sistema adicionado.. agora vamos configurar: Tempo entre cada level Posição que está em branco na foto Posições que estão em azul na foto Premios (copie e cole como está, mude valores, adicione mais itens.. não há um limite de premios) Posição que o TP aparecerá para os players entrarem no event Acesso minimo para dar /arena X Monstros de cada Level (Obs: você pode adicionar quantos leveis desejar para o evento) Possiveis Erros: caso dê erro citado por algumas pessoas no forum (logo abaixo) é porque vocês utilizam uma distro diferente da minha e incompativel com UTF-8 então mudem <?xml version="1.0" encoding="UTF-8"?> por <?xml version="1.0" encoding="ISO-8859-1"?> e tudo deverá funcionar. Correção do erro feita pelo usuario KUNGLOW obrigado pela atenção Obrigado .. EXCLUSIVO XTIBIA1 ponto -
Sistema De Alavancas [Reformulado]
Biinhow reagiu a olimpiamarkin por um tópico no fórum
Eae galera tudo fmz ? esse é meu 2° tiopico intaum qual quer poblema mova, delete ou faça oque tenha que faser! Intaum vamos falar sobre oque irei faser ake: Vamos dizer que vou reformular o "Tutorial de Alavancas" // 1ª Pergunta: Mais ja existe esse tutorial ake no Xtibia né ? R: Sim ja existe, mais ele esta sem imagens e a explicação esta com coisas erradas e pessoas que não intendem muito de script não irão conseguir com o outro topico. 2ª Pergunta: Mais e o script foi você que fez ou copiou ? Copiei do outro tutorial que mencionei a cima, e irei botar os creditos ao criador do otro tutorial. Chega de inrrolação e vamos ao que intereça! 1° oque devo faser ? R: Primero você vai pegar criar um arquivo.lua com o nome leverwall.lua e colocar em seuot/data/actions/scripts dentro do arquvio leverwall.lua você vai por o seguinte script: Feis isso ? agora vou explicar o script, aque foi onde achei os erros no outro tutorial, intaum decidi fazer outro ensinado mais detalhamente, Explicando Script: Laranja: É a cordenada que esta localizada a parede que ira sumir ao você utilizar a alavanca. Verde: É o Uique ID que você ira colocar na alavanca pelo seu mapeditor, você vai clicar na sua alavanca com o botão direito do mouse e clicar em "properties" (propiedades)ai ira aparecer como na imagem a baixo!, Vermelho:É o Unique ID da sua parede você pode escolher o Unique ID que você bem entender, mais não pode ter um igual a esse no seu servidor, pelo seu mapeditor, você vai clicar na sua alavanca com o botão direito do mouse e clicar em "properties" (propiedades)ai ira aparecer como na imagem a baixo! Amarelo: É o ID da alavanca que vai abrir a parede e Rosa é o ID da alavanca que vai fechar a parede Por exemplo, no meu usei a alavanca com do ID: 1945 para abrir e 1946 Para fechar OBS: Você não ira por 2 alavancas só vai colocar 1, a imagem é só pra mostrar os IDS! Azul: É o ID da parede que sumio ao puchar a alavanca ou melhor disendo, é o ID da parede que vai ser criada ao puchar novamente a alavanca, é só você pegar seu god dar look na pedra que você vera o ID dela como na imagem abaixo! Agora va na pasta seuot/data/actions e abra o arquivo actions.xml e adcione a seguinte linha: Ai onde esta em Verde é akele unique ID da alavanca que você pois la em cima no script que esta em verde tambem! The End Creditos: Reibnitz (por ter postado o antigo tutorial) Eu Maarkiin(por ter refeito, corrigindo erros e adicionando imagens ao tutorial) Se eu ajudei você REP+ =] Se eu atrapalhei ou ofendi você REP- =[ Comentem oque acharam Porfavor! Att: Maarkiin:~1 ponto -
Versão: 8.6 Itens: 8.6 Sem vírus Mapa Atualizado Subwat Kamikaze V13 Atualizações -Retirado o bug das Houses -Adicionado vila de houses na city principal -Adicionado super mana,super uh e super bow.Comandos:!superuh,!supermana e !superbow -Adicionado 12 Hunt's novas na área Free -Adicionado 5 Hunt's novas na área Super Vip -Novas houses colocadas na city principal -Dois monsters novos:Bruxa do 71 e Satanas -Retirado bugs de varias hunts -Arrumado o bug da war -Retirado o Sex System -Nova quest adicionada de life scrolls e mana scrolls -Adicionado área para as hunts free Subwat Kamikaze V21 Atualizações -Adicionado o comando /newtypeex.Somente para God's. -Mais houses adicionadas na city principal. -Adicionado o set Really.Somente para Vip's. -Retirado o bug da quest itens absolute. -Adicionado o npc {BRUTAL} Seller.Vende: brutal uh,brutal mana,brutal sword e brutal axe -Adicionado os itens: brutal uh,brutal mana,brutal sword e brutal axe -Set God agora no segundo andar do templo. -Novo npc {REALLY} Seller.Vende: really helmet,really armor,really legs e really boots. -Retirado o bug da área de eventos. -Adicionado 20 new hunts na area free. -Adicionado 8 new hunts na area Vip. -10 Novos monsters chamados: Cientista Maluco,Blu Ray,Supremos Boss,Super Nova,Sindarion,Rad Boss,The Tiger,Nightmare Tiger,Undead Jester e Lord Jetta. -1 New monster na area vip chamado: Super Coin. -Nova quest dando 200 vip coins. IMAGENS: TEMPLO TELEPORTS SUPER VIP NEW MONSTERS DOWNLOAD: http://speedy.sh/3tn...amikaze-V21.rar DOWNLOAD 4SHARED: http://www.4shared.c...mikaze_V21.html SCAN:https://www.virustot...sis/1337546983/ Créditos:Subwat,Adm Kamikaze,PTBREC,Nadotti e Ropp Xeys. Comentem.Da um rep+ ae. Obrigado.1 ponto
-
Cassino System 100% By Drakylucas
BizaoOtServer reagiu a drakylucas por um tópico no fórum
bom galera.. alguns me conhecem, outros não, prazer.. DrakyLucas.. faz tempo que não mecho com Tibia, tanto por preguiça, quanto por falta de tempo. Fiz esse scriptzin para aquecer um pouco.. espero que gostem.. é bem legal para OTs sérios ou até para OTs brincalhões. Esse script é um sistema de cassino.. o player vai puxar uma alavanca, irão aparecer 3 monstros (1 por vez) em sua frente, se os três forem iguais o player ganha a aposta, caso contrario apenas perde seu dinheiro. exclusivo XTibia em! Testado com TFS 0.3.6 Lost Server - 8.60 Peço que abram os spoilers a seguir sequencialmente, para não se perderem na instalação. Instalação Mapa: Actions.xml Cassino.lua Finalizar Créditos Edited: 12/07/2012 11:38 AM -> concertei um possivel bug Por favor, comente sua opinião e dê ideias de outros sistemas legais para eu fazer.1 ponto -
Olá. Este é o meu primeiro ot serv que venho disponibilizar aqui no Xtibia. Usei como base o Carlin War do Soldoran Acc God God/God Screenshoots Mapa inteiro Templo Alavancas VIPS NPC Vip Armas VIP Trainer Soft Boots quest Recarregar soft NPC Algumas QUESTS Novas magias! Magias para Druid Magias para Sorcerer Magias para Druid e Sorcerer Obs: Apenas a magia Hyakka não é de minha autoria. Magias para Knight Magias para Paladin Exevo San Exori Holy Exevo Bat Download: http://www.multiupload.com/LWCIHFOBVX Obs: Estao sem as DLL. Scan: https://www.virustot...sis/1326580108/ ATENÇAO!!! ESTA OCORRENDO UM DEBUG QUANDO ENTRA NO CHAR DEPOIS DE CRIA-LO!!! PARA TIRA-LO BASTA IR EM DATA/CREATURESCRIPTS/CREATURESCRIPTS.XML E RETIRAR ESSA LINHA: <event type="advance" name="playeradvance" script="advance.lua"/> O Account manager esta em posiçao errada, basta abrir o Sqlite Studio dentro da pasta do ot, e configura-lo para o lugar correto !! Coordenadas: x 1048 y 941 z 6 Espero que gostem!! Não esqueçam do REP+ Créditos: -Créditos aos devidos donos pelas dlls e exe (Não sei de quem é) -Créditos aos devidos donos dos Scripts ( Existem varios) -Soldora - E para min1 ponto
-
Duvida Remeres Map Editor Ajuda Aki
leonardobo reagiu a Skywar por uma questão
Creio que seja seu autoborder, desligue ele e tente novamente. Aperte a tecla A para desligar.1 ponto -
Ajudar A Completar Este Script (Ring Atacck Target Com Sd)
Bennyhappy reagiu a Oneshot por uma questão
Fiz de cabeça o script, então não prestei atenção nisso. Enfim, local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT,CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -60, -1, -60, 5, 5, 4, 7) local combat_events = {} local function doCombatWithDelay(cid, combat, var, itemid) if isCreature(cid) then doCombat(cid, combat, var) if getPlayerSlotItem(cid, CONST_SLOT_RING) == itemid then combat_events[cid] = addEvent(doCombatWithDelay, 1 * 1000, cid, combat, var, itemid) end end end function onEquip(cid, item, slot) local target = getCreatureTarget(cid) if(target == 0) then return true end doCombat(cid, combat, numberToVariant(target)) combat_events[cid] = addEvent(doCombatWithDelay, 1 * 1000, cid, combat, numberToVariant(target), item.itemid) end function onDeEquip(cid, item, slot) doSendMagicEffect(getThingPosition(cid), CONST_ME_BLOCKHIT) stopEvent(combat_events[cid]) return true end1 ponto -
War Of Imperium Automatico
eduardosm14 reagiu a vinny160600 por uma questão
cara é só modificar os dias! http://www.xtibia.com/forum/topic/175368-video-aula-como-instalar-war-of-imperium/ ai no arquivo var.woe vc abre ele e procurar --days woe_config.dias = {"tuesday", "thursday", "saturday"} (os dias tem q ser em inglês!) no msm arquivo, é só configurar a hora do start. procure: --time to start woe_config.horaPartida = 11 ali no 11 é a hora. (atenção que n pode colocar ex: 22:00 só coloque 22)1 ponto -
Aew o server sai domingo ou so em setembro ? Mais uma coisa tenta por no tipo de doaçao pagamento por celular.1 ponto
-
[Encerrado] [Pokemon] Dúvidas? - Pda
shadow2012 reagiu a AWeskers por um tópico no fórum
@shadow2012: tenho o sistema de addon pros pokes não, mais acho que se vc p rocurar deve ter aqui no Xtibia um explicando como add.1 ponto -
[Encerrado] [Pokemon] Dúvida Quest's
Eternaus reagiu a StyloMaldoso por um tópico no fórum
data/action ai vc configura em data/action/action.xml certo até ai vc sabe ai só coloka id do bau se ajudei rep +1 ponto -
Duvida Para Deixar Meu Site Online
FlamesAdmin reagiu a StyloMaldoso por um tópico no fórum
Vish sl, fexa o xampp abre dnv e abre o site e tenta1 ponto -
Dúvida Sanada. Tópico reportado! Para você dar Rep a ele, é só clicar nessa setinha verde pra cima /\ no post dele.1 ponto
-
Verdade, devo ter apagado sem querer ^^. Tópico reportado para moverem.1 ponto
-
Ok, Tópico reportado para moverem.1 ponto
-
Magic Wall E Wild Growth
dudugh reagiu a pbottrinks por uma questão
Amigo, vou te dar uma redposta mais "precisa". Para modificar o tempo do "empurrão", você irá mecher no config.lua. Procure a seguinte linha: pushCreatureDelay = 1000 E modifique a gosto. Para modificar, altere o numero 1000. Vai aumentando, abaixando, até ficar do seu gosto. Agora o Magic Wall e a outra, você altera no items.xml. A Magic wall por exemplo, está assim: [/font][/color] [color=#282828][font=helvetica, arial, sans-serif]<item id="1497" article="a" name="magic wall"> <atttribute key="type" value"=magicfield" /> <attribute key="decayTo" value="0" /> <attribute key="duration" value="20" />[/font][/color] [color=#282828][font=helvetica, arial, sans-serif]</item>[/font][/color] [color=#282828][font=helvetica, arial, sans-serif] A duração é por segundos. No caso você altera os 20, citados em duration. O outro é só você procurar tambem em items.xml, e modificar a gosto. Se tiver duvidas poste aqui, ou me mande pm, ou me adcione no msn: lucas.rafael.correa@hotmail.com Abraços, Lucas Correa.1 ponto -
getCreatureTarget(cid) vai retornar um número gigante e grotesco que o sistema entende por ser o alvo do jogador. Mas se você fizer isso: getThingPosition(getCreatureTarget(cid)) Seus problemas estão resolvidos. Abraços.1 ponto
-
1 ponto
-
Pokemon Dash Advanced + Tutorial De Instalaçao De Website
gui637 reagiu a amoxicilinaaaaa por um tópico no fórum
Va na pasta de seu Servidor abra a config.lua Apague tudo que tiver la dentro é cole isso. Agora minha Duvida eu queria saber como colocar para os pokemon Demorarem para evoluir sozinho ou como tirar isso, e como abaixar a xp dos pokemon para que eles peguem level mais HARD. sé alguem souber posta aquii me encinando que dou REP +.1 ponto -
Uwnia World! [Zeep]
Eskylo reagiu a OForasteiro por um tópico no fórum
Você conseguiu enxergar o verdadeiro RPG do Tibia, parabéns. Com itens low pode se divertir muito ^^1 ponto