Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 08/30/13 em todas áreas
-
Informações: Tasks adquiridas ou canceladas em NPC As tasks podem ser feitas repetidas vezes, mas somente uma vez por dia e apenas uma de cada vez (tempo configurável) Comando para acompanhar o andamento da task Atualização (31/08/13) > agora é possível ganhar itens a cada vez que a task é terminada Atualização (05/09/13) > VÁRIOS bugs corrigidos e algumas novas opções adicionadas Agora você pode escolher se quer que as tasks sejam feitas por level ou na ordem Recomendo a todos os que baixaram alguma versão anterior que atualizem Códigos: Tags: Em creaturescripts.xml, adicione: <event type="kill" name="Tasks" script="taskkill.lua"/> Em talkactions.xml, adicione: <talkaction words="!countkills" event="script" value="countkills.lua"/> No arquivo creaturescripts/scripts/login.lua, adicione: registerCreatureEvent(cid, "Tasks") Scripts: Crie um arquivo tasklib.lua em lib Crie um arquivo countkills.lua e adicione em talkactions/scripts Crie um arquivo taskkill.lua em creaturescripts/scripts Crie um arquivo NomedoNPC.xml em npcs Crie um arquivo tasks.lua em npcs/scripts Configuração: É feita toda no tasklib.lua: Configuração dos monstros: taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100}} - O [número] deve seguir a ordem - A primeira parte deve ser o nome dos monstros da task no singular. Por isso existem 'cyclop' (singular) e 'cyclops' (nome do monstro) - Os nomes de todos os monstros de cada task devem aparecer. Por exemplo, na task de cyclops, qualquer tipo deles servirá para completar a task. - killstotal é a quantidade de monstros que você deve matar para terminar a task. Configuração das recompensas: taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5} -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task} - O [número] deve ter a mesma ordem dos monstros - money é a quantidade de dinheiro que cada um ganha ao terminar a task correspondente - xp é a quantidade de experiência ganha ao terminar a task correspondente - item é o ID do item que ganha ao terminar a task correspondente - points significa quantos pontos de task o personagem irá ganhar quando terminar a task correspondente Adicionando novos monstros: - Vou explicar com um exemplo de como adicionar uma task de hydra/serpent spawn No taskmonsters: (REPARE NA VÍRGULA QUANDO ADICIONEI UMA NOVA LINHA!) taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100},[4] = {'hydras e serpent spawn','hydra','serpent spawn',killstotal = 200}} No taskrewards: taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5}, -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task[4] = {money = 30000, xp = 5000, item = 2450, amount = 1, points = 3}} Agora na função doStartTask(cid) - somente se quiser que as tasks sejam feitas por level - O que aconteceu: - Antes até o lvl 20 o jogador recebia a task dos rotworms, até o lvl 50, a task dos cyclops e daí pra frente, task dos dragons. - As tasks iniciais são as mesmas, mas até o lvl 80 é a task dos dragons e daí pra frente, o jogador receberá a task das hydras e serpent spawns. Considerações finais: O sistema de pontos apenas adiciona e checa a quantidade de pontos: você deve escolher se quer adicionar alguma coisa a partir deles. Testei profundamente e corrigi todos os erros que encontrei, postem se encontrarem mais algum, enviem o log do erro que farei o possível para consertar.3 pontos
-
Descrição: é um comando para enviar items direto ao depot do jogador, mesmo ele estando online ou offline! Testado: em Versão Sqlite, não sei se suporta versão Mysql/Sql additemdepot.lua function doPlayerAddDepotItems(pid, item, count) --By magus and edited by vodkart local item,count = {item},{(count or 1)} for k,v in ipairs(item) do local ls = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..pid.." ORDER BY `sid` DESC LIMIT 1") return db.executeQuery("INSERT INTO `player_depotitems` (`player_id`, `sid`, `pid`, `itemtype`, `count`, `attributes`) VALUES ("..pid..", "..(ls:getDataInt("sid")+1)..", 101, "..v..", "..count[k]..", '')") or false end end function onSay(cid, words, param) local t = string.explode(param:lower(),",") if not t[1] then doPlayerSendCancel(cid, "digite Nome, Item ID, quantidade.") return true elseif not getPlayerByNameWildcard(t[1]) and not getPlayerGUIDByName(t[1]) then doPlayerSendCancel(cid, "Você deve digitar um Nome Válido.") return true elseif not tonumber(t[2]) or not tonumber(t[3]) or tonumber(t[3]) < 1 or tonumber(t[3]) > 999 or not isItemStackable(t[2]) and tonumber(t[3]) > 10 then doPlayerSendCancel(cid, "você deve digitar NOME,ID,QUANTIDADE(maior que 0"..(not isItemStackable(t[2]) and " até 10 se não for empilhavel." or " até 1000 se for empilhavel.")..").") return true elseif not isItemMovable(t[2]) or not getItemNameById(tonumber(t[2])) then doPlayerSendCancel(cid, "Este item não existe ou não pode ser adicionado ao jogador.") return true end local player = getPlayerByNameWildcard(t[1]) if player then local parcel = doCreateItemEx(ITEM_PARCEL) if isItemStackable(t[2]) or tonumber(t[3]) == 1 then doAddContainerItem(parcel, t[2], t[3]) else for i = 1, t[3] do doAddContainerItem(parcel, t[2], 1) end end doPlayerSendMailByName(getPlayerNameByGUID(getPlayerGUIDByName(t[1])), parcel, 1) else local getPlayer = getPlayerGUIDByName(t[1]) if isItemStackable(t[2]) or tonumber(t[3]) == 1 then doPlayerAddDepotItems(getPlayer, t[2], t[3]) else for i = 1, t[3] do doPlayerAddDepotItems(getPlayer, t[2], 1) end end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você adicionou "..t[3].." "..getItemNameById(t[2]).." ao depot do jogador "..t[1]) return true end Tag <talkaction log="yes" access="5" words="/adddepot" event="script" value="additemdepot.lua"/> Exemplo de uso: /adddepot vodkart,2160,500 ou adddepot vodkart,2494,62 pontos
-
[CTF] Capture The Flag 2.0(Automático)
Diego Rosa e um outro reagiu a MaXwEllDeN por um tópico no fórum
#Introdução Este é um sistema de rouba bandeira, no qual tem dois times que se enfrentam e tentam se infiltrar na fortaleza do inimigo, roubar a bandeira dele e retornar para sua base com ela. #Instalação Faça o download do sistema e cole na pasta do seu servidor. Download Capture The Flag 2.0Após ter instalado os arquivos nas suas respectivas pastas e instalado as tags nos arquivos xml, abra a pasta do seu servidor, e em seguida abra a pasta spells/scripts/support, e abra o arquivo invisible.lua com algum editor de texto, depois de function onCastSpell(cid, var) cole isso: if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end ficando assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end return doCombat(cid, combat, var) end #Configuração Como na maioria dos meus códigos: as configurações ficam na lib, então: waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer days = {2, 5, 7}, -- Dias que o evento vai abrir xp_percent = 0.5, -- Porcentagem de xp que o player vai receber quando ganhar timeclose = 1, -- Tempo para iniciar o CTF winp = 10, waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera Posição onde os players que entrarem no teleport vão ficar esperando, até o evento iniciar tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer Posição de onde o teleport vai aparecer days = {2, 5, 7}, -- Dias que o evento vai abrir Dias que o evento vai iniciar. xp_percent = 0.5, -- Porcentagem de exp que o player vai ganhar Quando o evento acaba, os players da equipe que venceu ganham uma quantidade de experiência baseada na experiência que eles já têm, exemplo: Meu player tem 1200000000 de exp, quando o evento acabar, ele vai ganhar 0.5% da exp que ele tem, no caso desse exemplo 6000000 de exp. timeclose = 1, -- Tempo, em minutos, para iniciar o CTF Tempo para o teleport sumir e os players que estão na sala de espera serem teletransportados para o evento. winp = 10, -- Quantos pontos uma equipe precisa marcar para vencer Quantos pontos uma equipe precisa marcar para vencer o evento. Para configurar o horário que o evento vai abrir, é só você modificar na tag do globalevents.xml: <globalevent name="CTFCheck" time="19:33:00" event="script" value="CTFMax.lua"/> Você não precisa criar as bandeiras pelo map editor. O script irá adicioná-las automaticamente. É isso, essa versão é uma remake, vários bugs reportados pela galera na v.1 foram corrigidos, o script ficou mais simples2 pontos -
[Aula 7] Aplicações em OTServer (Parte 1)
GustavoCastilho e um outro reagiu a Roksas por um tópico no fórum
Aplicações em OTServer Saudações queridos alunos, até agora aprendemos o básico, a Lua pura, aonde nós tivemos uma noção do que aprender realmente. Nesta aula estaremos ensinando funções e como criar seus próprios códigos em OTServer. Primeiramente irei mostar á vocês as funções [get] que em inglês significa (checar, verificar). Esses tipos de funções checam e verificam X coisa. Irei cá postar a maioria delas e como funcionam. Funções [get]: Funções [is]: Funções [do]: Funções [set]: Nós temos diversos tipos de scripts que podemos criar em OTServ (Actions, Creaturescripts, Globalevents, Movements, Talkactions, etc) Como começar? Actions: function onUse(cid, item, frompos, item2, topos)oufunction onUse(cid, item, fromPosition, itemEx, toPosition) cid: CreatureID (Monsters, NPCS, Players); item: O item que iremos clicar, podemos informar ele no script ou no .xml; frompos: Na posição que estou clicando; item2: Items com use with... topos: Para a posição; Creaturescripts: function onLogin(cid)function onLogout(cid)function onDie(cid)function onDeath(cid, corpse, killer)function onAdvance(cid, skill, oldlevel, newlevel)function onAttack(cid, target)function onCombat(cid, target)function onLook(cid, thing, position, lookDistance)function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)function onKill(cid, target, lastHit)function onTextEdit(cid, item, newText)function onStatsChange(cid, attacker, type, combat, value) corpse: Corpo ao morrer; killer: Quem matou; target: Quem o cid atacou; lastHitKiller: O último a hitar; mostDamageKiller: O que mais hitou; lastHit: O valor do último hit; attacker: Quem atacou o cid; Globalevents: function onThink(interval, lastExecution, thinkInterval)function onTimer() Movements: function onEquip(cid, item, slot)function onDeEquip(cid, item, slot)function onStepOut(cid, item, pos)function onStepIn(cid, item, pos)function onAddItem(moveitem, tileitem, pos)function onRemoveItem(moveitem, tileitem, pos) item: O item que o cid equipou / desequipou ou andou em cima; Talkactions: function onSay(cid, words, param) words: Palavras ditas; param: Parâmetros das palavras; Explicações: callbacks -- Nome das funçõesExemplos: onSay, onKill. parameters ou parâmetros -- São tudo que vem depois do callback e entre ( e ).Exemplos: (cid, item) Criandos os scripts: Primeiramente, devemos saber oque queremos fazer. Se vamos clicar em algo (actions), se vamos falar (talkactions), se vamos colocar / retirar items ou andar (movements), entre outros. Digamos que iremos criar um actions: function onUse(cid, item, frompos, item2, topos) Agora queremos adicionar ao script, uma verificação. Caso o player tenha level maior que 300, ele irá healar toda sua health e mana: function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) >= 300 then doCreatureAddHealth(cid, 100000) doCreatureAddMana(cid, 100000)endend Utilizando operadores relacionais verificamos se o level do cid (player), é 300 ou maior. E assim, adicionar mana e health. Exercícios para casa: 1º Exercício: Tente criar um item que ao clicar, me dê 100gps. 2º Exercício: Faça oque puder com oque aprendemos, tente utilizar 10 funções. 3º Exercício: Escolha um script qualquer na internet, e explique ele completo.2 pontos -
Iae pessoal, hoje vim disponibilizar ums programas que eu uso para me proteger de nukers para a galera que tá sofrento com isso ai. Programas: Kiwi Guard. Firewall Anti DDoS, ele bloqueia ataques ao seu servidor/site e captura o IP do atacante, impossibilitando que ele acesse novamente o site ou servidor. Anti-Nuker by Beholder. O Anti-Nuker promote proteger as principais portas que os atacantes atacam para derrubar seu servidor. Port Safe 3.0. O Port Safe 3.0 é uma otima ferramentas para se proteger de hackers nukers. Protege as portas; 139, 13, 21, 59, 80, 113, 137. Kit Anti-Nuker. Scanner.2 pontos
-
ME DIZ PORQUE?
JobbyMag e um outro reagiu a Jobbysantos1999 por um tópico no fórum
PORQUE TODO TIBIANO GOSTA DE ANIME E EU NÃO? PORQUE VOCÊS DO FORÚM GOSTAM DE NARUTO E EU ODEIO? PORQUE EU NUM SOU CHEGADO A ROCK? EU SOU DOENTE? PORQUE? PORQUE EU SOU DIFERENTE DE TODO MUNDO? PORQUE TODO MUNDO ME ODEIA? PORQUE TODO MUNDO ME CRITICA? ALGUÉM ME RESPONDE?2 pontos -
Denuncias e Reports?
Critical e um outro reagiu a Alexclusive por um tópico no fórum
Olá galera Xtibiana, hoje estou aqui para relembrar a vocês que o Xtibia tem um sistema para atender reports em que vocês devem apenas reporta alguma irregularidade, muitas pessoas não sabem que existe o sistema e também não sabem como reporta um tópico fora das regras, lembrando que o Xtibia tem regras que devem ser seguidas, baseando-se nelas você pode denunciar um tópico fora das regras. Todos devem estar cientes das regras do Xtibia.com, para lê-las clique aqui! Como eu reporto um tópico? Muitoo fácil, vendo alguma irregularidade no tópico apenas use o botão Denunciar que é localizado abaixo da barra de status de reputação, logo abaixo do avatar melhor dizendo, um botão como este: Quando eu reporto um tópico? São muitas situações que deve-se reporta um tópico para isso existe um tópico com as regras do xtibia.com mais irei cita as que mais são 'puladas' Flood - comentários desnecessários, como: muito legal Double post - comentários seguidos de um só membro Double topic - tópicos iguais de um só membro Ripping - conteúdos, trabalhos copiados totalmente de outro membro Vírus - nem precisa explica né? Como funciona o sistema? Simples, quando você reporta um tópico todos os moderadores recebem-o em um local indicado a moderação, em cada área a um certo moderador.. Exemplos: Moderação modera a partes de tibia entre outras Design modera a parte de gráficos Imprensa modera a parte de noticias Lembrando: Além de você ajudar o xtibia.com a ter um conteúdo sempre organizado você pode, Ganhar reputação por ajuda reportando Ser indicado pelos moderadores e virar da equipe Entre outras coisas que podem te ajudar no fórum.. * Lembre-se, para denunciar uma irregularidade use o botão denunciar e não é preciso enviar uma mensagem pessoal (mp) para um moderador ou qualquer membro da equipe. Atenciosamente, Equipe.2 pontos -
ME DIZ PORQUE?
JobbyMag e um outro reagiu a Jobbysantos1999 por um tópico no fórum
Isso não me ajudou!2 pontos -
[10.10] The Forgotten Server 0.3.7
Kheus Andrade reagiu a Fir3element por um tópico no fórum
The Forgotten Server 0.3.7, versão 10.10 Atualizações: Client 10.10 suportado. Novas montarias. Removido salt do login, agora pode usar acc manager e acc maker normalmente. Adicionado projeto do Dev-Cpp. OBS.: as features novas 10.x não foram implantadas (browse field, etc). Downloads: Server (32-bit): http://www.mediafire.com/?aq9av842mwawf0g Server (64-bit): http://www.mediafire.com/?iqqv5c8cer5862g Source: http://www.mediafire.com/download/4z3aa9xjf8sjora/source1010.rar Scans: Server (32-bit): https://www.virustotal.com/pt/file/d2f539e9841685d900932615b0045e3cb09bb1576ea8ee7589d90594ae045768/analysis/1377354392/ Server (64-bit): https://www.virustotal.com/pt-br/file/1f522e02f702c644a4385113f241f0051d671230a19207234cee8e4589b65296/analysis/1377434735/ Source: https://www.virustotal.com/pt/file/099c0727c31ef9371661f7be8a34adcac71d2a7ad1a61f59bc2b36a8ae79cc68/analysis/1377354174/ Todos os créditos vão para a equipe do TFS (Elf, Talaturen, Dalkon, BeniS, Tryller e Kornholijo). server1010.rar source1010.rar server1010_64bit.rar1 ponto -
Mapa feito por AnneMotta: Mapa Battlefield.rar scan: https://www.virustot...sis/1346548669/ Imagens do mapa: Descrição: - O evento é automático e acontece em determinado dia e hora da semana - Logo após é aberto um teleport então apenar um número limitado de players entra no evento - São formados por dois times, os "Black Assassins" e os "Red Barbarians" - Os times são balanceados automaticamente, quando o último jogador entra, esse teleport é fechado e depois de 5 minutos o evento começa, os 5 minutos são para os players ter tempo de planejar um ataque. - O sistema tem por finalidade matar todos do time inimigo, e os players que sobreviverem recebem um prêmio. Bônus: - Durante o evento é mostrado na tela somente dos jogadores que estão no evento um placar de times. - Até o último player entrar no evento, ficam mandando broadcast dizendo quanto players faltam para dar inicio ao jogo. - Se o evento abrir e não atingir a meta de players colocada, o evento é finalizado e os players voltam para o templo. Lembre-se: - De colocar Pvp Tool na área - De colocar área NoLogout Imagens: Instalação: Data/Lib Data/CreatureScript Data/Globalevents Data/Movements Como configurar: Configuração dos Times: Configurar Datas do evento: Configuração Paredes:1 ponto
-
AVATAR ONLINE
maicom2811 reagiu a craigmabbit por um tópico no fórum
Bom resolvi postar um servidor de avatar que eu fiz em apenas 2 dias , baseado no servidor Korelin 8.00 nele contem todas as dobras, inclusive "Jump", que muitos tentaram mas ninguem conseguiu.. pois é , Sistema de "Water Pouch" 100% é só dar use na borda de agua que enche e nada mais.. e pra esvaziar usar o comando "!fw" vou postar algumas SS o server contem itens "Divines" Ghost Ring - Diminui o dano recebido em 60% Solid Legs - Aumenta o ataque do usuario em 160% Vampire Chain - a cada hit que o usuario da em uma criatura ou player, ele automaticamente suga a vida pra sí Mirror Armor - Reflete em 100% todos os danos tomados. os erros do EXE é falta de npc apenas. IMAGENS Earth JUMP. AIR TORNADO Water Dragon Fire CHARGE Versão: 8.6 LINK: http://www.4shared.c...tar_Online.html Server contem as sourcers. Creditos : Craigmabbit/Benegrip -- sou os dois rs SE FOR POSTAR EM OUTRO FORUM NÃO ESQUEÇA DOS CREDITOS.1 ponto -
Global Server 10.10
kk44 reagiu a alissonfgp por um tópico no fórum
Estou liberando o update de correção de bugs, tivemos muitos reportes de bugs, mas consegui trabalhar bem na reparação dos erros. Pesso desculpa pelo atraso neste update. Segue abaixo o que foi corrigido neste update: * Sem os novos sistemas de Browse Field, PVP(10.10) e Guild mark 10.10 * New Ab'Dendriel 98% * Houses De Ab'Dendriel Adicionadas * Protection Zones das novas areas * New Drefia 98% * Monsters 10.10, mas nao completos faltam loots e attacks (Postarei em breve no forum caso ninguem poste) * Npcs adicionado (mas estao com nome e outfit alterada tem que ajustar.) * Bug de Fibula removido * Bug dos 15kk Trolls Removido * Bug da ML removido * Bug Factory Quarter Yalahar new cave de War golems corrigido agora 100% acessivel * Adicionado Trainers Offline em Ab'Dendriel e Ankrahmun (as que faltavam) * Protection Zone em Quirefang * Concertado hits de alguns monstros das versoes 9.4 ~~ 9.6 * Bug Demon Oak, entrar mais que 1 player foi corrigido, Só entra 1 agora * Bug Warzones (agora pode refaze-las apos 20h) * Npc Avar Tar entregando Demon outfits and addons * Save configurado agora nao salva frequentemente * Buracos no mapa corrigido-- se encontrarem mais por favor reportem * Novas mounts adicionadas * NPCS Gamon(Thais), Nydala(Carlin) e Allen(Venore) vendendo a nova cama canopy bed kit adicionado * Database concertada (erro quando deslogava character resetava o player)-- precisa importa sql doc gatilho player dentro da pasta * Items.xml com corpses dos novos monstros * Items.xml Alguns items adicionados (Nail case, Tiles entre outros, Nao estao 100% peso, Descriçao e talz) * /newtype adicionado 10x (para quem quiser ver as novas looktype) * Porta da ilha Vegas trancada (Soft boots free ¬¬) * D'lair Kazz Adicionada * Lizard Chosen new respawn adicionado * Lancer Beetle new respawn adicionado Sources nao postarei ainda vou tentar adicionar os novos sistemas. Creditos: 8.6 Denner 8.6x+ Alissonfgp (EU) Outros (reportaram bugs, no mapa, scripts e talz) Distro: TFS Team 9.86 e Update 10.10 feito por min(Alissonfgp). Links: Datapack: http://www.4shared.com/rar/j-GBsosP/Global1010byAlissonfgpPT_2_.html Distro TFS 0.3: http://www.mediafire.com/?cbvkjxe1oggcr52 Source 0.3 Novo Sistema de Party adicionado: http://www.4shared.com/rar/lpVxPgKU/03_Source_1010_By_Alissonfgp.html Scan: https://www.virustotal.com/pt-br/url/4822c0a42c15bb81680e89daa34a55d91a58043272b2fc33cc127b28ec709724/analysis/1381956584/ Scans: SCAN DATAPACK: https://www.virustotal.com/pt-br/url/908394709feeffb6a947ded09b79db2b659ead4f655e75072bab33e77a222ff7/analysis/1381322018/ SCAN TFS 0.3: https://www.virustotal.com/pt-br/url/b30016d7ece4a831a9a4e02c002bc0255736f4356cd96b8cfdc4f13d04c8b4f7/analysis/1377522194/ Senha do God... Account: tibia Password: 234567 UPDATE DIA 13/10/2013 Link: http://www.4shared.com/rar/j-GBsosP/Global1010byAlissonfgpPT_2_.html Scan: https://www.virustotal.com/pt-br/url/908394709feeffb6a947ded09b79db2b659ead4f655e75072bab33e77a222ff7/analysis/1381322018/ Alguns Bugs Removidos... * Novo Sistema de Party Adicionado * Quest Drefia Adicionado * Portas de Drefia e Buracos, onde se usa Corda(rope) arrumado * Monsters 10.10 98% loots e atks (by Avronex) * Database Sqlite arrumado * Portas de Venore concertadas (as portas com a maçaneta brilhando e que nao querem abrir adicione actionid 100) * Libs sem utilizaçao removidas. * Mounts e Mount doll concertados... * Bug Container Removido * Bug 64 Bits para win64 removido (agr roda sem esse erros) * NPC e Escada em Thais, npc Xodet de Potions... Breve... Browse field e Novo Sistema de Guild e a Source. E removerei mais bugs... Algumas imagens: Novo Party System Drefia Ab'dendriel Norte Carlin Norte Ab'dendriel Hellgate1 ponto -
conectando o site com o serve dbko ou wodbo
Jackgoku reagiu a joseanpereira por um tópico no fórum
ai vai o tutorial para a galera que esta com dificuldades vamos la Downloads necessários: Xampp: http://www.baixaki.c...nload/xampp.htm site: http://www.mediafire...b6f4eks2qlf8bsi e seu serv se ja tiver seu site não baixe Xampp: Programa necessário para rodar o site e o banco de dados do server. Configurando o banco de dados: apos instalar clique em yes quando pedir ou sim apos isso abrira o xamp control se não abrir va ate seu xamp instalado e abra xampp-control aonde tem apache e mysql, se não estiver running clique em "start". para os dois ficarem running Depois abra o internet explorer e acesso o endereço http://localhost/phpmyadmin. se não entrar entre nesse localhost/phpmyadmin Se pedir usuário, digite root e senha em branco. Logo no começo vai estar assim "Criar Novo Banco de Dados", deixe Collation e no espaço em branco coloque server, e clique em criar. vc vai ser reditecionado Depois clique na barra acima, em "importar" e importe o arquivo chamado datebase na pasta do seu ot clique em executar Depois importe outro arquivo chamado database na pasta do seu site configurando o ot agora Abra o arquivo config.lua na pasta server e ache algo parecido com essa parte: --- MySQL part (ignore if you are using SQLite) sql_host = "localhost" sql_user = "root" sql_pass = "patito2858" sql_db = "otserv" troque por --- MySQL part (ignore if you are using SQLite) sql_host = "localhost" sql_user = "root" sql_pass = "" sql_db = "server" pronto vamos seu ot ja abre vamos configurar seu site Extraia seu site abra e copie os arquivos dele agora va ate o xamp abra a pasta htdocs do xampp e cole os arquivos copiados se pedir para substituir coloque sim para todos Depois abra o arquivo config.inc, ai mesmo na pasta htdocs procure por # MySQL server settings $cfg['SQL_Server'] = 'localhost'; $cfg['SQL_User'] = 'root'; $cfg['SQL_Password'] = 'wodbo9elektro8'; $cfg['SQL_Database'] = 'sparking'; deixe a sim $cfg['SQL_Server'] = 'localhost'; $cfg['SQL_User'] = 'root'; $cfg['SQL_Password'] = ''; $cfg['SQL_Database'] = 'server'; feche e salve Depois vá em xampp\apache\conf e abra o arquivo httpd.conf. Aonde está assim: #Listen 0.0.0.0:80 #Listen []:80 Listen 80 Deixe assim: #Listen 0.0.0.0:8090 #Listen []:8090 Listen 8090 se não tiver a parte final Listen 8090 coloque a baixo como esta na imagem agora va ate a pasta do seu ot abra conf.lua e procure por ip = troque o que tiver por ip = "localhost" ATENÇÂO vc tera que abrir a porta 8090 para abrir va em iniciar painel de controle conexão de rede e de internet depois em firewall do windows clique na aba exceções e clique em adicionar porta em nome coloque qual quer um em numero da porta coloque 8090 marque a opção TCP e clique em ok observe a imagem a baixo Pronto, agora para acessar o site do seu ot, acesse http://localhost:8090 no internet explorer. abra o seu serve espere carregar faça a sua account no site e logue no seu ot espere um pouco ate que apareça serve ON ou liga depende do seu site se for o que vc baixou do tutorial ficara server ligado ATENÇÂO toda ves que vc for ligar seu serve vc tem que abrir o XAMPP Control Panel e deixar running como a imagem a baixo1 ponto -
Explicações sobre as medalhas atuais!
Administrador reagiu a Alexclusive por um tópico no fórum
Pessoal, estou adicionando as medalhas manualmente ainda. As medalhas dos concursos não vão ser entregues mais, pois os concursos já não são mais os mesmos e breve vamos ter novos concursos, com novas medalhas e "cinturões". Obs: A medalha de Membro, vai ser entregue automaticamente. (Estou ajeitando isso) Por enquanto estou adicionando manualmente. Para aqueles que já possui os posts, aguardem que logo você vai receber. Aqui vai uma explicação de como estão as medalhas atuais:1 ponto -
[X-Redação+Updates] Aniversário de 8 anos do X-tibia.
Mophus reagiu a Alexclusive por um tópico no fórum
Fazemos aniversário mais quem ganha presente são vocês Novo Portal: Estamos liberando uma versão beta do portal no link Beta Portal, estamos fazendo diversas alterações diárias e em alguns dias devemos chegar numa versão melhor e mais leve para o público Novo Fórum: Resolvemos a maioria dos problemas reportados no fórum como bug do f5, conquistas e outros. Também alteramos todo o design do fórum, para ficar de acordo com a nova identidade do xtibia.com, agora um senhor, de 8 anos. Para comemorar o aniversário de 8 anos do Xtibia, decidimos fazer um concurso, onde você terá que escrever uma redação falando de sua própria historia dentro desses 8 anos vividos aqui. A redação deverá ser bem elaborada, conter de 10 a 30 linhas e vocês devem escrever como um texto mesmo (não um tópico) e de forma organizada, abordando os seguintes assuntos: Apresentação (nome, idade, ocupação, onde mora...) Ano que conheceu e começou a frequentar a comunidade. Como foi que conheceu a comunidade. Amizades e grandes amizades que foram feitas na comunidade. Fale sobre: Aprendizado adquirido na comunidade (scripting, mapping...design). Explique: Inspiradores e grandes inspiradores na comunidade. Fale sobre: Projetos iniciados na comunidade e com quem. Explique: Projetos em execução criados na comunidade e com quem. Explique: Projetos em execução criados fora da comunidade. Explique: O que o Xtibia contribuiu (contribuirá) pra sua formação profissional. Explique: Em 8 anos do Xtibia, qual foi a melhor época e por quê? Na sua visão, o que seria o Xtibia perfeito? Explique: Se arrepende de alguma atitude dentro do fórum? Explique: Gostaria de deixar alguma informação ao Gustavo (fundador) do Xtibia? Gostaria de deixar alguma informação aos ADMIN's que passaram pelo Xtibia? Premiações: Por ser uma data mais que especial, vamos premiar vocês com algo diferente, veja abaixo: 1º Teclado e Mouse Multilaser Sem Fio. 2º VPS 1GB da ServerSoft. 3º Domínio .com ou .com.br. As redações deverão ser postadas neste tópico, até sábado, 31/08 as 23:59, dentro de um spoiler. (Qualquer duvida pode e deve ser feita por aqui)1 ponto -
[SHOW-OFF] Skin System
TioItachi reagiu a supernetoo por um tópico no fórum
Bom, só querendo compartilhar minha primeira gambiarra com vocês do XTibia '-' O Skin System, pra quem não sabe, muda a imagem da UIMiniWindowContainer (Onde você põe aquelas miniwindows que se encaixam direitinho, e também pode removê-las de lá). Foto do Sistema: Obs.: Eu quero uma nota pra essa gambiarra e.e' Abrçs.1 ponto -
[Release] Dbko Arena DBKO Arena é um servidor de Dragon Ball Tibia,que contém novas sprites e novos sistemas que irei listar agora : -Sistema de enchant exclusivo dkbo 8.0. -Todas as armas com seus respectivos ataques. -Armaduras healando normal igual dbko. -Mapa inteiro Dbko. -Todas as vocações com transform level 400 e seus respectivos poderes. -Todas as vocações de "Kuririn a Pan". -Comandos para transformar, todos a palavra transform até level 400. -Vocações balanceadas poder e hit. -Skill subindo de acordo Dbko. -Vida e mana igual Dbko. -Client Proprio Com algumas alterações. -Reborn quest totalmente igual Dbko original. -Monstros com ataques de nomes certos. FOTOS : ghj DOWNLOAD DO SERVER : Clique Aqui SCAN DO SERVER : Clique Aqui DOWNLOAD DO CLIENT :Clique Aqui SCAN DO CLIENT : Clique Aqui SITE DO SERVER :Clique Aqui SCAN DO SITE :Clique Aqui TKCréditos : -GuuhTorres -Neto009 eu por trazer aki ESPERO QUE GOSTEM,MUITO OBRIGADO.ATT GUUHTORRES.1 ponto
-
1 ponto
-
Meu nome é Daniel, tenho 20 anos e moro no Rio de Janeiro. Estudo engenharia química e trabalho como professor particular.1 ponto
-
Galeria Spr -IceMythical
IceMythical reagiu a Lucasmml por um tópico no fórum
Ice,Dê uma olhada na nossa área de "tutoriais aqui da seção de spriting" e tente criar algo mais ousado e não há a necessidade de você postar a sprite ampliada, salve ela em ".png" e poste ela normalmente, e seja muito bem vindo ao Fórum e ao mundo do Pixel Art. Ah, e não se esqueça de postar as sprites somente neste tópico seu, este tópico será a sua galeria.1 ponto -
@rokas nesse seu script só um player vai poder usar o item, e os demais vão retorna a mensagem dizendo que tem que esperar até meia noite. usa esse scripts actions function onUse(cid, item, frompos, item2, topos) local storage = 97561 if getPlayerStorageValue(cid, storage) >= 1 then return doPlayerSendCancel(cid, "You are exhausted, wait at 00:00 hrs.") end doPlayerAddItem(cid, 8110, 1) setPlayerStorageValue(cid, storage, 1) doPlayerSendTextMessage(cid, 20, "[Congratulations] You has been earned a "..getItemNameById(8110)..".") return true end global events function onTimer() local storage = 97561 db.executeQuery("DELETE FROM `player_storage` WHERE `key` = ".. storage) for _, pid in pairs(getPlayersOnline()) do setPlayerStorageValue(pid, storage, 0) end return true end a TAG e o NOME dos scripts podem ser o mesmo que os do roksas1 ponto
-
Bom galera, meu nome é João Gabriel, tenho 15 anos e moro em Vitoria da Conquista - Bahia:1 ponto
-
[SHOW-OFF] Skin System
Noninhouh reagiu a supernetoo por um tópico no fórum
@all Valeu pelos elogios galera! @gristony O fundo preto é assim mesmo, é que dei uma editada nas imagens do OTClient e achei que ficava mais estiloso (sexy) assim... Kkkk' @edit: Gristony, a seu pedido botei a skin none (só faltou um modelo mais clean pra o "?" mas assim tá bom já T_T)1 ponto -
RENOMAR ARQUIVOS DO EXE
Lucasmml reagiu a AandersonC por uma questão
Vlw a todos que comentaram já consegui ;D Vou Reportar para que algum Moderador mova..1 ponto -
Fiz scan pra vc -> https://www.virustotal.com/pt/file/f96856cebdfbb6307e7f4c9bd4aea54bf52ae2c3ab347c65a0014d4d1eb59eba/analysis/1377898196/ Testarei, parece que tá legal... colocarei online se estiver sem bugs1 ponto
-
Mapa love game 8.60 styller propio
iuryxxt reagiu a SkyDarkyes por um tópico no fórum
Eu mesmo já joguei o servidor é muito bom xD1 ponto -
RENOMAR ARQUIVOS DO EXE
AandersonC reagiu a Fir3element por uma questão
Com o hex editor funciona tbm, só dar ctrl+f e procurar por tibia.spr q tu vai achar1 ponto -
RENOMAR ARQUIVOS DO EXE
AandersonC reagiu a SkyDarkyes por uma questão
É facil no Vapus,tem isso aki Ai é só você muda o nome1 ponto -
Novas Vocações
NandinDaBazuca reagiu a koete por uma questão
no meu server tem 9 vocações só que no gesior quando vai criar o char apoarece só as 4 padrão do tibia knight, druid, paladin e sorcerer. eu fui no config.php e tentei mudar algumas coisas mas sem futuro. alguém pode me ajudar? // CHARACTER config, format: ID_of_vocation => 'Name of Character to copy', load vocation name from $vocation_name[0] (below)$config['site']['newchar_vocations'][0] = array(1 => 'Sorcerer Sample', 2 => 'Druid Sample', 3 => 'Paladin Sample', 4 => 'Knight Sample');$config['site']['newchar_vocations'][1] = array(1 => 'Sorcerer Sample', 2 => 'Druid Sample', 3 => 'Paladin Sample', 4 => 'Knight Sample');// sample, if rook only: $config['site']['newchar_vocations'][0] = array(0 => 'Rook Sample');$config['site']['newchar_towns'][0] = array(5);$config['site']['newchar_towns'][1] = array(5);// sample, if all players should spawn in one city (city with ID 4): uncoment!! //$config['site']['newchar_towns'] = array(4);1 ponto -
[X-Redação+Updates] Aniversário de 8 anos do X-tibia.
Alexclusive reagiu a Lucasmml por um tópico no fórum
Vamos pessoal, mandem suas redações. Participe! Dês de já a equipe do Xtibia agradece em nome de todos vocês.1 ponto -
Novas Vocações
koete reagiu a NandinDaBazuca por uma questão
crie novos samples com as com o nome das suas vocações, seguindo a linha de raciocinio anterios, ou seja, knight sample para knights se tiver por exemplo classe warlock basta criar um char chamado warlock sample, depois disso vá a no config.lua e adicona a nova vocation seguida das outras, com o id numer correto logo nesse trecho: // list of vocations on ots (world 0) $vocation_name[0][0] = array(0 => 'None', 1 => 'Sorcerer', 2 => 'Druid', 3 => 'Paladin', 4 => 'Knight'); // id => 'name' , $vocation_name[0] - promotion level 0, $vocation_name[0] - for world ID 0 deve resolver no site!1 ponto -
#Amigo, o nome do seu tópico está irregular, nada de "Socorro, ajuda, help" é permitido. Deve obrigatóriamente conter a sua dúvida, como um título. Preste mais atenção! @topic Vá em data/creaturescripts/scripts e crie um arquivo chamado pokeR.lua e adicione dentro: function onKill(cid, target, lastHit) local pokeR = "Pikachu" local pokeT = {x = 500, y = 400, z = 7} if not isMonster(target) then return true end if getCreatureName(target) == pokeR then doTeleportThing(cid, pokeT) doPlayerSendTextMessage(cid, 20, "[Recompensa] Você foi recompensado por matar o "..pokeR..".") return true end return true end Aonde está pokeR coloque o nome do Pokémon e pokeT a posição para onde será levado. Em creaturescripts.xml adicione: <event type="kill" name="pokeR" event="script" value="pokeR.lua"/> Em login.lua adicione: registerCreatureEvent(cid, "pokeR")1 ponto
-
Não sei o que pode causar esse erro mas use esse RME: http://www.xtibia.com/forum/topic/173891-983-remeres-map-editor/ Ele dispensa instalação e está mais atualizado que o do site original.1 ponto
-
Iae pessoal, hoje irei ta ensinando a adicionar level para as portas [door] . É muito útil na hora de fazer uma nova quest, limitar acesso de jogadores por level e etc. Programas testados: [Ot Map Editor Sim One 7.81, Remere's Map Editor]. 1- Abra o seu editor de mapa. 2- Carregue seu mapa no editor. 3- Então, procure sua porta e aplique-a no mapa. 4- Dê dois cliques sobre ela, e abri-rá suas propriedades. 5- No campo "Action ID", coloque lá o level de sua porta. Observação [5]: Sempre terá que ter "1000" na hora de adicionar no "Action ID". Exemplo 1: Quero adicionar level 100 para a porta, então fica: 1100 Exemplo 2: Quero adicionar level 5 a porta, entao fica: 1005. Exemplo 3: Quero adicionar level 50 a porta, então fica: 1050. Sacô !? 6- Salve. Bom uso.1 ponto
-
Customizar pagina com nome etc..
TheMrDCS reagiu a luanluciano93 por uma questão
Me mande MSG que te ajudo no que você precisar em Gesior.1 ponto -
Avatar - Assinatura - Banner - Sign - Background -
Alexclusive reagiu a Jackgoku por uma questão
Muito Obrigado, muito Shoow, Leva meu Rep+ e me desculpe pelo erro A imagem é grande para assinatura :\ tem como diminuir? Não precisa mais, muito obrigado, consegui diminuir1 ponto -
Avatar - Assinatura - Banner - Sign - Background -
Jackgoku reagiu a Alexclusive por uma questão
Aqui meu jovem:1 ponto -
[Encerrado] por que da esse erro na hora de abrir o serve dbko arena
joseanpereira reagiu a kbpaulo por um tópico no fórum
exemplo acha 1 arquivo s3b.....algo assim nao lembro nome e nao to em casa para ver certinho e o arquivo database em sqlite.....poe na pasta ond ta o config.lua....depois ve o nome desse arquivo que vc pegar e poe no config lua....1 ponto -
[RESOLVIDO] Script que nao entra com tal item
Roksas reagiu a Session Start por uma questão
function onUse(cid, item, frompos, item2, topos) local pausa = 1000 -- tempo pra ela fechar local door = {x=1052, y=1059, z=7, stackpos=1} --posição da porta local ddoor = getThingfromPos(door) local open_door = 5136 -- id d aporta aberta local verify = 0 -- nao mecha local newpos = {x=1057, y=1051, z=7} local pokeball = {2392, 2393, 2391, 2390, 2394, 2160} -- id das pokeball for i = 1, #pokeball do if getPlayerItemCount(cid, pokeball[i]) >= 1 then doPlayerSendCancel(cid,"voce nao pode entrar com pokebolas na bp") return true end end if ddoor.itemid ~= verify then doTeleportThing(cid, newpos) end return 1 end usa esse aqui então, e você poderia esclarecer isso antes neh '-'1 ponto -
Rainbow shield vip
xxmuylokoxx reagiu a Session Start por uma questão
vai em data/movements/move.xml e vai adicionando as tags: exemplo <movevent type="Equip" itemid="8905" slot="shield" event="function" value="onEquipItem"> <vocation id="1"/> <vocation id="5" showInDescription="0"/> <vocation id="2"/> <vocation id="6" showInDescription="0"/> </movevent> <movevent type="DeEquip" itemid="8905" slot="shield" event="function" value="onDeEquipItem"/> Ai é ele normal,só as vocações 1 / 5 / 2 / 6 podem usar.. Pega o ID dos transformados e faz o mesmo... MAS ANTES procura no arquivo e ve se ja nao tem com o ID deles, ai só adiciona a parte das vocations... :31 ponto -
->Emblemas na Skill Bar Pxg <- Pra quem esta fazendo um otserv de poketibia ta um script. >Tudo isso no Client< 1 - paga tudo que esta em Skills.OTUI e add esse SkillFirstWidget < UIWidget SkillButton < UIButton height: 21 margin-bottom: 2 &onClick: onSkillButtonClick SkillNameLabel < GameLabel font: verdana-11px-monochrome anchors.left: parent.left anchors.top: parent.top anchors.bottom: parent.bottom SkillValueLabel < GameLabel id: value font: verdana-11px-monochrome text-align: topright anchors.right: parent.right anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: prev.left SkillPercentPanel < ProgressBar id: percent background-color: green height: 5 image-source: /modules/game_skills/img/skillprogress image-border-left: 2 image-border-right: 3 margin-top: 15 anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top phantom: false MiniWindow id: skillWindow !text: tr('Skills') height: 150 icon: /modules/game_skills/img/perfil_icon @onClose: modules.game_skills.onMiniWindowClose() &save: true MiniWindowContents padding-left: 5 padding-right: 5 layout: verticalBox SkillButton margin-top: 5 id: experience height: 13 SkillValueLabel width: 130 text-align: top anchors.horizontalCenter: parent.horizontalCenter margin-left: 15 UIButton id: clanicon width: 37 height: 36 image-source: /modules/game_skills/img/skillicon anchors.top: parent.top anchors.left: parent.left SkillButton margin-top: 5 id: experiencee height: 13 SkillValueLabel width: 130 font: sans-bold-16px text-align: top anchors.horizontalCenter: parent.horizontalCenter margin-top: -6 margin-left: 15 SkillButton id: level SkillNameLabel !text: tr('Experience') SkillValueLabel SkillPercentPanel background-color: red SkillButton id: skillId6 SkillNameLabel !text: tr('Fishing') SkillValueLabel SkillPercentPanel SkillButton id: skillId3 SkillNameLabel !text: tr('Headbutt') SkillValueLabel SkillPercentPanel SkillButton id: health height: 15 SkillNameLabel !text: tr('Hit Points') SkillValueLabel visible: false SkillButton id: mana height: 15 SkillNameLabel !text: tr('Mana') SkillValueLabel visible: false SkillButton id: capacity height: 15 SkillNameLabel !text: tr('Capacity') SkillValueLabel visible: false SkillButton id: regenerationTime SkillNameLabel !text: tr('Regeneration Time') SkillValueLabel visible: false SkillButton id: offlineTraining SkillNameLabel !text: tr('Offline Training') SkillValueLabel SkillPercentPanel visible: false SkillButton id: magiclevel SkillNameLabel !text: tr('Magic Level') SkillValueLabel SkillPercentPanel background-color: red visible: false SkillButton id: stamina height: 15 SkillNameLabel !text: tr('Stamina') SkillValueLabel margin-top: 8 HorizontalSeparator height: 7 anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right margin-top: -6 SkillButton id: soul height: 15 SkillNameLabel !text: tr('All Catches') SkillValueLabel SkillButton id: speed height: 15 SkillNameLabel !text: tr('Speed') SkillValueLabel SkillButton id: skillId1 margin-top: 8 height: 15 SkillNameLabel !text: tr('Duels Won') SkillValueLabel HorizontalSeparator height: 7 anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right margin-top: -6 SkillButton id: skillId0 height: 15 SkillNameLabel !text: tr('Duels Lost') SkillValueLabel SkillButton id: skillId2 SkillNameLabel !text: tr('Sword Fighting') SkillValueLabel SkillPercentPanel visible: false SkillButton id: skillId4 SkillNameLabel !text: tr('Distance Fighting') SkillValueLabel SkillPercentPanel visible: false SkillButton id: skillId5 SkillNameLabel !text: tr('Shielding') SkillValueLabel SkillPercentPanel visible: false 2 - agora vai em skills.lua paga tudo e add esse ai skillsWindow = nil skillsButton = nil local imgs = { [-1] = "/modules/game_skills/img/trainer", -- -1 quer dizer esta sem clan... [1] = "/modules/game_skills/img/volcanic", [2] = "/modules/game_skills/img/seavell", [3] = "/modules/game_skills/img/orebound", [4] = "/modules/game_skills/img/wingeon", [5] = "/modules/game_skills/img/malefic", [6] = "/modules/game_skills/img/gardestrike", [7] = "/modules/game_skills/img/psycraft ", [8] = "/modules/game_skills/img/naturia", [9] = "/modules/game_skills/img/raibolt", } function init() connect(LocalPlayer, { onExperienceChange = onExperienceChange, onLevelChange = onLevelChange, onHealthChange = onHealthChange, onManaChange = onManaChange, onSoulChange = onSoulChange, onFreeCapacityChange = onFreeCapacityChange, onTotalCapacityChange = onTotalCapacityChange, onStaminaChange = onStaminaChange, onOfflineTrainingChange = onOfflineTrainingChange, onRegenerationChange = onRegenerationChange, onSpeedChange = onSpeedChange, onBaseSpeedChange = onBaseSpeedChange, onMagicLevelChange = onMagicLevelChange, onBaseMagicLevelChange = onBaseMagicLevelChange, onSkillChange = onSkillChange, onBaseSkillChange = onBaseSkillChange }) connect(g_game, { onGameStart = refresh, onGameEnd = offline }) connect(g_game, 'onTextMessage', getParams) connect(g_game, {onGameStart = changeImg}) skillsButton = modules.client_topmenu.addCustomRightButton('skillsButton', tr('skills') .. ' (Ctrl+S)', '/modules/game_skills/img/perfil_icon', toggle, true) skillsButton:setOn(true) skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel()) -- skills g_keyboard.bindKeyDown('Ctrl+S', toggle) refresh() skillsWindow:setup() end function terminate() disconnect(LocalPlayer, { onExperienceChange = onExperienceChange, onLevelChange = onLevelChange, onHealthChange = onHealthChange, onManaChange = onManaChange, onSoulChange = onSoulChange, onFreeCapacityChange = onFreeCapacityChange, onTotalCapacityChange = onTotalCapacityChange, onStaminaChange = onStaminaChange, onOfflineTrainingChange = onOfflineTrainingChange, onRegenerationChange = onRegenerationChange, onSpeedChange = onSpeedChange, onBaseSpeedChange = onBaseSpeedChange, onMagicLevelChange = onMagicLevelChange, onBaseMagicLevelChange = onBaseMagicLevelChange, onSkillChange = onSkillChange, onBaseSkillChange = onBaseSkillChange }) disconnect(g_game, { onGameStart = refresh, onGameEnd = offline }) disconnect(g_game, 'onTextMessage', getParams) disconnect(g_game, {onGameStart = changeImg}) g_keyboard.unbindKeyDown('Ctrl+S') skillsWindow:destroy() skillsButton:destroy() end function changeImg() local player = g_game.getLocalPlayer() if not player then return end g_game.talk("#getSto# 86228") end function getParams(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#getSto#") then local icon = skillsWindow:recursiveGetChildById("clanicon") if icon then local t = string.explode(text, " ") icon:setImageSource(imgs[tonumber(t[2])]) end end end end function expForLevel(level) return math.floor((50*level*level*level)/3 - 100*level*level + (850*level)/3 - 200) end function expToAdvance(currentLevel, currentExp) return expForLevel(currentLevel+1) - currentExp end function resetSkillColor(id) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') widget:setColor('#bbbbbb') end function setSkillBase(id, value, baseValue) if baseValue <= 0 or value < 0 then return end local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') if value > baseValue then widget:setColor('#008b00') -- green skill:setTooltip(baseValue .. ' +' .. (value - baseValue)) elseif value < baseValue then widget:setColor('#b22222') -- red skill:setTooltip(baseValue .. ' ' .. (value - baseValue)) else widget:setColor('#bbbbbb') -- default skill:removeTooltip() end end function setSkillValue(id, value) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') widget:setText(value) end function setSkillColor(id, value) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') widget:setColor(value) end function setSkillTooltip(id, value) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('value') widget:setTooltip(value) end function setSkillPercent(id, percent, tooltip) local skill = skillsWindow:recursiveGetChildById(id) local widget = skill:getChildById('percent') widget:setPercent(math.floor(percent)) if tooltip then widget:setTooltip(tooltip) end end function checkAlert(id, value, maxValue, threshold, greaterThan) if greaterThan == nil then greaterThan = false end local alert = false -- maxValue can be set to false to check value and threshold -- used for regeneration checking if type(maxValue) == 'boolean' then if maxValue then return end if greaterThan then if value > threshold then alert = true end else if value < threshold then alert = true end end elseif type(maxValue) == 'number' then if maxValue < 0 then return end local percent = math.floor((value / maxValue) * 100) if greaterThan then if percent > threshold then alert = true end else if percent < threshold then alert = true end end end if alert then setSkillColor(id, '#b22222') -- red else resetSkillColor(id) end end function update() local offlineTraining = skillsWindow:recursiveGetChildById('offlineTraining') if not g_game.getFeature(GameOfflineTrainingTime) then offlineTraining:hide() else offlineTraining:show() end local regenerationTime = skillsWindow:recursiveGetChildById('regenerationTime') if not g_game.getFeature(GamePlayerRegenerationTime) then regenerationTime:hide() else regenerationTime:show() end end function refresh() local player = g_game.getLocalPlayer() if not player then return end if expSpeedEvent then expSpeedEvent:cancel() end expSpeedEvent = cycleEvent(checkExpSpeed, 30*1000) onExperienceChange(player, player:getExperience()) onLevelChange(player, player:getLevel(), player:getLevelPercent()) onHealthChange(player, player:getHealth(), player:getMaxHealth()) onManaChange(player, player:getMana(), player:getMaxMana()) onSoulChange(player, player:getSoul()) onFreeCapacityChange(player, player:getFreeCapacity()) onStaminaChange(player, player:getStamina()) onMagicLevelChange(player, player:getMagicLevel(), player:getMagicLevelPercent()) onOfflineTrainingChange(player, player:getOfflineTrainingTime()) onRegenerationChange(player, player:getRegenerationTime()) onSpeedChange(player, player:getSpeed()) for i=0,6 do onSkillChange(player, i, player:getSkillLevel(i), player:getSkillLevelPercent(i)) onBaseSkillChange(player, i, player:getSkillBaseLevel(i)) end update() local contentsPanel = skillsWindow:getChildById('contentsPanel') skillsWindow:setContentMinimumHeight(110) skillsWindow:setContentMaximumHeight(210) end function offline() if expSpeedEvent then expSpeedEvent:cancel() expSpeedEvent = nil end end function toggle() if skillsButton:isOn() then skillsWindow:close() skillsButton:setOn(false) else skillsWindow:open() skillsButton:setOn(true) skillsButton:setOpacity(1.0) end end function checkExpSpeed() local player = g_game.getLocalPlayer() if not player then return end local currentExp = player:getExperience() local currentTime = g_clock.seconds() if player.lastExps ~= nil then player.expSpeed = (currentExp - player.lastExps[1][1])/(currentTime - player.lastExps[1][2]) onLevelChange(player, player:getLevel(), player:getLevelPercent()) else player.lastExps = {} end table.insert(player.lastExps, {currentExp, currentTime}) if #player.lastExps > 30 then table.remove(player.lastExps, 1) end end function onMiniWindowClose() skillsButton:setOn(false) skillsButton:setOpacity(0.5) end function onSkillButtonClick(button) local percentBar = button:getChildById('percent') if percentBar then percentBar:setVisible(not percentBar:isVisible()) if percentBar:isVisible() then button:setHeight(21) else button:setHeight(21 - 6) end end end function onExperienceChange(localPlayer, value) setSkillValue('level', value) end function onLevelChange(localPlayer, value, percent) setSkillValue('experience', localPlayer:getName()) setSkillValue('experiencee', value) local text = tr('You have %s percent to go', 100 - percent) .. '\n' .. tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience())) if localPlayer.expSpeed ~= nil then local expPerHour = math.floor(localPlayer.expSpeed * 3600) if expPerHour > 0 then local nextLevelExp = expForLevel(localPlayer:getLevel()+1) local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60) hoursLeft = math.floor(hoursLeft) text = text .. '\n' .. tr('%d of experience per hour', expPerHour) text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft) end end setSkillPercent('level', percent, text) end function onHealthChange(localPlayer, health, maxHealth) setSkillValue('health', health) checkAlert('health', health, maxHealth, 30) end function onManaChange(localPlayer, mana, maxMana) setSkillValue('mana', mana) checkAlert('mana', mana, maxMana, 30) end function onSoulChange(localPlayer, soul) setSkillValue('soul', soul) end function onFreeCapacityChange(localPlayer, freeCapacity) setSkillValue('capacity', freeCapacity) checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20) end function onTotalCapacityChange(localPlayer, totalCapacity) checkAlert('capacity', localPlayer:getFreeCapacity(), totalCapacity, 20) end function onStaminaChange(localPlayer, stamina) local hours = math.floor(stamina / 60) local minutes = stamina % 60 if minutes < 10 then minutes = '0' .. minutes end setSkillValue('stamina', hours .. ":" .. minutes) end function onOfflineTrainingChange(localPlayer, offlineTrainingTime) if not g_game.getFeature(GameOfflineTrainingTime) then return end local hours = math.floor(offlineTrainingTime / 60) local minutes = offlineTrainingTime % 60 if minutes < 10 then minutes = '0' .. minutes end local percent = 100 * offlineTrainingTime / (12 * 60) -- max is 12 hours setSkillValue('offlineTraining', hours .. ":" .. minutes) setSkillPercent('offlineTraining', percent, tr('You have %s percent', percent)) end function onRegenerationChange(localPlayer, regenerationTime) if not g_game.getFeature(GamePlayerRegenerationTime) or regenerationTime < 0 then return end local minutes = math.floor(regenerationTime / 60) local seconds = regenerationTime % 60 if seconds < 10 then seconds = '0' .. seconds end setSkillValue('regenerationTime', minutes .. ":" .. seconds) checkAlert('regenerationTime', regenerationTime, false, 300) end function onSpeedChange(localPlayer, speed) setSkillValue('speed', speed) onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed()) end function onBaseSpeedChange(localPlayer, baseSpeed) setSkillBase('speed', localPlayer:getSpeed(), baseSpeed) end function onMagicLevelChange(localPlayer, magiclevel, percent) setSkillValue('magiclevel', magiclevel) setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent)) onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel()) end function onBaseMagicLevelChange(localPlayer, baseMagicLevel) setSkillBase('magiclevel', localPlayer:getMagicLevel(), baseMagicLevel) end function onSkillChange(localPlayer, id, level, percent) setSkillValue('skillId' .. id, level) setSkillPercent('skillId2', percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('skillId3', percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('skillId4', percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('skillId5', percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('skillId6', percent, tr('You have %s percent to go', 100 - percent)) onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id)) end function onBaseSkillChange(localPlayer, id, baseLevel) setSkillBase('skillId'..id, localPlayer:getSkillLevel(id), baseLevel) end --------------------------------------------------------------Client----------------------------------------------- --------------------------------------------------------------Serve-------------------------------------------- 1- data>talkactions> e crie um arquivo chamado. talkClan.lua e add isso nele. function onSay(cid, words, param) if not tonumber(param) then return true end doPlayerSendCancel(cid, "#getSto# ".. getPlayerStorageValue(cid, tonumber(param))) return true end 2- agora vai em talkactions.xml e add essa tag. <talkaction words="#getSto#" event="script" value="talkClan.lua"/> pronto agora é so testa, somente para PDA, pois so testei la... agora vamos la esse script peguei do client do "pokemon world" e a talk quem fez foi eu. Gosto da +rep1 ponto
-
8460 ao 8471 Essas bordas vão dar problemas in game (ficaram em cima do character) Usem as 8053,8054,8055,8056,8057,8117,8118,8119,8120,8366,8367,8369 Mesmo assim ta bacana o tutorial (Sem rep no momento :[)1 ponto
-
Tem um tempinho já que eu não to mappeando, mas ontem eu vi uma imagem de um mapa do neon que me deu vontade de mappear, então ai vai algumas imgs de um remake de thais que eu comecei a fazer ontem. Não botei gravel e pedrinhas nessas duas eu queria ver como ficaria. Essa ultima tem um pedacinho de um mapa do Neon (ele posto pra download o mapa) essa é a versão dele.1 ponto
-
[Show Off] Meu primeiro mapa
NinjaObscurity reagiu a FalconObscurity por um tópico no fórum
Vlw por avisar, vou seguir as dicas ^^1 ponto -
[CTF] Capture The Flag 2.0(Automático)
Killua reagiu a MaXwEllDeN por um tópico no fórum
Bug no utana vid corrigido. Tópico atualizado - 15/08/20131 ponto -
[Arquivado]Ideias Sobre A Seção De Websites!
VictorWEBMaster reagiu a Piabeta Kun por um tópico no fórum
Olá eu sou PiabetaMan01 colaborador desta seção e estarei criando esse topico para postagens de ideias sobre melhorias de nossa seção websites. O intuito desse topico e discutirmos sobre as possiveis mudanças e melhorias da seção,.então se você tem uma ideia e quer ser ouvido, basta postar sua ideia abaixo que veremos as ideias de todos e se for cabivel estarei passando para a coordenação e para a direção! Regras do topico: Não será permitido nada sobre outra seção! Não será permitido brigas e xingamentos podendo levar -Rep e até alerta! Todas as ideias serão lidas e discutidas por todos que quizerem cooperar, então tenha paciêcia pois todos seram repondidos e não repitam a mesma ideia já postada! Floods e double posts não seram permitidos! E atitudes destrutivas não seram toleradas! Aguardo a opinião de todos!1 ponto -
Pasta Enciclopedia com todos os links de outros tutoriais ! http://www.xtibia.com/forum/Pasta-Data-Enc...r-E-t99746.html Parte IV – Raids Bem agora depois dos monstros, vamos entender as raids ou invasões que são muito uteis para um bom RPG. Eu acho elas perfeitas para enfiar aquele boss no otserver. COmeçando editando ele pelo raids.xml <raid name="Demon" file="demon.xml" interval2="3500" chance ="30" margin="3000" enabled="1"/> Onde : Name : Nome da invasão, usado para o /raid file : O arquivo que você configura os monstros e aviso. interval2 : O tempo em minutos que levara para tentar executar a raid chance : A porcentagem de chance que tem para raid ser executada a cada interval2 margin Tempo em minutos que ela executará a partir da abertura do otserver. enabled : Se ela está ativa ou não. Essa parte é bem simples Agora vamos a parte da raids Você terá que criar um arquivo xml, como essas caracteristicas <raid> <announce delay="1000" type="event" message="Something walk near Edron"/> <announce delay="000" type="event" message="Some Demons want enter in Edron"/> <announce delay="55000" type="event" message="The Orshaball emerging from hell."/> <singlespawn delay="30000" name="Demon" x="1594" y="947" z="7"/> <singlespawn delay="13000" name="Demon" x="1594" y="947" z="7"/> <singlespawn delay="13000" name="Demon" x="1594" y="947" z="7"/> <singlespawn delay="13000" name="Orshaball" x="1594" y="947" z="7"/> <areaspawn delay="3000" centerx="1592" centery="928" centerz="7" radius="5"> <monster name="fire Elemental" minamount="1" maxamount="5"/> </areaspawn> <areaspawn delay="12000" fromx="1593" fromy="929" fromz="7" tox="1610" toy="940" toz="7"> <monster name="fire Elemental" amount="15"/> </areaspawn> </raid> Ai tem o arquivo demon.xml no caso ele foi meio que inventado pois eu não uso todas essas opções. vamos explicar cada um. announce delay O tempo em milessegundos que demorará para a aparecer a mensagem. type Esse tipo tem varios tipos.(warning,event,default,description,smallstatus,blueconsole,redconsole) o tradicional do tibia é o event. message A mensagem que aparecerá. Essa são as mensagens. Agora a parte de respawn, tem esses 3 tipos no singlespawn apenas um monstro será sumonado, nos outros dois casos você escolhe uma area, que dentro dela Poderá ser sumonados os monstros e a quantidade fixa ou quantidade sorteada. singlespawn delay e areaspawn delay O tempo a partir da execução da raid, que os monstros serão sumonados. monster name O nome do monstro que será sumonado. ammount A quantidade fixa de monstro que será sumonada na area. minammount e maxammount A quantidade minima e maxima de monstros que poderão ser sumonados na area. No caso das coordenadas, o center seria o centro do lugar. O radius é o raio (explicado no tuto de monstros), se você sabe o que é raio em matematica entenderá facilmente. No caso do from e to, já é uma area quadrada que os monstros estarão. Um unico problema é que se nessa area tiver uma região de aguá o otserver poderá dar debug,tente evitar isso. Bem o tuto ja foi explicado Agora vamos as dicas Dicas Bem para uma raid boa, e não apenas amontoamento de monstros, deverá ter um RPG e uma serie de "taticas". COmo você sabe o tempo é contado a partir do iniciamento da raid. Então o legal é em 1000 dar uma mensagem de aviso, A uns 1 min sumonar outros monstros, isso para dar tempo de jogadores que estão longe em hunts poderem chegar a essa raid. Depois dependendo da invasão aos 5 mins mandar uma outra mensagem e sumonar bastante monstros, e ai vai dando um tempo para eles matarem e sempre dando pequenos respawns. Depois cerca de uns 15 mins de raid sumonar o boss, ou algo do tipo. No caso se for um boss em lugar isolado sumona-lo aos 3 mins. Pois quando o time chegar ele ja estará lá. Evitar fazer raids que o sistema coloque ele, pois não tem a chanche ou seja sempre naquele tempo ele colocará a raid. Ou seja, faça os GM executarem elas, para ficar mais legal. Outra coisa é evitar certos monstros em raids. Como warlocks e outros, pois eles fogem e são horriveis de se matar. Espero que esse pequeno Tutorial tenha ajudado vocês a entenderem melhor as raids dos otserver. Esperem os proximos tutoriais que virão. E comentem o que acharam!!!1 ponto
-
Ai meu caro amigo... <instant name="undefined" words="undefined" lvl="250" mana="200" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="arquivo.lua"> <vocation id="1"/> -- Vocation que vai usar Instant Name = É o que vai aparecer quando sair a magias Words = É Oque o player fala para soltar a magia lvl = é o level que o player tem que ter pra poder usar a magia... mana = o quanto ele vai gastar de mana quando usar... value = Value é onde vc vai colocar no script... NA Pasta spell/script ai vc coloca lá o nome que ta no spell vc coloca ali antes do .lua ou se tiver dentro de outra pasta vc coloca NOME DA PASTA / NOME DO SCRIPT. Se AJUDEI REP+1 ponto
-
Bom depois de mais de 6 meses sem atualizar O Subwat Server,venho trazer-lhes o Subwat V21 Na versão 9.44 Com muitas coisas Novas!! Base Do Server:Crystal Server. Informaçoes: Map Size:28MB Monstros:quase todos os monstros do server são próprios ou editados! Spells:Spells globais 9.44+ Spells suBWat v20. Items:Os items eu tive que mudar Pois o meu item.otbm que eu uso no subwat era diferente dos demais servers armas Subwat no Npc Subwat Seller. Mount System:Digite !mount Nome da montaria com 1 Mount doll e você ganha a montaria! Addon System:Todos os addons novos compraveis com addon doll! Comandos:!buyvip compra VIP normal e !buypremium compra a segunda VIP e habilita o uso de montaria e outras vantagens premium. Comandos:!buyvida e !buymana ja normais do SUBWAT. removido:compra de skills,vários bugs do map. Para Adicionar o comando !bp vá em spells e em baixo de alguma spell coloque está tag <conjure name="Conjure backpack" words="!bp" lvl="3" mana="5" soul="3" conjureId="10522" conjureCount="1" exhaustion="100" needlearn="0" function="conjureItem"> </conjure> SENHA DO GOD:riot/123456 IMAGENS: http://imageshack.us...wattemplo1.jpg/ http://imageshack.us...wattemplo1.jpg/ http://imageshack.us...wattemplo1.jpg/ DOWNLOAD: http://www.sendspace.com/file/3xa1uo Scan: https://www.virustot...additional-info Créditos: Subwat Tryller Se você gostar recomende =D tópico Atualizado 04/03/2012 as 15:49 fiz um pequeno updatezinho agora msm corrigi um bugzinho quem baixou antes das 15:50 baixe novamente. =D1 ponto