Líderes
-
degloriocg
MembroPontos14Total de itens -
-
xWhiteWolf
HéroiPontos3605Total de itens -
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 07/06/15 em todas áreas
-
Liberando espaço de sprites no old client
Liberando espaço de sprites no old client
miguelshtaek1 e um outro reagiu a GabrielSapient por uma resposta no tópico
2 pontosConsegui liberar mais de 15 mil sprites usando essa ferramenta no Object Builder. 1. Baixe o Object Builder na seção: GitHub Latest commits compiled Latest commits Lembrando que necessário o Adobe Air para rodar qualquer versão do Object Builder. 2. Siga: 2.1: Abra suas sprites por ele; OBS: Faça um backup de suas sprites antes, este programa ainda está em beta, mas comigo foi certinho. 2.2: Tools> Sprites Optimizer: 2.3: Deixe desse jeito para melhor resultado, e clique em Start: 2.4: Veja o resultado: 3. Créditos: Eu - pelo tutorial; Nailson - Por ser o criador do object builder, e contribuições de: https://github.com/Mignari/ObjectBuilder/graphs/contributors.2 pontos -
Helpdesk Gesior 2012 TFS 1.0 Tem?
Helpdesk Gesior 2012 TFS 1.0 Tem?
VitorNM e um outro reagiu a degloriocg por uma resposta no tópico
2 pontosHu3member, amigo você pelo menos testou? Esse ai é para o Gesior TFS 1.0 (https://github.com/gesior/Gesior2012/tree/TFS-1.0) Eu estou usando ele, o problema de alguns membros do fórum é que vocês querem tudo na mão e não se dão o trabalho nem de testar. Teste e tire suas próprias conclusões antes de postar que é o mesmo.2 pontos -
[Download] Mantine, Mew, Mewtwo e Tauros [PxG]
[Download] Mantine, Mew, Mewtwo e Tauros [PxG]
rydeofsky e um outro reagiu a MikaelsonTO por uma resposta no tópico
2 pontosBoa noite galera do TibiaKing, beleza? Mais uma vez vim disponibilizar algumas sprites do PxG, dessa vez são as que diz no título o tópico. Façam bom uso! | | | | | (As imagens acima são apenas uma amostra) Download: Mediafire Scan: Clique aqui2 pontos -
[8.54] Servidor + Client Naruto B&W [EXCLUSIVO]
OLÁ USUARIOS DO TIBIA KING .. HOJE ESTAREI TRAZENDO UMA NOVIDADE .. O SERVIDOR DE NTO EXCLUSIVO DO NTO BLACK & WHITE(AKELE OT NOVO QUE FOI CRIADO A 1 MES POR E MIN E POR O [ADM] Johnatan). VALE LEMBRAR QUE O NTO BLACK WHITE FOI UM DOS SERVIDORES DE NARUTIBIA QUE MAIS CRESCEU NOS ULTIMOS TEMPOS .. EM APENAS 1 SEMANA DE NTO JÁ ATINGIMOS A META DE 70 ~ 80 USUARIOS ONLINE FIXOS DIARIOS, E ESSE É O SERVIDOR MAIS RECENTE DO NTO BLACK WHITE BASEADO NO DO SERVIDOR MADARA RINNEGAN EDITADO POR MIN E POR O JOHNATA. ANTES DE MAIS NADA GOSTARIA DE EXPLICAR O MOTIVO DE TAR POSTANDO O SERVER .. BEM O JOHNATAN ERA QUEM FAZIA PRATICAMENTE TUDO NAS ATUALIZAÇÕES E TAALS .. POREM ELE PAROU COM NTO AI TIVE QUE DESMONTAR O NTO B&W PORQUE EU NÃO TINHA CONDIÇÕES PRA DAR CONTA DO NTO SOZINHO. CHEGA DE BLABLA E VAMOS LÁ!! [+] NOVIDADES & CARACTERISTICAS [+] ERROS E BUGS [+] PRINTS DO SERVER [+] DOWNLOAD [+] CREDITOS [+] NOVIDADES & CARACTERISTICAS [+] ERROS E BUGS [+] PRINTS DO SERVER [+] Downloads Servidor Naruto B&W: Clique Aqui Client(descompilado): Clique Aqui [+] Creditos - Madara Rinnegan (servidor base) - [ADM] Johnata Editar Praticamente Todo o Servidor - Eu Por umas Besteiras q eu Coloquei e Por Postar GOSTOU DO SERVIDOR? DA UM REP++1 ponto
-
[Sistema] Battlefield Event! V.1
1 pontoMapa BattleField 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 > Script Data > GlobalEvents > Scripts Data > Movements > Script Configurações do evento1 ponto
-
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
anderson de souza reagiu a Qwizer por uma resposta no tópico
1 pontoGlobal 11/12x [v32] - New Falcons - New Asuras - Warzone 4,5,6 - Exercise Training - Raids 100% - Monstros 100% - Trainer Offline 100% - Trainer Online 100% - Taming system funcionando 100%; - Database completa - War System 100% - Global MAP Full - Store 100% - Imbuement - Prey System - Entre outros sistemas. Projeto no: GITHUB Scan Vírus Total IMAGES Créditos:1 ponto -
Voodoo
Voodoo
kirabig reagiu a xWhiteWolf por uma resposta no tópico
1 pontoAeeeeeee carai, hoje vim trazer pra vocês meu mais novo sistema *-*. É uma fodenda spell que você seleciona alguém pra ser seu voodoo e a partir disso durante um tempo X ela vai receber todos os hit's que você deveria receber... INCRÍVEL, NÃO? Agora se nesse meio tempo ela deslogar ou entrar em pz você vai tomar o dano normal, mas se ainda tiver nesse tempo X e ela sair ela vai receber o dano instantaneamente (É BOM DEMAIS PRA SER VERDADE). Agora você deve estar imaginando, e se eu usar a magia pra transferir o dano pra um amigo e ele fizer a mesma coisa em mim, pra onde vai o dano? PRA LUGAR NENHUM!!!! Até porque eu já me previni contra esse bug fazendo com que não seja possível fazer alguém de voodoo se ele já tiver alguém de voodoo. Testado em versão 8.54 TFS Crying Damnson mas deve funcionar em todas as versões que tenham a função onStatsChange no creaturescripts. Bom, o script tá 100% funcional e livre de bugs (se vc achar algum eu te dou 3 REP). Agora vamos à mágica: Crie um arquivo em mods com extensão .xml e adiciona isso daqui nele <?xml version="1.0" encoding="UTF-8"?> <mod name="Voodoo System" version="1.0" author="Night Wolf" contact="none" enabled="yes"> ------------------------------------------------------------------------------------ <config name="feitisso"><![CDATA[ configuration = { storage = 24567, tempo = 20, cooldown = 45, effect1 = 13, effect2 = 65 } storagecool = 24568 ]]></config> ---------------------------------------------------------------------------------- <event type="login" name="registerVoodoo" event="script"><![CDATA[ function onLogin(cid) domodlib('feitisso') if getPlayerStorageValue(cid, configuration.storage) > 0 then doPlayerSendTextMessage(cid, 22, "Your victim is not receiving your hits anymore.") doPlayerSetStorageValue(cid, configuration.storage, 0) end registerCreatureEvent(cid,"voodoo") return true end ]]></event> ------------------------------------------------------------------------------------ <instant name="Feitiço" words="voodoo" lvl="50" mana="10" prem="1" range="3" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> <![CDATA[ function onCastSpell(cid, var) domodlib('feitisso') if not (isPlayer(variantToNumber(var))) then doPlayerSendCancel(cid, "You can only use this spell in players.") return false end if getPlayerStorageValue(variantToNumber(var), configuration.storage) > 0 then doPlayerSendCancel(cid, "You can't make a voodoo of someone who already has a voodoo.") return false end if (os.time() - getPlayerStorageValue(cid, storagecool)) >= configuration.cooldown then if getPlayerStorageValue(cid, configuration.storage) <= 0 then timeleft = (os.time() + configuration.cooldown) doPlayerSetStorageValue(cid, storagecool, timeleft) local target = getPlayerGUID(variantToNumber(var)) doPlayerSetStorageValue(cid, configuration.storage, target) doSendMagicEffect(getPlayerPosition(cid), configuration.effect1) doSendMagicEffect(getThingPos(variantToNumber(var)), configuration.effect1) addEvent(function() if isCreature(cid) then doSendMagicEffect(getPlayerPosition(cid), configuration.effect2) doPlayerSendTextMessage(cid, 22, "Your victim is not receiving your hits anymore.") doPlayerSetStorageValue(cid, configuration.storage, 0) end end, 100+1000*configuration.tempo) elseif getPlayerStorageValue (cid, configuration.storage) > 0 then doPlayerSendCancel(cid, "You've already set a target.") end else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(configuration.cooldown - (os.time() - getPlayerStorageValue(cid, storagecool))).." seconds.") end return true end ]]></instant> ------------------------------------------------------------------------------------ <event type="statschange" name="voodoo" event="script"><![CDATA[ function onStatsChange(cid, attacker, type, combat, value) domodlib('feitisso') if isPlayer(cid) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and getPlayerStorageValue(cid, configuration.storage) >= 1 then local name = getPlayerNameByGUID(getPlayerStorageValue(cid, configuration.storage)) local victim = getCreatureByName(name) if isCreature(victim) and not (getTilePzInfo(getPlayerPosition(victim))) then dano = math.ceil(value) doSendMagicEffect(getPlayerPosition(cid), configuration.effect2) if attacker == victim then doTargetCombatHealth(cid, victim, combat, -dano, -dano, configuration.effect2) else doTargetCombatHealth(attacker, victim, combat, -dano, -dano, configuration.effect2) end return false end end return true end ]]></event> ------------------------------------------------------------------------------------ </mod> aqui você edita os storages da magia e do cooldown, além do tempo que ela dura, o tempo de cooldown (um uso e outro) e os efeitos que vão sair. ------------------------------------------------------------------------------------------------------------- aqui você edita o nome da spell, as palavras pra ela sair, level, custo de mana, se é preciso ser premium pra usar, o range dela, e as vocações que podem usá-la. OBS: se vc quiser que essa spell seja ganha em uma quest (por se tratar de algo bastante apelativo), é só colocar needlearn = "1" e fazer uma quest pra ganhar a spell (tem no meu Darkness Pact Quest uma quest de ganhar Spell, é só ir lá no meu perfil e procurar o tópico). Essa spell não serve somente pra ATS, use a criatividade pra criar uma história e fazer ela se encaixar... foque nos elementos de RPG e tcharam, está feito!. Façam bom uso e espero que não saiam postando em outros lugares sem os devidos créditos. Abraços do lobinho pra vcs PS: a foto ficou meio bosta mas vou postar mesmo assim Eu (sorc) ataquei a zuera e tomei o dano de volta e ainda saiu esse efeitinho bonito. Espero que tenham gostado e usem essa spell como base pra fazer outras coisas maravilhosas pra esse fórum E não esqueça de clicar em "gostei" caso tenha curtido a idéia. Ahhh, e antes que eu me esqueça dos agradecimentos: @ViitinG por me ajudar a testar @CreatServer por me dar a idéia @MaXwEllDeN por me orientar a trocar a table pelo storage possibilitando que o script fosse possível.1 ponto -
LINK OFF [ORIGINAL] (10.10) New Baiak Yurots V1.0 SQLITE CAST SYSTEM E WAR SYSTEM 100%
LINK OFF [ORIGINAL] (10.10) New Baiak Yurots V1.0 SQLITE CAST SYSTEM E WAR SYSTEM 100%
higorsantos reagiu a Luizbaiak por uma resposta no tópico
1 pontoConfira Novo Servidor Baiak Devilbaiak.ml Olá Galerinha Tibiana! Durante 3 anos o baiak ainda está se atualizando cada vez mais e agora eu venho trazer a nova versao 10.10 não esta 100% mais garanto que vao gostar,entao vamos ver oque há de novo nele ? Essa Nova Versão eu conseguir criar em apenas 2 dias e meio e nao deu tempo de testar mais se houver bugs comentem por favor. Versão x10.1- 1.0 Oque há de novo ? • Todas as mountarias da versao 10.10 • Todos os outfits 10.10 • Todos os items 10.10 • Monsters ainda em andamento. • Templo com cara de 10.10 • City Vip com novo visual 10.10 • War System 100% - Comandos :/war invite,nomedaguildrival outra guild ativar a war /accept war,guildrival cancelar war . /war cancel,guildrival • Cast System 100% - Comandos:!cast list para ver casts abertos,!cast nomedoplayer para entrar, !cast exit para sair do cast que voce está !cast on para voce abrir um cast e !cast off para sair • Novo Npc no templo que vende items 10.10 • Novo npc que vende items vip • Bug das houses retirados • Bug da Sql retirado • Novos Comandos /rank !mount nomedamount !addon nomedoaddon !changesex !buyhouse,!leavehouse,alana res,!sellhouse funcionando 100% e muito mais que nao veio na cabeça mais quando eu lembrar posto. O Servidor está em SQL pronto para por online e os erros do distro nao encomodam o server. • Baiak Yurots V5.2 Oque Mudou ? •Tirei bug das houses •Tirei todos os erro do distro •Arrumei o lado >> da city vip agora mais rox. • Baiak Yurots V5.1 Oque Mudou ? • Mudei a Quest do templo lv 150 ganha 2kk agora ganha só 500k • Melhorei os teleports master lv 300+ agora tem 4 novas quest e 2 hunt + • Mudei respaw de todas as hunts free , vip e master agora ta 5x melhor. • Mudei Tempo da loteria tava 15 em 15 minutos agora ta de 1 em 1 hora. • Melhorei a Exori gran do kina. • Mudei os loot do monster bosses agora igual da versao 10.30 do global • Adicionei quest do addon doll na area d lvel 300+ • Adicionei Quest do 2kk na area d Lvl 300+ • Adicionei Quest do necromancer shield na area de Lv 300+ • Adicionei Quest do Dwarven Set e hornede helmet na area de level 300+ • Adicionei o novo monster Master Medusa Lv 300+ • Adicionei 2 novas hunt de Master Medusa. Se eu lembrar mas alguma coisa eu posto. :S • Baiak Yurots V5.0 Oque Mudou ? • Agora a City Está Maior Mais Bonita e Com Mais Houses. • Novo Sistema de Treiner não prescisa andar muito para axar um livre. • Novos monstros vip ( Sea Serpent Vip , Hellhound vip , night mare vip , fury vip ) novos monstros master ( hydra master , frost master , grim master e demon master). • Nova Quest Master Com Armas Para todas as vocaçao. • Agora o NPC VIP Vende e compra items vip, pois se voce pegar item vip de algum red algo assim voce pode vender mais so que o npc compra 60% mais barato ☺ • Novo Npc que vender Red Remover. • Novo Templo. • Novas Quests. • Novo Depot. • Novos Commandos ( !food Compra 100 , !topfrags Ver quem é o top frag , !glist ver as guild do server e !glist Nameguild para ver os player da guild. • Teleports Free e vip Agora com nova cara. • Novo Caminho Para Poi no mesmo lugar so que mais bonito. • Addon agora é com addon doll npc Varkhal Vende. • Systema de Loteria a cada 2 Horas. • Nova arena de team god que organiza. E muito Mais .. Novos Items. Master vip Quest Teleports Master Templo vip Templo city Teleports Master Teleport Free O Server Está FULL EM SQL Só Baixar e Por Online Abaixo ! DOWNLOAD 4shared SCAN VirusTotal Testado 32bits windows 7. ACC DO GOD god/god Creditos 10% GOD Bon | Por editar em 2008 90% Baiak Lula = Luizbaiak | Por editar2010 a 2014 Obrigado bom jogo! GOSTOU? DE REP+.1 ponto -
[Link Quebrado]Base OtPokémon.com + Client
[Link Quebrado]Base OtPokémon.com + Client
Slain reagiu a Matheus Beraldo por uma resposta no tópico
1 pontoOlá Galera do Tibiaking! Hoje Vim Trazer Para voçes uma base parecida com OtPokémon pois editei muito nessa base em breve teremos v2 com as sprites substituidas base (PDA). Vamos Ao Que Importa Alguns Dos Nossos Sistemas Abaixo Agora vamos ao que interessa informaçoes do servidor começando com os Sistemas. Sistemas Moves System: 80% Caught System: 50% Go-Back System: 50% Portrait System: 50% Evolution System: 100% Ginasios 90% (Tentar Adicionar mais na V2) Changelog do servidor: • A Opçao Pokebag Do Client Esta Com o Sistema do Cassino Retire que Sera Aberto Normalmente Versao 1.0 • Adicionei Shiny Clefable - Shiny Wigglytuff - Shiny Tangrowth e Shiny Roserade • • Arrumei Os Attakes Dos Pokemons pareçidos com o OtPokémon (V2 Serao Todos) • • Adicionado Boost System Beta ( Esta Apenas Aumentar 300 De Hp, V2 Sera Arrumado ) • • Todos Os Shinys Alterados para Poderem Usar Level 1 e as Magias Tambem • • o Atake "Healarea" Nao Heala Players Apenas os Pokémons Downloads: Servidor Client (Pode usar este normal) Scan do Servidor Equipe: Apenas eu.1 ponto -
Aumentar limite de efeitos
1 pontoBom, todos acham 255 efeitos muito pouco, né? Então tá aí, pra quem quiser aumentar esse limite pra 65,535. Mas como nem tudo é perfeito, pra fazer isso você precisará estar usando OTClient e também ter as sources do seu servidor. PS: Só testei em 8.54 Vamos ás edições do servidor: No protocolgame.cpp: No protocolgame.h: No game.cpp: No game.h: No player.h: Bom, agora falta editar no const.h: Está quase pronto, agora, falta fazer o client aceitar esses dados, pra isso, em otclient/modules/game_things/things.lua, em baixo de: local version = g_game.getClientVersion()Adicine: g_game.enableFeature(GameMagicEffectU16) Pronto, se fizer tudo corretamente, funcionará \o Bom, Lordbaxx disponibilizou a sua source(de poketibia) com o limite extendido: Créditos: Featzen(100%)1 ponto
-
Como usar addEvent
Como usar addEvent
Gogetasaya reagiu a Killua por uma resposta no tópico
1 pontoUsando addEvent O uso do addEvent tem inúmeras utilidades e pode ser complicado para algumas pessoas, inclusive era para mim quando eu estava começando a aprender LUA. Para que serve o addEvent? Para "chamar" uma função após um periodo de tempo, ou seja, executar uma função após um tempo estipulado. O addEvent tem como parâmetros: callback, delay e ... addEvent(callback, delay, ...) Onde callback é a função que será chamada, delay é o tempo (em milissegundos) até que se chame essa função e ... são os parâmetros que a função chamada utiliza. Exemplo: addEvent(doBroadcastMessage, 1000, "Bom dia", 23) Aqui, após 1 segundo (1000 ms), a função doBroadcastMessage(message, type) será executada com os parâmetros message = "Bom dia" e type = 23. O addEvent pode ser usado de duas maneiras: Chamando uma função existente ou criando uma nova função. Para chamar uma função existente, basta usar como acima, para usá-lo para criar uma nova função, usa-se assim, por exemplo: addEvent(function() if isCreature(cid) then doPlayerAddItem(cid, 2160, 10) doPlayerSendTextMessage(cid, 25, "Voce ganhou 10k.") end end, 1000) Assim é basicamente a mesma coisa, mas pude colocar várias funções dentro de um único addEvent e mantive o delay 1000 (1 segundo). Obs: Precisei usar 2 ends, um para fechar function() e outro para fechar o if. Atenção! Além disso, existe uma outra diferença entre as duas formas de uso, vou tentar explicar da melhor maneira possível: Quando usamos o addEvent com uma função já existente (1o exemplo), as informações usadas serão as geradas no momento em que o evento foi chamado, por exemplo: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(doCreateItem, 2000, 1308, 1, getThingPos(cid)) end return true end Se usarmos assim, a pedra será criada na posição onde o jogador se encontrava no momento em que "deu use" e não onde ele estará 2 segundos depois. Se você quiser que a pedra seja criada na nova posição do jogador (pos de 2 segundos depois), você deve fazer uma nova checagem, criando uma função: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(function() if isCreature(cid) then doCreateItem(1308, 1, getThingPos(cid)) end end, 2000) end return true end Atenção novamente: A checagem if isCreature(cid) que utilizei, é muito importante para um addEvent que envolva criaturas. Se você executasse o addEvent sem a checagem e o player logasse ou morresse antes desses 2 segundos se passarem, daria um erro na distro e interromperia o resto do script. Recursão Uma outra ótima funcionalidade dos addEvents é a recursão, ou seja, criar um evento que fica se repetindo. É simplesmente um addEvent chamando a sí mesmo. Para usar, crie uma função, exemplo: function respawnMonster(name, pos) if doCreateMonster(name, pos) then doBroadcastMessage(name.." nasceu!") end addEvent(respawnMonster, 10000, name, pos) end Quando chamada, esta função ficará criando um monstro e uma determinada área a cada 10 segundos, sem nunca parar. Para chamar a função, seria assim: respawnMonster("Demon", {x = 123, y = 123, z = 5}) Considerações Reloads param os addEvents. Se um script talkaction executou um addEvent programado para acontecer depois de 5 minutos e se dentro deste intervalo de tempo, você usar /reload talkactions, o addEvent será interrompido. Erros no código podem fazer o evento ser interrompido, preste sempre atenção. Se ainda ficou com alguma dúvida, poste aqui.1 ponto -
Remere's Map Editor (7.6 à 10.79)
Introdução Versão: 7.6 à 10.79. Utilize o tibia.dat e tibia.spr originais. Você poderá baixar versões do Tibia neste link. items.otb oficiais. ATENÇÃO Para todos aqueles que usam mapas RL, antes de fazer quaisquer alterações ao item.otb e items.xml do RME, é recomendável arrumar seu mapa, porque os mapas disponibilizados em alguns fóruns, dependendo de sua versão, podem trazer futuros problemas por terem sido modificados em outros map editor. Requisitos Microsoft Visual C++ 2010: Windows 32B | Windows 64B Microsoft Visual C++ 2011/12: Windows 32B & 64B Microsoft Visual C++ 2013: Windows 32 & 64B Versão antiga 10.76 do items.otb RME items.otb oficial 10.78/10.79 Download | Scan | Sources Créditos hjnilsson - Sources Kruger Developers - items.otb + actualização ricker75 - Disponibilização Larissa Azhaurn - Tópico e Scan.1 ponto
-
Sistema de Rep+
Sistema de Rep+
RatPoke150 reagiu a principe sharingan por uma resposta no tópico
1 pontoEsse sistema funciona da seguinte forma: !rep nome do player <---------- Da um REP+ para o Player ! !myrep <----------- Consulta a propria reputação ! !rankrep <----------- Confere o Rank de Reputação ! Isso é bom até para saber a quem você poderá dar um cargo no seu server. Bom vamos ao que interessa. Para os player's saberem como funciona este sistema, vá em data/talkaction/script e crie um arquivo !reputacao.lua e cole isso dentro: Agora vá em Talkaction.xml e cole esta tag: Agora vamos ao sistema. Vá em data/talkaction/script e crie um rep.lua e adicione isso dentro: Agora vá em Talkaction.xml e cole esta tag:1 ponto -
Pokemon DreamRed v3.2 [Catch, Pokedex, Stones, Teleport, Fly, Ride, e+]
Sistemas Portrait [100%] Pokedex [100%] Surf [100%] Fly [100%] Ride [100%] Catch [100%] Teleport [100%] Fishing [100%] Bike [100%] Elite Stone [100%] Gerações I [100%] Gerações II [100%] Shiny Stone [100%] Boost Stone [100%] Caught [100%] Moves [100%] Go-Back [100%] E MUITO MAIS! Créditos: Dreamer Screenshot Downloads Server: MediaFire Client: MediaFire DLLs: dll TibiaKing.com.rar Senha: anti sangue-sugas tibiaking.com Scans Server: VirusTotal Client: VirusTotal Dlls: VirusTotal1 ponto
-
Dicer Script Simulator 100% Funcional
Dicer Script Simulator 100% Funcional
Ricardoaguiar15 reagiu a Hyaggoz por uma resposta no tópico
1 pontoPrimeiro post aqui no fórum do TibiaKing. Consegui arrumar um script "bugado" e coloquei ele para funcionar. Algumas coisas precisam ser arrumada, coisas básicas tipo as mensagem de spam. O único problema é que eu queria aumentar a velocidade dele, ele faz tudo muito rápido, vira para o player, pega o dinheiro e tira lixo, a única coisa que ele demora pra fazer é SIMULAR o DADO. Quando a pessoa joga o dinheiro, ele pega o dinheiro, demora uns 2/3 segundos e simula o dado. Vou disponibilizar o script pra voces e se alguma alma boa e gentil conseguir arrumar a velocidade da simulaçao do DADO, poste aqui, POR FAVOR. https://mega.co.nz/#!GRMAHbjR!Pp2qeefKyryKjBH9WKJDyvkVq9QTjpV0mP8tzxyVjBQ https://mega.co.nz/#!yBUihLRR!bBKEIDhPsm5ZnZ4wHH_e7yxJ7tclPPhCIM_rjfm7iFM Tutorial básico para quem não sabe utilizar: 1- Baixem esses 2 arquivos e coloquem-os na pasta SCRIPTS: documentos>xenobot>scripts 2- Ao entrar no char, segure CTRL + RIGHT CLICK sobre o character e clique em LOOTER. NÃO MARQUE, apenas clique! 3- Depois clique em scripter, selecione um de cada vez, nao importa a ordem e dê EXECUTE SCRIPTER 4- Abra o browse field do meio do DEPOT e depois o browse field do DEPOT 5- Vá na aba LOOTER e veja o ID do BROWSE FIELD e do DEPOT. Exemplo: BACKPACK 8 - NO PARENT. 8 será o ID. 6- Digite no char [bOT_LOG] /counter "ID DO BROWSE" e depois /depot "ID DO DEPOT". /START para iniciar o script. OBS: *So utilizo em OTSERV. *As BPS devem estar dentro do depot chest. *Para vêr quais BPS e itens que já estão configurados, só abrir o arquivo como bloco de nota.1 ponto -
(Resolvido)erro login.lua
(Resolvido)erro login.lua
KillerWatts reagiu a Movie por uma resposta no tópico
1 pontoAdicionei isso: No final de tudo1 ponto -
(Resolvido)remover item
(Resolvido)remover item
PepeHanc reagiu a psychonaut por uma resposta no tópico
1 pontoAh, tem que por depois do end, muda doSummonCreature("Prince Drazzak", {x = 33523, y = 32334, z = 12}) end Pra: end doSummonCreature("Prince Drazzak", {x = 33523, y = 32334, z = 12})1 ponto -
(Resolvido)TFS 1.2 teletransportar ao acabar premium
(Resolvido)TFS 1.2 teletransportar ao acabar premium
TioJapa reagiu a psychonaut por uma resposta no tópico
1 pontoVai na creaturescripts/scripts sempremium.lua function onLogin(player, cid) if getPlayerPremiumDays(cid) == 0 then doTeleportThing(cid, getPlayerMasterPos(cid), false) doPlayerSendTextMessage(cid,MESSAGE_FIRST,'Sua premium acabou, voce foi pro templo') doSendMagicEffect(getCreaturePosition(cid),CONST_ME_TELEPORT) end return true end creaturescripts/others/login.lua: 'Sempremium' No localevents. Ai no creaturescripts.xml: <event type="login" name="Sempremium" script="sempremium.lua" /> Qualquer coisa me avisa que arrumo. Não deu pra testar porque no meu servidor PA é grátis, então não cai no templo.1 ponto -
(Resolvido)Resolvido-Script de troca de nome TFS 0.4 >TFS 1.0
(Resolvido)Resolvido-Script de troca de nome TFS 0.4 >TFS 1.0
acesso123 reagiu a psychonaut por uma resposta no tópico
1 pontoDeu um trabalho do cão arrumar o banco de dados, mas enfim: local seconds = 4 -- tempo pra ler a msg de mudanca de nome local maxTextLenght = 15 -- limite de caracteres do nome local blacklistParam = {"account manager", "god", "cm", "gm", "tutor", "tester"} -- nomes proibidos pra usar local minWordLenght = 3 -- min de caracteres local qtd = 1 -- quantidade do item necessario local item = 1984 -- id do item necessario local function changeName(param) local guid = getPlayerGUID(param.pid) doRemoveCreature(param.pid) db.query("UPDATE `players` SET `name` = '"..param.params.."' WHERE `id` = " .. guid .. ";") doRemoveCreature(guid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Jogador com nome: '..param.nome..' Mudou para: '..param.params..'.') return true end function onSay(cid, words, param) dofile("./config.lua") nome = getCreatureName(cid) params = param pid = cid if param ~= "" then local resultx = db.storeQuery("SELECT `name` FROM `players` WHERE `name` = " .. db.escapeString(param)) if not resultx then end local value = result.getDataString(resultx, 'name') result.free(resultx) print("chegou aki a") if (value == param) then print("chegou aki b") doPlayerSendCancel(cid, "Nome ja em uso.") return false end if (getPlayerItemCount(cid, item) < qtd) then doPlayerSendCancel(cid, "Voce nao possui o item.") elseif(not getTilePzInfo(getCreaturePosition(cid))) then doPlayerSendCancel(cid, "Voce precisa estar em pz para usar.") else if(string.len(tostring(params)) >= maxTextLenght) then doPlayerSendCancel(cid, "Ha um limite de " .. maxTextLenght .. "caracteres.") elseif(string.find(params:lower(), "[^%l%s]") ~= nil) then doPlayerSendCancel(cid, "Voce nao pode usar simbolos.") else for blacklist = 1, table.maxn(blacklistParam) do if(string.find(params:lower(), blacklistParam[blacklist]) ~= nil) then doPlayerSendCancel(cid, "Nome proibido.") return false end end local paramTemp, space, oldName = '', '', getCreatureName(cid) for word in string.gmatch(params, "%a+") do if(string.len(word) < minWordLenght) then doPlayerSendCancel(cid, "Cada palavra tem um minimo de " .. minWordLenght .. " caracteres.") return true end paramTemp = "" .. paramTemp .. "" .. space .. "" .. word .. "" if(space == '') then space = " " end end local guid = getPlayerGUID(cid) params = paramTemp if(pcall(doPlayerChangeName, guid, oldName, params) == false) then doPlayerRemoveItem(cid, item, qtd) doPlayerPopupFYI(cid, " Voce mudou o nome para "..params..".\nEntre denovo para aplicar as mudancas.") addEvent(changeName, seconds * 1000, {cid = cid, pid = pid, params = params, nome = nome}) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Mudara o nome para "..params.." em "..seconds.." segundos.") end end end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Use: /changename Novonome') end return true end talkactions.xml: <talkaction words="!changename" separator=" " script="NomedoScript.lua"/>1 ponto -
Necromancer Spawn
1 pontoTamanho: 12 KB. Categoria: Mapa. Versão: 8.60 Créditos: Oldschool'er Anexos: Download | Scan Screenshot;1 ponto
-
Helpdesk Gesior 2012 TFS 1.0 Tem?
Helpdesk Gesior 2012 TFS 1.0 Tem?
Apache reagiu a degloriocg por uma resposta no tópico
1 ponto<?php if($logged) { // type (1 = question; 2 = answer) // status (1 = open; 2 = new message; 3 = closed;) $dark = $config['site']['darkborder']; $light = $config['site']['lightborder']; $priority = array(1 => "Baixa", "Normal", "Alta"); $tags = array(1 => "[Vendas]", "[Suporte]", "[Parceria]", "[Bug]", "[Outros]"); if($group_id_of_acc_logged >= $config['site']['access_admin_panel'] and $_REQUEST['control'] == "true") { if(empty($_REQUEST['id']) and empty($_REQUEST['acc']) or !is_numeric($_REQUEST['acc']) or !is_numeric($_REQUEST['id']) ) $bug[1] = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `type` = 1 order by `uid` desc'); if(!empty($_REQUEST['id']) and is_numeric($_REQUEST['id']) and !empty($_REQUEST['acc']) and is_numeric($_REQUEST['acc'])) $bug[2] = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].' and `type` = 1')->fetch(); if(!empty($_REQUEST['id']) and is_numeric($_REQUEST['id']) and !empty($_REQUEST['acc']) and is_numeric($_REQUEST['acc'])) { if(!empty($_REQUEST['reply'])) $reply=true; $account = new Account; $account->load($_REQUEST['acc']); $account->isLoaded(); $players = $account->getPlayersList(); if(!$reply) { if($bug[2]['status'] == 2) $value = "<font color=gray><b>Aguardando</b> <img src=images/bug/waiting.gif></font>"; elseif($bug[2]['status'] == 4) $value = "<font color=green><b>Respondido</b></font> <img src=images/bug/ok.png>"; elseif($bug[2]['status'] == 3) $value = "<font color=red><b>Fechado</b></font> <img src=images/bug/closed.png>"; elseif($bug[2]['status'] == 1) $value = "<font color=#4169E1><b>Nova Resposta</b></font> <img src=images/bug/new.png>"; $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Atendimento</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td width=40%><img src=images/bug/report.png> <b>Assunto:</b></td><td> '.$tags[$bug[2]['tag']].' '.$bug[2]['subject'].' '.$value.'</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td><img src=images/bug/pri.gif> <b>Prioridade:</b></td><td> <img src=images/bug/'.$bug[2]['priority'].'.png> '.$priority[$bug[2]['priority']].''; $main_content .= '<TR BGCOLOR="'.$dark.'"><td><img src=images/bug/tibia.png> <b>Enviado por:</b></td><td>'; foreach($players as $player) { $main_content .= '<img src=images/bug/t.png> '.$player->getName().'<br>'; } $main_content .= '</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td colspan=2><img src=images/bug/des.gif><b>Descrição:</b></td></tr>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td colspan=2>'.nl2br($bug[2]['text']).'</td></tr>'; $main_content .= '</TABLE>'; $answers = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].' and `type` = 2 order by `reply`'); $ot = $config['site']['worlds']; foreach($answers as $answer) { if($answer['who'] == 1) $who = "<img src=images/bug/staff.gif> <font color=red><b>Staff</b></font>"; else $who = "<img src=images/bug/player.gif> <font color=green><b>Player</b></font>"; $main_content .= '<br><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Resposta #'.$answer['reply'].'</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td width=70%><img src=images/bug/tibia.png><i><b>Enviado por:</b></i></td><td>'.$who.'</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td colspan=2><img src=images/bug/des.gif><i><b>Descrição:</b></i></td></tr>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td colspan=2>'.nl2br($answer['text']).'</td></tr>'; $main_content .= '</TABLE>'; } if($bug[2]['status'] <= 4) $main_content .= '<br><a href="index.php?subtopic=helpdesk&control=true&id='.$_REQUEST['id'].'&acc='.$_REQUEST['acc'].'&reply=true"><b>[Responder]</b></a>'; } else { //if($bug[2]['status'] < 3) //{ $reply = $SQL->query('SELECT MAX(reply) FROM `z_helpdesk` where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].' and `type` = 2')->fetch(); $reply = $reply[0] + 1; $iswho = $SQL->query('SELECT * FROM `z_helpdesk` where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].' and `type` = 2 order by `reply` desc limit 1')->fetch(); if(isset($_POST['finish'])) { if(empty($_POST['text'])) $error[] = "<font color=black><b>Por favor, preencha a descrição.</b></font>"; //if($iswho['who'] == 1) //$error[] = "<font color=black><b>Você precisa aguardar a resposta do usuário.</b></font>"; if(empty($_POST['status'])) $error[] = "<font color=black><b>Status cannot be empty.</b></font>"; if(!empty($error)) { foreach($error as $errors) $main_content .= ''.$errors.'<br>'; } else { $type = 2; $INSERT = $SQL->query('INSERT INTO `z_helpdesk` (`account`,`id`,`text`,`reply`,`type`, `who`) VALUES ('.$SQL->quote($_REQUEST['acc']).','.$SQL->quote($_REQUEST['id']).','.$SQL->quote($_POST['text']).','.$SQL->quote($reply).','.$SQL->quote($type).','.$SQL->quote(1).')'); $UPDATE = $SQL->query('UPDATE `z_helpdesk` SET `status` = '.$_POST['status'].' where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].''); header('Location: index.php?subtopic=helpdesk&control=true&id='.$_REQUEST['id'].'&acc='.$_REQUEST['acc'].''); } } $main_content .= '<br><form method="post" action=""><table><tr><td>Mensagem:</i></td><td><textarea name="text" rows="3" cols="25"></textarea></td></tr><tr><td><br><font color=gray><b>Aguardando</b></font> <img src=images/bug/waiting.gif></td><td><input type=radio name=status value=2></td></tr><tr><td><font color=green><b>Respondido <img src=images/bug/ok.png /></b></font></td><td><input type=radio name=status value=4></td></tr><tr><td><font color=red><b>Fechado <img src=images/bug/closed.png></b></font></td><td><input type=radio name=status value=3></td></tr></table><br><input type="submit" name="finish" value="Submit" class="input2"/></form>'; //} //else //{ //$main_content .= "<br><font color=black><b>You can't add answer to closed bug thread.</b></font>"; //} } $post=true; } if(!$post) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD colspan=2 CLASS=white><B>Atendimento Admin</B></TD></TR>'; $i=1; foreach($bug[1] as $report) { if($report['status'] == 2) $value = "<font color=gray><b>Aguardando</b> <img src=images/bug/waiting.gif></font>"; elseif($report['status'] == 3) $value = "<font color=red><b>Fechado</b></font> <img src=images/bug/closed.png>"; elseif($report['status'] == 4) $value = "<font color=green><b>Respondido </b></font> <img src=images/bug/ok.png>"; elseif($report['status'] == 1) $value = "<font color=#4169E1><b>Nova Resposta</b></font> <img src=images/bug/new.png>"; if(is_int($i / 2)) { $bgcolor = $dark; } else { $bgcolor = $light; } $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><td width=75%><img src=images/bug/'.$report['priority'].'.png> <a href="index.php?subtopic=helpdesk&control=true&id='.$report['id'].'&acc='.$report['account'].'">'.$tags[$report['tag']].' '.$report['subject'].'</a></td><td>'.$value.'</td></tr>'; $showed=true; $i++; } $main_content .= '</TABLE>'; } } else { $acc = $account_logged->getId(); $account_players = $account_logged->getPlayersList(); foreach($account_players as $player) { $allow=true; } if(!empty($_REQUEST['id'])) $id = addslashes(htmlspecialchars(trim($_REQUEST['id']))); if(empty($_REQUEST['id'])) $bug[1] = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$account_logged->getId().' and `type` = 1 order by `id` desc'); if(!empty($_REQUEST['id']) and is_numeric($_REQUEST['id'])) $bug[2] = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$account_logged->getId().' and `id` = '.$id.' and `type` = 1')->fetch(); else $bug[2] = NULL; if(!empty($_REQUEST['id']) and $bug[2] != NULL) { if(!empty($_REQUEST['reply'])) $reply=true; if(!$reply) { if($bug[2]['status'] == 1) $value = "<font color=gray><b>Aguardando</b> <img src=images/bug/waiting.gif></font>"; elseif($bug[2]['status'] == 2) $value = "<font color=#4169E1><b>Nova Resposta</b></font> <img src=images/bug/new.png>"; elseif($bug[2]['status'] == 3) $value = "<font color=red><b>Fechado</b></font> <img src=images/bug/closed.png>"; elseif($bug[2]['status'] == 4) $value = "<font color=green><b>Respondido</b></font> <img src=images/bug/ok.png>"; $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Atendimento</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td width=40%><img src=images/bug/report.png><b> Assunto:</b></td><td> '.$tags[$bug[2]['tag']].' '.$bug[2]['subject'].' '.$value.'</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td><img src=images/bug/pri.gif> <b>Prioridade:</b></td><td> <img src=images/bug/'.$bug[2]['priority'].'.png> '.$priority[$bug[2]['priority']].''; $main_content .= '<TR BGCOLOR="'.$dark.'"><td><img src=images/bug/tibia.png> <b>Enviado por:</b></td><td>'; $main_content .= '<img src=images/bug/t.png> You <br>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td colspan=2><img src=images/bug/des.gif><b>Descrição:</b></td></tr>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td colspan=2>'.nl2br($bug[2]['text']).'</td></tr>'; $main_content .= '</TABLE>'; $answers = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$account_logged->getId().' and `id` = '.$id.' and `type` = 2 order by `reply`'); foreach($answers as $answer) { if($answer['who'] == 1) $who = "<img src=images/bug/staff.gif> <font color=red><b>Staff</b></font>"; else $who = "<img src=images/bug/player.gif> <font color=green><b>YOU</b></font>"; $main_content .= '<br><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Answer #'.$answer['reply'].'</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td width=70%><img src=images/bug/tibia.png><i><b> Enviado por:</b></i></td><td>'.$who.'</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td colspan=2><img src=images/bug/des.gif><i><b>Descrição:</b></i></td></tr>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td colspan=2>'.nl2br($answer['text']).'</td></tr>'; $main_content .= '</TABLE>'; } if($bug[2]['status'] != 3) $main_content .= '<br><a href="index.php?subtopic=helpdesk&id='.$id.'&reply=true"><b>[Responder]</b></a>'; } else { //if($bug[2]['status'] != 3) //{ $reply = $SQL->query('SELECT MAX(reply) FROM `z_helpdesk` where `account` = '.$acc.' and `id` = '.$id.' and `type` = 2')->fetch(); $reply = $reply[0] + 1; $iswho = $SQL->query('SELECT * FROM `z_helpdesk` where `account` = '.$acc.' and `id` = '.$id.' and `type` = 2 order by `reply` desc limit 1')->fetch(); if(isset($_POST['finish'])) { if(empty($_POST['text'])) $error[] = "<font color=black><b>Descrição não pode ser vazia.</b></font>"; if($iswho['who'] == 0) $error[] = "<font color=black><b>Você precisa aguardar a resposta da staff.</b></font>"; if(!$allow) $error[] = "<font color=black><b>Você não possui nenhum char na conta.</b></font>"; if(!empty($error)) { foreach($error as $errors) $main_content .= ''.$errors.'<br>'; } else { $type = 2; $INSERT = $SQL->query('INSERT INTO `z_helpdesk` (`account`,`id`,`text`,`reply`,`type`) VALUES ('.$SQL->quote($acc).','.$SQL->quote($id).','.$SQL->quote($_POST['text']).','.$SQL->quote($reply).','.$SQL->quote($type).')'); $UPDATE = $SQL->query('UPDATE `z_helpdesk` SET `status` = 1 where `account` = '.$acc.' and `id` = '.$id.''); header('Location: index.php?subtopic=helpdesk&id='.$id.''); } } $main_content .= '<br><form method="post" action=""><table><tr><td><i>Description</i></td><td><textarea name="text" rows="15" cols="35"></textarea></td></tr></table><br><input type="submit" name="finish" value="Submit" class="input2"/></form>'; //} //else // //$main_content .= "<br><font color=black><b>You can't add answer to closed bug thread.</b></font>"; //} } $post=true; } elseif(!empty($_REQUEST['id']) and $bug[2] == NULL) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD CLASS=white><B>Atendimento</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td><i>Ticket doesn\'t exist.</i></td></tr>'; $main_content .= '</TABLE>'; $post=true; } if(!$post) { if($_REQUEST['add'] != TRUE) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD colspan=2 CLASS=white><B>Atendimento</B></TD></TR>'; foreach($bug[1] as $report) { if($report['status'] == 1) $value = "<font color=gray><b>Aguardando</b> <img src=images/bug/waiting.gif></font>"; elseif($report['status'] == 2) $value = "<font color=#4169E1><b>Nova Resposta</b></font> <img src=images/bug/new.png>"; elseif($report['status'] == 3) $value = "<font color=red><b>Fechado</b></font> <img src=images/bug/closed.png>"; elseif($report['status'] == 4) $value = "<font color=green><b>Respondido </b></font> <img src=images/bug/ok.png>"; if(is_int($report['id'] / 2)) { $bgcolor = $dark; } else { $bgcolor = $light; } $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><td width=75%><img src=images/bug/'.$report['priority'].'.png> <a href="index.php?subtopic=helpdesk&id='.$report['id'].'">'.$tags[$report['tag']].' '.$report['subject'].'</a></td><td>'.$value.'</td></tr>'; $showed=true; } if(!$showed) { $main_content .= '<TR BGCOLOR="'.$dark.'"><td><i>Nenhum atendimento solicitado.</i></td></tr>'; } $main_content .= '</TABLE>'; $main_content .= '<br><a href="index.php?subtopic=helpdesk&add=true"><b>[Abrir Chamado]</b></a>'; } elseif($_REQUEST['add'] == TRUE) { $thread = $SQL->query('SELECT * FROM `z_helpdesk` where `account` = '.$acc.' and `type` = 1 order by `id` desc')->fetch(); $id_next = $SQL->query('SELECT MAX(id) FROM `z_helpdesk` where `account` = '.$acc.' and `type` = 1')->fetch(); $id_next = $id_next[0] + 1; if(empty($thread)) $thread['status'] = 3; if(isset($_POST['submit'])) { //if($thread['status'] != 3) //$error[] = "<font color=black><b>Can be only 1 open bug thread.</b></font>"; if(empty($_POST['subject'])) $error[] = "<font color=black><b>Assunto cannot be empty.</b></font>"; if(empty($_POST['text'])) $error[] = "<font color=black><b>Description cannot be empty.</b></font>"; if(!$allow) $error[] = "<font color=black><b>You haven't any characters on account.</b></font>"; if(empty($_POST['tags'])) $error[] = "<font color=black><b>Tag cannot be empty.</b></font>"; if(!empty($error)) { foreach($error as $errors) $main_content .= ''.$errors.'<br>'; } else { $type = 1; $status = 1; $INSERT = $SQL->query('INSERT INTO `z_helpdesk` (`account`,`id`,`text`,`type`,`subject`,`status`,`tag`,`priority`) VALUES ('.$SQL->quote($acc).','.$SQL->quote($id_next).','.$SQL->quote($_POST['text']).','.$SQL->quote($type).','.$SQL->quote($_POST['subject']).','.$SQL->quote($status).','.$SQL->quote($_POST['tags']).','.$SQL->quote($_POST['priority']).')'); header('Location: index.php?subtopic=helpdesk&id='.$id_next.''); } } $main_content .= '<br><form method="post" action=""><font size=4><b>Atendimento</b></font><br><br><br><table><tr><td><img src=images/bug/report.png> <b>Assunto:</b></td><td><input type=text name="subject"/></td></tr><tr><td><img src=images/bug/des.gif><b>Descrição:</b></td><td><textarea name="text" rows="4" cols="15"></textarea></td></tr><tr><td><img src=images/bug/tag.png> <b>TAG:</b></td><td><select name="tags"><option value="">SELECT</option>'; for($i = 1; $i <= count($tags); $i++) { $main_content .= '<option value="' . $i . '">' . $tags[$i] . '</option>'; } $main_content .= '</td></tr><tr><td><br><img src=images/bug/pri.gif> <b>Prioridade:</b></td><td><br><select name="priority"><option value="">SELECT</option>'; for($i = 1; $i <= count($priority); $i++) { $main_content .= '<option value="' . $i . '">' . $priority[$i] . '</option>'; } $main_content .= '</select></tr></tr></table><br><input type="submit" name="submit" value="Submit" class="input2"/></form>'; } } } if($group_id_of_acc_logged >= $config['site']['access_admin_panel'] and empty($_REQUEST['control'])) { $main_content .= '<br><br><a href="index.php?subtopic=helpdesk&control=true">[ADMIN PANEL]</a>'; } } else { $main_content .= 'Please enter your account name and your password.<br/><a href="?subtopic=createaccount" >Create an account</a> if you do not have one yet.<br/><br/><form action="?subtopic=helpdesk" method="post" ><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Login</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >Account Name:</span></td><td style="width:100%;" ><input type="password" name="account_login" SIZE="10" maxlength="10" ></td></tr><tr><td class="LabelV" ><span >Password:</span></td><td><input type="password" name="password_login" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table width="100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=lostaccount" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Account lost?" alt="Account lost?" src="'.$layout_name.'/images/buttons/_sbutton_accountlost.gif" ></div></div></td></tr></form></table></td></tr></table>'; } ?> em layout.php, abaixo de: <a href='?subtopic=accountmanagement'> <div id='submenu_accountmanagement' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_accountmanagement' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Account Management</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Você adiciona <a href='index.php?subtopic=helpdesk'> <div id='submenu_helpdesk' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo "$layout_name"; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_helpdesk' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo "$layout_name"; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Atendimento</div> <div class='RightChain' style='background-image:url(<?PHP echo "$layout_name"; ?>/images/general/chain.gif);'></div> </div> </a>1 ponto -
(Resolvido)So x vocaçao pode usa x item
Agr min liguei, vlw rep+ por amigo que ajudou.1 ponto
-
(Resolvido)So x vocaçao pode usa x item
<movevent type="Equip" itemid="2499" slot="head" event="function" value="onEquipItem"> <vocation id="3"/> <vocation id="7" showInDescription="0"/> </movevent> <movevent type="DeEquip" itemid="2499" slot="head" event="function" value="onDeEquipItem"/> mas poderia usa nas Tags, igual a essa que postei.1 ponto
-
(Resolvido)Como aumentar imagens no shop gesior estilo underwar?
Rep+ gostei1 ponto
-
Recentes Trabalhos - Mapping
1 pontoCara eu ia falar disso, só que passei a página... exatamente, tem uma falta de coerência muito grave.1 ponto
-
Minhas Sprites [Sprite Arceus WIP]
Valeu mano! to meio garrado pra fazer a animação dele andando de lado, não sabe alguém que pode ajudar não? ______________________ Mega Scizor que eu to brincando nele1 ponto
-
Rune with crosshair
1 pontoInteressante, se alguém arruma poderia disponibiliza.1 ponto
-
(Resolvido)Spell para ficar intocavel
(Resolvido)Spell para ficar intocavel
Paulo Mikael De Souz reagiu a xWhiteWolf por uma resposta no tópico
1 pontoremove essa linha: doAddCondition(cid, outfit)1 ponto -
[Heal] A partir de x porcentagem do life
Deixa eu ver se eu entendi. Usa uma magia e é Ativado por 30 segundos, se entre esse 30 segundos o life chega a 20% sua vida é healado.1 ponto
-
Raid Automatica
1 pontoEntendi, então eu uso dessa forma no meu servidor, porém é aleatorio, não tem dia/hora. Acho dahora, a pessoa ir checar as invasões que não aparecem em default1 ponto
-
[TFS 1.x] Vip System by Account
[TFS 1.x] Vip System by Account
acesso123 reagiu a Bruno Minervino por uma resposta no tópico
1 pontoEste é o sistema de Vip Account do Mock, convertido ao TFS 1.1 e TFS 1.2, utilizando a nova funcionalidade de concatenação. Vip System: Piso Vip: Talkaction para Add Vip: Créditos: Bruno Minervino Mock1 ponto -
/commands para TFS 1.1
1 pontoBom, eu estou começando a usar o TFS 1.1 e percebi que, ele não contém o comando /commands, que me ajuda bastante, então, resolvi criá-lo, como no TFS 1.1, não é definido "tutor, gm, god" pelo talkactions.xml e sim em todos os arquivos Lua, esse comando vai mostrar tudo para qualquer grupo de acesso: Em talkactions.xml adicione: <talkaction words="/commands" script="commands.lua" /> Em talkactions/scripts crie um arquivo chamado commands.lua e adicione: function onSay(cid, words, param) local p = Player(cid) local file = io.open("data/talkactions/talkactions.xml", "r+") local str = "" local text = "" for line in (file:lines()) do str = str.."\n"..line end file:close() for a in string.gmatch(str, '<talkaction words="(.-)"') do text = text..'\n'..a end p:showTextDialog(2160, text) return true end Agora é só usar Print: ↓↓↓1 ponto
-
(Resolvido)Erro TFS 1.1
1 pontoNunca usei TFS 1.1, mais acho que é a mesma coisa, você precisa salvar como ANSI. Não sei se da pra fazer no bloco de notas, mais você pode utilizar o notepad: 1 - Abra o script com o Notepad++. 2 - Clique em formatar no menu horizontal. 3 - Clique em Codificação em ANSI. 4 - Ele irá bugar os acentos no script, ai é só você arrumar novamente e salvar o script. Notepad: http://notepad-plus-plus.org/1 ponto
-
(Resolvido)[Pedido] quero um script que cria um summon em um local x que eu vou escolher.
(Resolvido)[Pedido] quero um script que cria um summon em um local x que eu vou escolher.
xXxGabriel LopesxXx reagiu a Tibia2015br por uma resposta no tópico
1 pontoSE TE AJUDEI MI AJUDE DANDO UM LIKE aew vou postar um script ok ai com as intruçoes <?xml version="1.0" encoding="UTF-8"?> <monster name="Nome do mostr" nameDescription="a Nome do mostro" race="fire" experience="XP Q ELI VAI DAR" speed="VELOCIDADE" manacost="10000"> <health now="LIFE" max="LIFE"/> AS DUAS LIFES TEM Q SER IGUAL <look type="35" corpse="5995"/> <targetchange interval="5000" chance="8"/> TEMPO DE ATK <strategy attack="90" defense="10"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" skill="100" attack="110"/> <attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/> <attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250"> <attribute key="shootEffect" value="fire"/> <attribute key="areaEffect" value="firearea"/> </attack> <attack name="firefield" interval="2000" chance="12" range="7" radius="1" target="1"> <attribute key="shootEffect" value="fire"/> </attack> <attack name="lifedrain" interval="1000" chance="12" length="8" spread="0" min="-300" max="-467"> <attribute key="areaEffect" value="purpleenergy"/> </attack> <attack name="speed" interval="2000" chance="15" target="1" speedchange="-750" duration="30000"> <attribute key="shootEffect" value="suddendeath"/> </attack> <attack name="energy" interval="3000" chance="10" range="1" target="1" min="-210" max="-300"> <attribute key="areaEffect" value="purpleenergy"/> </attack> </attacks> <defenses armor="55" defense="55"> <defense name="healing" interval="2000" chance="15" min="130" max="240"> <attribute key="areaEffect" value="blueshimmer"/> </defense> <defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000"> <attribute key="areaEffect" value="redshimmer"/> </defense> </defenses> <elements> <element physicalPercent="30"/> <element energyPercent="50"/> <element earthPercent="20"/> <element icePercent="-15"/> <element holyPercent="-15"/> <element deathPercent="20"/> </elements> <immunities> <immunity fire="1"/> <immunity drown="1"/> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <summons maxSummons="1"> <summon name="fire elemental" interval="1000" chance="12"/> </summons> <voices interval="5000" chance="10"> <voice sentence="MUHAHAHAHA!" yell="1"/> <voice sentence="I SMELL FEEEEEAAAR!" yell="1"/> <voice sentence="CHAMEK ATH UTHUL ARAK!" yell="1"/> <voice sentence="Your resistance is futile!"/> <voice sentence="Your soul will be mine!" yell="0"/> </voices> <loot> <item id="2148" countmax="100" chance1="100000" chancemax="0"/> -- gold coins <item id="2148" countmax="100" chance1="100000" chancemax="0"/> -- gold coins <item id="2152" countmax="3" chance1="33333" chancemax="2000"/> --Plat <item id="2514" chance="1900"/> --mastermind shield <item id="2472" chance="200"/> --magic plate armor <item id="2795" countmax="6" chance1="7500"/> --Fire Mushroom <item id="5906" countmax="1" chance="2000"/> -- demon dust <item id="5954" countmax="1" chance="2345"/> -- demon horn <item id="2164" chance="2100"/> --might ring <item id="2176" chance="3500"/> --orb <item id="1982" chance="1300"/> --purpel tome <item id="2165" chance="2300"/> --stealth ring <item id="7591" chance="4500"/> -- GHP <item id="1987" chance="100000"> <inside> <item id="2393" chance="3800"/> --giantsword <item id="2432" chance="3800"/> --fire axe <item id="2112" chance="4100"/> --addon doll <item id="2396" chance="2600"/> --ice rapier <item id="2179" chance="1100"/> --golden ring <item id="2795" countmax="6" chance1="13000"/> --fire mushroom <item id="2678" countmax="3" chance1="10000" chancemax="0"/> --coconut <item id="2148" countmax="100" chance1="100000" chancemax="0"/> -- gold coin <item id="2151" countmax="4" chance1="5500" chancemax="0"/> <item id="2462" chance="3200"/> --devil helmet <item id="2149" countmax="3" chance1="11000" chancemax="0"/> <item id="2171" chance="2200"/> --platinum amulet <item id="2387" chance="32000"/> --double axe <item id="2470" chance="1350"/> --golden legs <item id="7382" chance="300"/> -- Demonrage Sword <item id="7393" chance="1700"/> -- Demon Trophy <item id="2520" chance="3100"/> --demon shield <item id="2418" chance="1500"/> --golden sickle <item id="2377" chance="6666"/> --two-handed sword </inside> </item> </loot> </monster>1 ponto -
[PROJETO] Narutibia. Vale a Pena Ler
[PROJETO] Narutibia. Vale a Pena Ler
bossmaster reagiu a Madarada por uma resposta no tópico
1 pontoEae Laghins então quer dizer que você ta invadindo o meu pc? (brinks). Há um bom tempo estou desenvolvendo um projeto exatamente igual NRL so que melhorado,queria poder reviver as tardes de pvp insanas de NRL quem sabe podemos trabalhar juntos ai vai uma Prévia.] Por enquanto desenvolvi apenas alguns personagens e um pouco do cenário. (imagem removida por motivos de segurança) Assim que possível entre em contato comigo pelo skype: lucas.skypew Até mais.1 ponto -
(Resolvido)(PEDIDO) Pagina De Cast Para O Novo Gesior
Primeiramente acesse data/talkactions/scripts e crie os arquivos abaixo: start_cast.lua: function onSay(cid, words, param) local player = Player(cid) if player:startLiveCast(param) then db.query("UPDATE `players` SET `cast` = 1 WHERE `id` = " .. getPlayerGUID(cid) .. ";") player:sendTextMessage(MESSAGE_INFO_DESCR, "You have started casting your gameplay.") return false else player:sendCancelMessage("You're already casting your gameplay.") return false end end depois stop_cast.lua: function onSay(cid, words, param) local player = Player(cid) if player:stopLiveCast(param) then db.query("UPDATE `players` SET `cast` = 0 WHERE `id` = " .. getPlayerGUID(cid) .. ";") player:sendTextMessage(MESSAGE_INFO_DESCR, "You have stopped casting your gameplay.") return false else player:sendCancelMessage("You're not casting your gameplay.") return false end end Depois add as tags em data/talkactions/talkactions.xml: <talkaction words="!cast" separator=" " script="start_cast.lua"/> <talkaction words="!stopcast" script="stop_cast.lua"/> não esqueça de criar a coluna na database: ALTER TABLE `players` ADD `cast` INT( 11 ) NOT NULL DEFAULT '0' para não dar nenhum problema entre no creaturescripts/scripts/others e crie um arquivo cast.lua e coloque: function onLogout(cid) db.query("UPDATE `players` SET `cast` = 0 WHERE `id` = " .. getPlayerGUID(cid) .. ";") return true end depois em creaturescripts.xml adicione a linha: <event type="logout" name="Cast" script="others/cast.lua"/> e por fim entre em globalevents/scripts abra o arquivo startup.lua e adicione: db.query("UPDATE `players` SET `cast` = 0") abaixo de: db.query("TRUNCATE TABLE `players_online`") e pronto agora e só por a pagina no site código abaixo: <?php if(!defined('INITIALIZED')) exit; $order = $_REQUEST['order']; if($order == 'name') { $orderby = 'name'; } if($order == 'level') { $orderby = 'level'; } if($order == 'vocation') { $orderby = 'vocation'; } if(empty($orderby)) { $orderby = 'name'; } if(count($config['site']['worlds']) > 1) { $worlds .= '<i>Select world:</i> '; foreach($config['site']['worlds'] as $idd => $world_n) { if($idd == (int) $_GET['world']) { $world_id = $idd; $world_name = $world_n; } } } if($idd == (int) $_GET['world']) { $world_id = $idd; $world_name = $world_n; } if(!isset($world_id)) { $world_id = 0; $world_name = $config['server']['serverName']; } if(count($config['site']['worlds']) > 1) { $main_content .= '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%><TR><TD> <FORM ACTION="?subtopic=whoisonline" METHOD=get><INPUT TYPE=hidden NAME=subtopic VALUE=whoisonline><INPUT TYPE=hidden NAME=list VALUE=experience> <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>World Selection</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['lightborder'].'"> <TABLE BORDER=0 CELLPADDING=1><TR><TD>World: </TD><TD><SELECT SIZE="1" NAME="world"><OPTION VALUE="" SELECTED>(choose world)</OPTION>'; foreach($config['site']['worlds'] as $id => $world_n) { $main_content .= '<OPTION VALUE="'.$id.'">'.$world_n.'</OPTION>'; } $main_content .= '</SELECT> </TD><TD><INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18> </TD></TR></TABLE></TABLE></FORM></TABLE><br>'; } $players_online_data = $SQL->query('SELECT * FROM players WHERE level > 0 AND cast = 1 ORDER BY '.$orderby); $number_of_players_online = 0; foreach($players_online_data as $player) { $number_of_players_online++; if($config['site']['show_flag']) { $account = $SQL->query('SELECT * FROM accounts WHERE id = '.$player['account_id'].'')->fetch(); $flag = '<image src="images/flags/'.$account['flag'].'.png"/> '; } if(is_int($number_of_players_online / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $players_rows .= ' <TR BGCOLOR='.$bgcolor.'> <TD WIDTH=40%>'.$flag.'<A HREF="index.php?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].'</A><br/>'.$player['level'].' '.$vocation_name[$player['world_id']][$player['promotion']][$player['vocation']].'</TD> <TD WIDTH=20%><font color="#008000">ONLINE</font></TD> </TR>'; } if($number_of_players_online == 0) { //server status - server empty $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Server Status</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>Currently there are no active casts on '.$config['server']['serverName'].'.</TD></TR></TABLE></TD></TR></TABLE><BR>'; } else { //server status - someone is online $main_content .= ' <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> <TR BGCOLOR="'.$config['site']['vdarkborder'].'"> <TD CLASS=white><B>Server Status</B></TD> </TR> <TR BGCOLOR='.$config['site']['darkborder'].'> <TD>'; $main_content .= 'Currently there are '.$number_of_players_online.' active live casts'; $main_content .= ' on '.$world_name.' gameworlds.<br> </TD> </TR> </TABLE><BR>'; //list of players $main_content .= ' <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> <TR BGCOLOR="'.$config['site']['vdarkborder'].'"> <TD><A HREF="index.php?subtopic=whoisonline&order=name" CLASS=white>Name</A></TD> <TD><A HREF="index.php?subtopic=whoisonline&order=vocation" CLASS=white>Status</TD> </TR> '.$players_rows.'</TABLE>'; //search bar //$main_content .= '<BR><FORM ACTION="index.php?subtopic=characters" METHOD=post> <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>'; } $main_content .= '<BR><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Description</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><h4 style="margin: 0px;">Commands (owner):</h4><i>!cast {on/off}</i> - Create or close your own cast<br/><i>!cast password, |password|</i> - Sets a password for the cast<br/><i>!cast,desc, |description|</i> - Set a description for the cast<br/><i>!cast status</i> - Information about your cast (viewer amount, description, password)<br/><i>!cast viewers</i> - Displays the name of all viewers<br/><i>!cast {ban/unban},"name"</i> - Bans a viewer from joining your cast/Removes the ban<br/><i>!cast {mute/unmute} "name"</i> - Mutes a viewer on your cast/Removes the mute<br/><i>!cast bans</i> - Displays a list of banned viewers<br/><i>!cast mutes</i> - Displays a list of muted viewers<br/><i>!cast update</i> - Updates the description and status on the website<br/><br/><h4 style="margin: 0px;">Commands (viewer):</h4><i>!nick newNick</i> - Changes the viewer\'s name<br><i>!info</i> - Displays a list of all viewers</TD></TR></TABLE>'; DOWNLOAD TFS 1.0 COM CAST Se Ajudei Minda Rep++1 ponto
-
(Resolvido)Spell para ficar intocavel
(Resolvido)Spell para ficar intocavel
ZeeroBR reagiu a xWhiteWolf por uma resposta no tópico
1 pontoahaauhauhauh eu ainda não curto essas idéias de ter que pagar por script.. faço as coisas na boa vontade e espero uma resposta em troca pelo menos do cara falar que gostou ou me contar como ele utilizou no server. Infelizmente muita gente acha que só porque sou suporter é minha obrigação ajudar e pega o script usa no server e nem responde mais nada1 ponto -
(Resolvido)Spell para ficar intocavel
(Resolvido)Spell para ficar intocavel
ZeeroBR reagiu a xWhiteWolf por uma resposta no tópico
1 pontosó muda a spell e tira a condition invisible: local config = { storage = 3482101, cooldown = 30, --- tempo entre um uso e outro duration = 5, --- duração effect1 = 29 -- efeito que sai ao falar a spell } function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, 55695) >= config.cooldown then setPlayerStorageValue(cid, 55695, os.time()) doSendMagicEffect(getCreaturePosition(cid), config.effect1) setPlayerStorageValue(cid, config.storage, os.time() + config.duration) doCreatureSay(cid,"UNTOUCHABLE!!!", 19) doPlayerSendTextMessage(cid, 27, "You have now ".. config.duration .." seconds of invulnerability.") else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55695))).." seconds.") return false end return true end1 ponto -
(Resolvido)Talkaction redutora de exp por tempo
(Resolvido)Talkaction redutora de exp por tempo
Sekk reagiu a xWhiteWolf por uma resposta no tópico
1 pontoeai cara, eu gostaria de um feedback... deu certo no seu servidor? gostou do sistema? eu levei um tempo pra fazer ele e gostaria de saber se te agradou1 ponto -
Instalando Zombie Event
Instalando Zombie Event
QuebradaZN reagiu a Sociopata por uma resposta no tópico
1 pontoBem hj vou estar postando o ZOMBIE EVENT q eu uso no meu server sem erros nem nada.. Testado em tfs 0.3 pra mais Testado em 8.54,8.60 COMANDOS INSTALAÇÃO data/creaturescripts/scripts/zombie/onattack.lua function loseOnZombieArena(cid) kickPlayerFromZombiesArea(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "BOOM! You are dead.") local players = getZombiesEventPlayers() if(#players <= 1) then local winner = players[1] if(winner) then doPlayerAddItem(winner, 2157, 5, true) doPlayerAddItem(winner, 6119, 1, true) doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "You won zombies arena event.") doBroadcastMessage("After " .. os.time() - getPlayerZombiesEventStatus(winner) .. " seconds of fight " .. getCreatureName(winner) .. " won Zombie Arena Event in game versus " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zombies!") kickPlayerFromZombiesArea(winner) else doBroadcastMessage("Zombie arena event finished! No one win?!?!?! WTF!") end doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1 local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1 local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z} for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do centerPos.z = z for i, uid in pairs(getSpectators(centerPos, width, height, false)) do if(isMonster(uid)) then doRemoveCreature(uid) end end end end end function onStatsChange(target, cid, changetype, combat, value) if((cid and isMonster(cid) and getCreatureName(cid) == "Zombie Event") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then doCreatureAddHealth(target, getCreatureMaxHealth(target)) loseOnZombieArena(target) return false end return true end /data/creaturescripts/scripts/zombie/ondeath.lua function onDeath(cid) setZombiesToSpawnCount(getZombiesToSpawnCount() + 2) doCreatureSay(cid, "I'll be back!", 19) return true end /data/creaturescripts/scripts/zombie/onthink.lua function onThink(cid) local target = getCreatureTarget(cid) if(target ~= 0 and not isPlayer(target)) then doRemoveCreature(target) end return true end /data/creaturescripts/scripts/login.lua add: registerCreatureEvent(cid, "ZombieAttack") /data/globalevents/scripts/zombie/onstartup.lua function onStartup() db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = " .. ZE_isOnZombieArea .. ";") doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) addZombiesEventBlockEnterPosition() return true end /data/globalevents/scripts/zombie/onthink.lua function onThink(interval, lastExecution, thinkInterval) if(getStorage(ZE_STATUS) == 2) then setZombiesToSpawnCount(getZombiesToSpawnCount()+1) local players = getZombiesEventPlayers() for i=1, getZombiesToSpawnCount() * 2 do if(getZombiesToSpawnCount() > 0 and spawnNewZombie()) then setZombiesToSpawnCount(getZombiesToSpawnCount()-1) end end end return true end /data/lib/zombie_event.lua -- CONFIG ZE_DEFAULT_NUMBER_OF_PLAYERS = 5 ZE_ACCESS_TO_IGNORE_ARENA = 3 -- POSITIONS ZE_blockEnterItemPosition = {x= 873, y=997, z=7} ZE_enterPosition = {x = 1638, y = 1530, z = 7} ZE_kickPosition = {x=874, y=994, z=7} ZE_spawnFromPosition = {x = 1617, y = 1514, z = 7} ZE_spawnToPosition = {x = 1671, y = 1565, z = 7} -- ITEM IDS ZE_blockEnterItemID = 2700 -- STORAGES -- - player ZE_isOnZombieArea = 34370 -- - global ZE_STATUS = 34370 -- =< 0 - off, 1 - waiting for players, 2 - is running ZE_PLAYERS_NUMBER = 34371 ZE_ZOMBIES_TO_SPAWN = 34372 ZE_ZOMBIES_SPAWNED = 34373 -- FUNCTION function setZombiesEventPlayersLimit(value) doSetStorage(ZE_PLAYERS_NUMBER, value) end function getZombiesEventPlayersLimit() return getStorage(ZE_PLAYERS_NUMBER) end function addPlayerToZombiesArea(cid) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, ZE_enterPosition, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) if(getPlayerAccess(cid) < ZE_ACCESS_TO_IGNORE_ARENA) then setPlayerZombiesEventStatus(cid, os.time()) end end function kickPlayerFromZombiesArea(cid) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, ZE_kickPosition, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) setPlayerZombiesEventStatus(cid, 0) end function getPlayerZombiesEventStatus(cid) return getCreatureStorage(cid, ZE_isOnZombieArea) end function setPlayerZombiesEventStatus(cid, value) doCreatureSetStorage(cid, ZE_isOnZombieArea, value) end function getZombiesEventPlayers() local players = {} for i, cid in pairs(getPlayersOnline()) do if(getPlayerZombiesEventStatus(cid) > 0) then table.insert(players, cid) end end return players end function getZombiesCount() return getStorage(ZE_ZOMBIES_SPAWNED) end function addZombiesCount() doSetStorage(ZE_ZOMBIES_SPAWNED, getStorage(ZE_ZOMBIES_SPAWNED)+1) end function resetZombiesCount() doSetStorage(ZE_ZOMBIES_SPAWNED, 0) end function getZombiesToSpawnCount() return getStorage(ZE_ZOMBIES_TO_SPAWN) end function setZombiesToSpawnCount(count) doSetStorage(ZE_ZOMBIES_TO_SPAWN, count) end function addZombiesEventBlockEnterPosition() if(getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID).uid == 0) then doCreateItem(ZE_blockEnterItemID, 1, ZE_blockEnterItemPosition) end end function removeZombiesEventBlockEnterPosition() local item = getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID) if(item.uid ~= 0) then doRemoveItem(item.uid) end end function spawnNewZombie() local posx = {} local posy = {} local posz = {} local pir = {} for i=1, 5 do local posx_tmp = math.random(ZE_spawnFromPosition.x ,ZE_spawnToPosition.x) local posy_tmp = math.random(ZE_spawnFromPosition.y ,ZE_spawnToPosition.y) local posz_tmp = math.random(ZE_spawnFromPosition.z ,ZE_spawnToPosition.z) local pir_tmp = 0 local spec = getSpectators({x=posx_tmp, y=posy_tmp, z=posz_tmp}, 3, 3, false) if(spec and #spec > 0) then for z, pid in pairs(spec) do if(isPlayer(pid)) then pir_tmp = pir_tmp + 1 end end end posx[i] = posx_tmp posy[i] = posy_tmp posz[i] = posz_tmp pir[i] = pir_tmp end local lowest_i = 1 for i=2, 5 do if(pir[i] < pir[lowest_i]) then lowest_i = i end end local ret = (type(doCreateMonster("Zombie Event", {x=posx[lowest_i], y=posy[lowest_i], z=posz[lowest_i]}, false)) == 'number') if(ret) then addZombiesCount() end return ret end /data/movements/scripts/zombie/onenter.lua function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if(not isPlayer(cid)) then return true end if(getPlayerAccess(cid) >= ZE_ACCESS_TO_IGNORE_ARENA) then addPlayerToZombiesArea(cid) elseif(#getZombiesEventPlayers() < getZombiesEventPlayersLimit() and getStorage(ZE_STATUS) == 1) then addPlayerToZombiesArea(cid) local players_on_arena_count = #getZombiesEventPlayers() if(players_on_arena_count == getZombiesEventPlayersLimit()) then addZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 2) doBroadcastMessage("Zombie Arena Event started.") else doBroadcastMessage(getCreatureName(cid) .. " has entered a Zombie Arena. We still need " .. getZombiesEventPlayersLimit() - players_on_arena_count .. " players.") end else doTeleportThing(cid, fromPosition, true) addZombiesEventBlockEnterPosition() end return true end /data/talkactions/scripts/zombie/onsay.lua function onSay(cid, words, param, channel) if(getStorage(ZE_STATUS) ~= 2) then local players_on_arena_count = #getZombiesEventPlayers() if(param == 'force') then if(players_on_arena_count > 0) then setZombiesEventPlayersLimit(players_on_arena_count ) addZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 2) doBroadcastMessage("Zombie Arena Event started.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Zombies event started.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Cannot start Zombies event. There is no players on arena.") end else if(param ~= '' and tonumber(param) > 0) then setZombiesEventPlayersLimit(tonumber(param)) end removeZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Event started.") doPlayerBroadcastMessage(cid, "Zombie Arena Event teleport is opened. We are waiting for " .. getZombiesEventPlayersLimit() - players_on_arena_count .. " players to start.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Zombies event is already running.") end return true end AGR EM XMLS /data/creaturescripts/creaturescripts.xml <event type="think" name="ZombieThink" event="script" value="zombie/onthink.lua"/> <event type="statschange" name="ZombieAttack" event="script" value="zombie/onattack.lua"/> <event type="death" name="ZombieDeath" event="script" value="zombie/ondeath.lua"/> /data/globalevents/globalevents.xml TFS 0.3 <globalevent name="ZombieGlobalThink" interval="5" event="script" value="zombie/onthink.lua"/> <globalevent name="ZombieGlobalStartup" type="start" event="script" value="zombie/onstartup.lua"/> TFS 0.4 <globalevent name="ZombieGlobalThink" interval="5000" event="script" value="zombie/onthink.lua"/> <globalevent name="ZombieGlobalStartup" type="start" event="script" value="zombie/onstartup.lua"/> /data/movements/movements.xml <movevent type="StepIn" actionid="5555" event="script" value="zombie/onenter.lua"/> /data/talkactions/talkactions.xml <talkaction log="yes" words="/zombiestart" access="4" event="script" value="zombie/onsay.lua"/> /data/monster/zombie_event.xml <monster name="Zombie Event" nameDescription="an event zombie" race="undead" experience="480" speed="170" manacost="0"> <health now="20000" max="20000"/> <look type="311" corpse="9875"/> <targetchange interval="5000" chance="50"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="1000" min="-1500" max="-2350"/> </attacks> <defenses armor="0" defense="0"/> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> <immunity fire="1"/> <immunity energy="1"/> <immunity poison="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="You wont last long!"/> <voice sentence="Mmmmh.. braains!"/> </voices> <script> <event name="ZombieThink"/> <event name="ZombieDeath"/> </script> <loot> </loot> </monster> /data/monster/monsters.xml Créditos PhoOwned 99% Sociopata 1% Bem é isso por favor antes de postar erros vejam se fizeram os procedimento de modo correto, por que eu uso isso RLs usam e nunca tiveram problema, e tbm so pra lembrar vcs precisam ter a arena tradicional do Zombie Event para garantir o funcionamento em 100% e pelo amor de deus n coloquem em ot com TFS menor que 0.3. OBRIGADO A TODOS E POR FAVOR COMENTEM <monster name="Zombie Event" file="zombie_event.xml"/>1 ponto -
Itens Iniciais
Itens Iniciais
rocineide de toni reagiu a 9k22 por uma resposta no tópico
1 pontoNo mysql tem a parte: Save = 0 Modifique para: Save = 1 Em cada sample, após você fazer isso, vai salvar tudo no player!1 ponto