Histórico de Curtidas
-
Marjer deu reputação a Kuchiki Kenpachi em Criando Client Proprio Sem Vapus (Completo)Fala galera, o Vapus era Perfeito para criar Client's proprios mas depois que ele fechou e re-abriu ficou uma merda, os clients criados no vapus não funcionam, então fica a pergunta de como criar um client proprio sem usar o Vapus! Então vamos lá.
Pode usar o client que já vem no server mesmo.
*Material:
1º Parte: Mudando o IP do client.
2º Parte: Compilando .dat, .spr e .pic:
3º Parte: Mudar o Icone do Client.
Qualquer duvida, erros ou coisa do tipo posta ae. Proximo tutorial vou mostrar como fazer um Launcher e Instalador. Se gostaram por favor REP+ o pessoal daqui ta com uma Pessima mania de ver um Tutorial ou script, gostar e não dar rep+ e isso é sacanagem neh. Bom vlws ae e aguardem o proximo Tutorial !
-
Marjer deu reputação a Lucas Barreto em [Atualização C1] Colossus Server 10.77 - Servidor NOVOCOLOSSUS SERVER 10.77
Bom Galera do TK, ai vai a minha primeira contribuição para o site. Espero não ter errado ai na postagem e conseguir passar todas informações necessárias para o bom entendimento do Leitor. Sem mais delongas, apresento-lhes o Colossus server.
CIDADES:
Colossus*
Edron
Ankrahmun
Gnombase
Mineland*
Yalahar
Svargrond
Roshamuul
Gray Beach
Rathleton
Alpha Base*
*Cidades Novas do servidor.
- Warzone 1, 2, 3;
- Bank System;
- Gray Beach City completa 100% (incluindo Subsolo);
- Monstros 100%;
- Trainer Offline 100%;
- Trainer Online 100%;
- Todas montarias;
- Taming system funcionando 100%;
- Database completa;
- Wrath of Emperor Quest;
- War System 100%;
- Market System 100%;
- Roshamull Completa100% (incluindo subsolo);
- Oramond Full;
- POI;
- Children of a Revolution Quest;
- The New Frontier Quest;
- Colossus quest;
- Varias quests Items Espalhadas pelo mapa;
- Novos Montros.
- Todas as Magias Balanceadas para um melhor desempenho. (Foi mudado todos os cálculos das magias). Essa mudança foi feita visando obter um maior empenho do jogador para crescer no jogo, pois as formulas antigas cresciam linearmente. Adotei formulas que crescem exponencialmente. Resultado, quem se dedica ao jogo, treina, upa e busca os melhores itens, sera realmente o mais forte.
- Itens vips criados.
- Npcs de Addon postos em uma ilha, todas as quest e execuções de addons são idênticas aos métodos do global, e todos os caminhos são direcionados no mapa.
- Todas as questes requerem missão. A inquisition, por exemplo, segue o mesmo raciocínio da quest global.
- Muitas Hunts novas, todo mapa foi readequado, com isso, talvez as hunts que você encontre no global, não serão as mesma deste servidor.
- A Knightwatch Tower, da dream chalange quest, foi reformulada, seus teleportes levam a Incríveis desafios.
- Praticamente todos os items são acessíveis.
- Wands e rods readequados para uma maior exploração destes items.
- Todos os monstros do Global. Os novos monstros só poderão ser acessados com a conclusão da Colossus quest, que é um desafio e tanto.
- Senha do god = god/god
Dediquei um pouco do meu tempo para estar criando este servidor. Baseei-me no servidor aqui postado pelo Mitsuig
Porem, o mapa foi totalmente editado por mim. Cidade Colossus e Alpha Base foram criadas por mim. As demais cidades foram readequadas para suprir minhas expectativas de jogabilidade do servidor. Todas as quests Globais (Exemplo: POI, Inqui, Children of revolution, The new Frontier, etc.) foram reformuladas para proporcionar mais jogabilidade e iteração no jogo.
Todo mapa foi Sinalizado para guiar os jogadores à seus devidos destinos.
ATENÇÃO: O mapa Não é global, Não é Global Compacto também, Não é Baiak.
Tentei construir um servidor que conduza o jogador para o maior aproveitamento. O mapa é praticamente 100% utilizável, todas as hunts e quests disponibilizam items e recompensas interessantes. Creio que criei um bom servidor pra galera por online ai. Espero que gostem!!
Bom, eu ja disponibilizei com o TFS compilado em Windows. Recomendo que Compilem vocês mesmo.
Esse servidor foi feito usando de modelo o do link acima. Contudo, o mais importante mesmo aquié o SERVIDOR e a DATABASE. O resto podem fazer o download de lá que vai funcionar certinho.
Downloads:
SERVIDOR
Database
WEBSITE
TFS-SDK-2.0
MAP EDITOR
Imagens:
Yalahar
Colossus Quest
Alpha Base
Mineland
Mapa Detalhado
Mapa Detalhado - Colossus City
Colossus
Créditos: Os mesmos do link acima citado. OTLAND - TFS TEAM; Lucas Barreto.
-
Marjer deu reputação a Bruno Minervino em [10.90] Vanaheim Global Opensource - TFS 1.2Um método diferente de agir. Escolhas diferentes, um projeto surpreendente, e o melhor é opensource. Sim, você pode ter acesso a este servidor que estou desenvolvendo em parceria com a Serversoft para você.
Um servidor com uma mega estrutura para suportar seus jogadores online sem nenhum problema como: debug, bug de clonagem, instabilidade entre diversos outros dos servidores free's disponíveis para download nessa vasta internet tibiana.
Uma inovação no ramo de OTservers, distribuindo não só a datapack como as sourcers e os sistemas, absolutamente tudo que você procura. Basta baixar, compilar... Mas eu não sei compilar. Não há problema nisso, o OTPanel da Serversoft faz tudo isso para você. Basta clicar num botão de "play" e ver a mágica acontecer.
O projeto Vanaheim, foi criado com o intuito de ser inteiramente grátis para toda a comunidade. Um servidor no qual a diversão é o fator principal, um projeto com viabilidade absoluta por todos os tibianos.
O projeto conta com uma área exclusiva no GitHub para que todos possam acompanhar a evolução do mesmo, dia a dia, diversas atualizações estarão disponíveis a todos. Desde uma action até uma modificação na source vocês terão acesso.
O servidor conta com um mapa Global Full, quando eu digo full, quero dizer que está 99.99% do mapa completo, sem bugs entre outros.
Um servidor que você escolhe a rate experience/skill que desejar, ele vai se adaptar! Você pode escolher se quer ou não que as quests tenham as missões originais 100%!
E o melhor? Além do servidor estar disponível para download ele está online para quem quiser conhecer o projeto, ajudar de alguma forma e o melhor de tudo, se divertir.
Venha se divertir: http://www.vanaheimglobal.com
RATES
Level 8 - 50: 300x
Level 51 - 80: 200x
Level 81 - 100: 150x
Level 101 - 140: 90x
Level 141 - 160: 70x
Level 161 - 180: 60x
Level 181 - 200: 50x
Level 201 - 230: 40x
Level 231 - 260: 30x
Level 261 - 290: 20x
Level 291 - 310: 15x
Level 311 - 340: 10x
Level 341 - 350: 8x
Level 351 - 380: 6x
Level 381 - 430: 4x
Level 431 - 450: 2x
Level 451+: 1x
Skill: 40x
Magic: 8x
Loot: 3x
EVENTOS
Em Breve.
IMAGENS
Em Breve.
GITHUB
Para acompanhar e baixar o servidor atualizado, segue o link do nosso projeto no GitHub:
DOWNLOADS
Servidor
Mapa
Yasir
Scan
CRÉDITOS
TFS Team
Orts Project
Bruno Minervino
-
Marjer deu reputação a ZORAN em [Tutorial] Compilando TFS v1.0 com MSVC 2013Olá amigos da Comunidade Tibiaking venho trazer a vocês este tutorial de como compilar o TFS v1.0 em windows 32 or 64 bits com Microsoft Visual Studio 2013 (Obs: Eu uso a 2013 Ultimater Recomendo). Vamos ao tutorial >> 1) Primeito baixe os programas abaixo se não tiver claro: MSVS 2013 >> Click Here http://www.visualstudio.com/downloads/download-visual-studio-vs Agora baixar os Programas do TFS v1.0: TFS Sdk >> Click Here - Link 2: (Mirror)
Source Do TFS v1.0 >> Click Here
Atenção Baixe apenas a Boost da versão do Pc 32 or 64 Bits. Boost MSVS 2013 32Bits >> Click Here
Boost MSVS 2013 64Bits >> Click Here
2) Agora vamos começar a instalar os Programs do TFS v1.0 >> Primeiro instale o Boost 32 or 64Bits No diretorio raiz do seu HD: Print >>
Agora coloque o SDK Extraido na raiz do Seu HD: Print >> Faça a mesma coisa com a source do TFS v1.0: Print>> Depois de ter feito tudo isso abra a pasta da source e abra a pasta vc12 e siga a print: ( Obs: Você vera Boost32 isso acontece porque na instalação eu coloquei no diretório como Boost32 (Primeira foto) mas basta você deixar como C:\Boost ( A letra C:\ Refere-se a letrado do seu HD ela pode ser D - H - F e Etc... Varia de Pc a Pc.) ) Print >> Com o Visual Studio (2013 Recomendado) aberto Siga as Prints abaixo: Click com botão direito no projeto e vá em propriedades: Print >> Depois Click em Cofiguration manager: Print >> Vamos as explicações: 1 >> Click la Primeiro Quando abrir a caixa com os passos 2-3 and 4 siga-os abaixo >> 2>> Coloque release e só nada mais. 3>> escolha para qual sistema de 32 or 64Bits. (Lembrado que ali e de acordo com a Boost oks. ) 4>> Só Click lá quando terminar de fazer os passos acima. Rsrs.] ------------------------------------|||||------------------------------- 3) Terceira parte Passos 1 do tutorial vamos lá >> Primeiro agora depois de fazer os passos anteriores faça os seguintes passos Click em C/C++ >>> General e siga a Print: Print>> Caso você não entendeu siga as explicações: Vamos as explicações: 1>> Onde você Deve clicar C/C++ >> General. 2>> Click onde a seta esta apontado e click em edit ou de dois clicks. 3>> Quando abrir a caixa de dialogo deixe os diretórios iguais ao da foto e de um Ok. ( Obs: Você vera Boost32 isso acontece porque na instalação eu coloquei no diretório como Boost32 (Primeira foto) mas basta você deixar como C:\Boost ) Terceira parte passo 2 Click em Linker >> General e siga as Prints >> Prints >> Vamos as explicações: 1>> Onde você deve Clicar depois de fazer os passos anteriores da terceira parte passos 1. Oks. 2>> igual ao passo 2 da parte 1 da terceira parte só que mais explicativo. 3>> Click em Edit e espere abrir a caixa de Dialogo siga a Print 2. Print 2>> Deixe igual a caixa de dialogo onde esta marcado com o 1 Grande Oks. Depois basta da um OK e um Apply e Ok e esperar aparecer Ready >>
Print>> Explicações: 1>> Esperar o Ready. 2>> Click com o botão direito no projeto e depois em BuilD. Basta Esperar terminar a compilação e Pronto. Caso o tutorial não tenha sido bem explicativo Posso melhorá-lo a sugestão e depois posto a foto final da compilação Oks. Se quiser me agradecer eu serei grato pois deu trabalho fazer esse tutorial pois bugo algumas vezes. Um grande abraço e fiquem com Deus! Nota: Eu Tenho permissão do autor do tutorial Original em Inglês para criar o post em PT-Br Não e permitido copiar ou reproduzir sem a devida autorização de Dominique120. Não e permitido postar o Faq do mesmo aqui neste tutorial para ver mais informações siga o LINK ou Veja os #créditos. #Creditos: -------------------///------------------ Dominique120 >> Click aqui para ver o tutorial original -------------------///-------------------- ZORAN >> Click aqui para ver o meu perfil -
Marjer deu reputação a DeathRocks em [Exclusivo]Baiak ZIK VIP 15 Editado DeathRocksEba Eba Galerinha do TK
Eu Aqui do Novo para Trazer o Baiak ZIK VIP 15 que muitos me pediram para fazer
Espero que Gostem da Edição
|- Mudanças Ocorrida
| Melhorado Mapa e Adicionado Varias Áreas
| Novos Itens
| Novas Questes
| Novos Bichos
| Adicionado VIP 15
| Retirado Bugs no Mapa...
| Retirado Varios Bugs no Distro
| Novo Visual do Templo
| Critical System
| Dodge System
| Reset System,para resetar fale !reset
| Guild Frags System
| PvP Balanceado Agora todas vocações estão no balanço
| Armas Arrumadas Para Melhor PvP
| Varios Eventos
| Invasões no Templo de Boss Automatico
| Battle Field Event
| City War
| Adicionado CASTLE 24HORAS (COM CASTELO) e AVISOS DE INVASORES
| Itens DONATES
| Área DONATE ~~ (Só Entra Quem Usar o Itens de Premium Days)
| Vários Novos Script
| Fast Atk Arrumado
| Frags no Look
| Npc Hero Seller (Vende Itens Exclusivos para quem tiver honor points) Obs:Consegue no GFS)
| Entre Muitas Outras Coisas
| Confira !
| Senha do ADM: god/god
| Aqui tem Algumas Imagens !
Templo Parte Direita
Templo Parte Centro
Treiners Abaixo do Templo Novo Visual
Npc Hero Vendendo Itens Heros
Castle WAR 24 Horas
| Download
| Scan
| Créditos
| Gostou ? De um GOSTEI e tamos quites
-
Marjer deu reputação a luanluciano93 em [Source] Comando "/reload all" para TFS 1.0@Tomaxx, SIM. No TFS 1.0 não tem ele, por isso fiz isso.
-
Marjer deu reputação a luanluciano93 em [Source] Comando "/reload all" para TFS 1.0@loreal, teste e me fale você ..
EDIT ~
@loreal, funcionou?
-
Marjer deu reputação a Fir3element em (Resolvido)[PEDIDO] Hp / Mp por porcentagem %%Qual TFS?
-
Marjer deu reputação a luanluciano93 em TFS 0.4 CAST@Marjer,
-
Marjer deu reputação a tiroleivi em Global FULL 8.60 | Zao, War System, Cast System...Global Full
8.60
Descrição
Estarei disponibilizando um Mapa Global Full + Zao na versão 8.60, à pedido do @rozinx.kungsan.
Modificações que contém no OT
Ilhas VIPs Cast System War System Woe Itens Vips (com Id Próprio) (Configurado e Balanceado) NPCs Modificados Treiner Offline Treiners VIP Novas Hunts Invasões automáticas 2 novos addons (Soil Guardian e Entrepreneur) E muito mais! Cliente 8.60 compatível com os addons e itens editados
ILHA VIP (Furia)
NPCS (Tibia Addon, Vende Addon por Crystal Coin)
Treiners (ON e OFFline)
Itens Vip (Donate) (ID Próprio)
Cliente 8.60 Compatível com : (2 novos addons e itens editados)
(Para alterar a Imagem do Cliente basta editar ou trocar o Tibia.pic)
2 Novos Addons
Soil Guardian
Entrepreneur
Downloads
Global Full 8.60 + DB ~~~~~~~~~ SCAN
Cliente 8.60 Compatível ~~~~~ SCAN
Web-Site ~~~~~~~~~~~~~ SCAN
Source e Distro
items.xml Sem itens DONATE
outfits.xml Sem os dois ADDONS
OBS: A Database que vem junto com o OTSERV é compativel com o WEB-SITE acima.
Cliente Próprio somente se for usar os itens Donate e os dois Addons que foi adicionado.
Como Rodar o Servidor + Site
-
Marjer deu reputação a thiagobji em [8.60] HollisterOT Baiak + Site + DB = Sem Erros na Distro• Hollister Baiak ~ Sem Erros na Distro •
Então Galera, eu vi esse OT Server aqui no TK, só que agora o link para download
Não está mais disponível, então, eu venho trazer a vocês novamente e agora com a distro totalmente, sem nenhum erro na distro. (É ISSO MESMO!)
Ai vai o pacote inteiro: OT Server + Site + DB.
• Cidades:
├ Baiak City (Editada)
├ Desert City
├ Hydraland
├ Iridian (Cidade VIP by Gustavo Ferreira Totalmente Editada mais de 60 TPS EXCLUSIVOS)
└ Thais
• O Que Contêm no Servidor:
├ Eventos Exclusivos (Todos Editados By Gustavo Ferreira, Funcionando 100%) :
├DotA
├ WoE
├ Coliseum
├ Zombie Event
├ Iridian Totalmente editada ( Mais de 60 Tps Vip, Quests Vips Exclusivas e mais..)
├ City do Baiak Totalmente Reformulada.
├ Novos Teleports e Quests ( By Gustavo Ferreira)
├ Novos NPC'S (By Gustavo Ferreira)
├ War System (Funcionando 100% + Tabela database).
└ TFS 0.4 Estável e criado pelo meu team ( Mais de 500Hrs Uptime Atingido )
├ Novo NPC de vender Itens VIP Free. (Os Items VIP Donates são vendidos no Site).
• Imagens :
Distro - 1 Imagem
Distro - 2 Imagem
Templo
Sala de Teleportes free (Primeira Sala)
Teleportes #2
Segunda Sala
Templo Vip Cidade Editada By Gustavo Ferreira
Website
• Lista Das Principais Quests (Todas Funcionando 100%):
├ The Annihilator Quest
├ Demon Helmet Quest
├ Firewalker Boots Quest
├ The Inquisition Quest
├ The Pits of Inferno Quest
├ The Demon Oak Quest
├ The new Frontier quest (By Gustavo Ferreira)
└ In Service of Yalahar Quest
• Sobre Website:
├ 100% Protegido
├ Tabela de eventos completa
├ Pagina characters Reformulada
├ Create Account Igual Do GLobal
├ Novas Tabelas
├ Shop System Configurado com server
├ Acompanha tabela de items VIP CONFIGURADA
└ E mais confira..
• Modificações Adicionadas (By Gustavo Ferreira):
├ Reformulado todos eventos agora sem Bugs
├ Adicionado novos Teleportes + de 60
├ Adicionado novas quests todas funcionando 100%
├ Mais de 10 Items Vips Configurados
├ Website completo + Database que sera postado nesse tópico
└ E muito mais só você baixando para ver!!!
Download Server + Site + DB (Tudo Junto): DOWNLOAD
Créditos:
Gustavo Ferreira
Thiagobji
Qualquer coisa, só comentar!
-
Marjer deu reputação a Jamers Rodrigues em Anti-Divulgaçãocorreções:
-Script não executa duas vezes agora Fixo.
Arquivo Lua para trabalhar correto com 0.3.6
Agregado a proteção contra spam. Lua (uma vez que ele conta como talkaction não tem cheque sem som)
Abra talkaction.cpp de fontes yur e busca para:
código:
if(!talkAction || (talkAction->getChannel() != -1 && talkAction->getChannel() != channelId)) return false; e substituí-lo com: if(!talkAction) { for(TalkActionsMap::iterator it = talksMap.begin(); it != talksMap.end(); ++it) { if(it->first == "illegalWords") { talkAction = it->second; break; } } if(talkAction && talkAction->isScripted()) return talkAction->executeSay(creature, words, "", channelId); return false; } else if(talkAction->getChannel() != -1 && talkAction->getChannel() != channelId) return false; Compilar seu servidor agora. Ir para talkactions / talkactions.xml e adicione: <talkaction words="illegalWords" event="script" value="blocklinks.lua"/> NOTA: Não mudar as palavras = "illegalWords" ou não vai funcionar .. Criar "blocklinks.lua" em talkactions / scripts e cole que neste arquivo: function getFixedText(cid, text, replace) local wrongWords = {"otservlist.org", "ots-list.pl", "google.br", "83.17.165.189", "hopto.org", "no-ip.org", ".com"} local lowerText = string.lower(text) local noSpaceText = string.gsub(string.gsub(string.gsub(lowerText, "%s", ""), "%p", ""),"-", "") for w = 1, #wrongWords do wordLen = string.len(wrongWords[w]) for p = 1, string.len(text) do if(string.sub(lowerText, p, p+wordLen-1) == wrongWords[w]) then text = string.sub(text, 1, p-1) .. string.rep(replace, wordLen) .. string.sub(text, p+wordLen) end end end if(string.lower(text) == lowerText) then for c = 1, #wrongWords do if(string.find(noSpaceText, string.gsub(string.gsub(wrongWords[c], "%p", ""),"-", "")) ~= nil) then return "I want to post forbidden links.." end end end return text end --[[Channels which are not added to block: 1 - Party Channel 2 - Channel for Staff members 3 - Rule Violation Channel 4 - Channel for Counselors/Tutors 65536 - Private Chat Channel <-- Private Chat cannot be blocked with this script ]]-- local blocked_channels = {5,8,9} --Game-Chat, Real Chat, Help Channel local trade_channels = {6,7} --All trade channels <- These are also blocked local replace = "°" --Symbols which are shown instead of forbidden links -> ° local delay = {16246,5} -- {empty_storage, lenght of muted} function onSay(cid, words, param, channel) local fixedWords = getFixedText(cid, words, replace) if words ~= fixedWords and getPlayerAccess(cid) == 0 then if getPlayerStorageValue(cid,delay[1]) > os.time() then return doPlayerSendCancel(cid,"You are still muted for ".. getPlayerStorageValue(cid,delay[1])-os.time() .." seconds.") end setPlayerStorageValue(cid,delay[1],os.time()+delay[2]) if channel == CHANNEL_DEFAULT then doCreatureSay(cid, fixedWords, TALKTYPE_SAY) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: "..words.." is forbidden.") return true elseif isInArray(trade_channels, channel) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: "..words.." is forbidden on the trade channel.") return true elseif isInArray(blocked_channels, channel) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: "..words.." is forbidden.") doPlayerSendChannelMessage(cid, getCreatureName(cid), fixedWords, TALKTYPE_CHANNEL_Y, channel) return true end end return false end
Creditos Summ.
.
Suporte: http://tibiaking.com/forum/topic/18201-executavelant-dvallitemsotb/
-
Marjer deu reputação a Fir3element em Script RESET 10.76function onSay(cid, words, param) local player = Player(cid) local function getPlayerResets() local resets = player:getStorageValue(500) return resets < 0 and 0 or resets end local hasAccess = player:getGroup():getAccess() local players = Game.getPlayers() local playerCount = Game.getPlayerCount() player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, playerCount .. " players online.") local i = 0 local msg = "" for k, tmpPlayer in ipairs(players) do if hasAccess or not tmpPlayer:isInGhostMode() then if i > 0 then msg = msg .. ", " end msg = msg .. tmpPlayer:getName() .. " (" .. tmpPlayer:getLevel() .. ") [Resets: " .. getPlayerResets() .. "]" i = i + 1 end if i == 10 then if k == playerCount then msg = msg .. "." else msg = msg .. "," end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg) msg = "" i = 0 end end if i > 0 then msg = msg .. "." player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg) end return false end
-
Marjer deu reputação a Fir3element em Script RESET 10.76function onSay(cid, words, param) local player = Player(cid) local hasAccess = player:getGroup():getAccess() local players = Game.getPlayers() local playerCount = Game.getPlayerCount() player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, playerCount .. " players online.") local i = 0 local msg = "" for k, tmpPlayer in ipairs(players) do local function getPlayerResets() local resets = tmpPlayer:getStorageValue(500) return resets < 0 and 0 or resets end if hasAccess or not tmpPlayer:isInGhostMode() then if i > 0 then msg = msg .. ", " end msg = msg .. tmpPlayer:getName() .. " (" .. tmpPlayer:getLevel() .. ") [Resets: " .. getPlayerResets() .. "]" i = i + 1 end if i == 10 then if k == playerCount then msg = msg .. "." else msg = msg .. "," end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg) msg = "" i = 0 end end if i > 0 then msg = msg .. "." player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg) end return false end
-
Marjer deu reputação a Frenesy em CMS #01 - Element Puzzle QuestVersão do Server: 8.60 O Objetivo é sincronizar as estátuas de seus respectivos elementos para criar um portal. Utilizei Actions para Girar as Estátuas e fazer a verificação das posições e Movements para fazer com que as Estátuas se posicionem de maneira aleatória, para que assim, qualquer jogador tenha uma experiência nova ao fazer a Quest. Cada estátua tem seu elemento. As estátuas da esquerda são o padrão. Você deve ajustar as estátuas da direita de acordo com o padrão estabelecido da esquerda.
Uma sala é formada por dois grupos de estátuas. 6 na esquerda, 6 na direita. Cada Elemento possui duas estátuas diferentes. Uma do lado esquerdo, outra do lado direito (Notar imagem abaixo). As estátuas do lado esquerdo possui ActionID. Elas não giram. Elas que geram um padrão para posicionar as outras estátuas. O Objetivo é posicionar a estátua do lado direito do elemento fogo, por exemplo, de acordo com a posição da estátua do lado esquerdo com o mesmo elemento.
Movements: Crie um arquivo .lua com nome EPQ em Movements/Script/ e coloque o código abaixo dentro dele. (Configure o local das estátuas) function onStepIn(cid, item, position, fromPosition) local pos_enter = {x = 999, y = 1009, z = 7} local statues = { -- Estátuas que ficam na posição esquerda {x = 997, y = 993, z = 7, stackpos= 1}, {x = 995, y = 994, z = 7, stackpos= 1}, {x = 994, y = 996, z = 7, stackpos= 1}, {x = 994, y = 998, z = 7, stackpos= 1}, {x = 995, y = 1000, z = 7, stackpos= 1}, {x = 997, y = 1001, z = 7, stackpos= 1}, -- Estátuas que ficam na posição direita {x = 1001, y = 993, z = 7, stackpos= 1}, {x = 1003, y = 994, z = 7, stackpos= 1}, {x = 1004, y = 996, z = 7, stackpos= 1}, {x = 1004, y = 998, z = 7, stackpos= 1}, {x = 1003, y = 1000, z = 7, stackpos= 1}, {x = 1001, y = 1001, z = 7, stackpos= 1}, } doTeleportThing(cid, pos_enter, true) for _, pos in ipairs(statues) do local lv = getThingfromPos(pos).uid doTransformItem(lv, math.random(3705, 3708)) end return TRUE end Adicione essa tag em Movements.xml
<movevent type="StepIn" actionid="5485" event="script" value="EPQ.lua"/> No piso, coloque ActionID: 5485. Actions: Crie um arquivo .lua com nome EPQ em Action/Script/ e coloque o código abaixo dentro dele. function onUse(cid, item, frompos, item2, topos) if (item.actionid ~= 15784) then -- As Estatuas que tenham essa Action não podem ser movidas. if item.itemid == 3705 then doTransformItem(item.uid, 3706) elseif item.itemid == 3706 then doTransformItem(item.uid, 3707) elseif item.itemid == 3707 then doTransformItem(item.uid, 3708) elseif item.itemid == 3708 then doTransformItem(item.uid, 3705) end else doSendMagicEffect(getPlayerPosition(cid), 2) end return TRUE end Em Action.xml adicione essa tag.
<action itemid="3705-3708" event="script" value="EPQ.lua"/> Nas estátuas da esquerda, coloque nelas ActionID: 15784 Crie um arquivo .lua com nome EPQUm em Action/Script/ e coloque o código abaixo dentro dele. (Configurações estão no início do Script) -- Config. local config = { toPos = {x = 998, y = 985, z = 7}, -- Posição da Sala da recompensa. Pos = {x = 999, y = 994, z = 7}, -- Posição onde será criado o Teleport. tp = {x = 999, y = 994, z = 7}, -- Posição que o Teleport apareceu, para que ele seja removido. tempo = 5, -- Tempo que o Teleport ficará disponível, em segundos } local posA = { -- Estátuas que ficam na posição esquerda {x = 997, y = 993, z = 7, stackpos= 1}, -- Fogo {x = 995, y = 994, z = 7, stackpos= 1}, -- Pedra {x = 994, y = 996, z = 7, stackpos= 1}, -- Dark {x = 994, y = 998, z = 7, stackpos= 1}, -- Terra {x = 995, y = 1000, z = 7, stackpos= 1}, -- Gelo {x = 997, y = 1001, z = 7, stackpos= 1}, -- Poison -- Estátuas que ficam na posição direita {x = 1001, y = 993, z = 7, stackpos= 1}, -- Gelo {x = 1003, y = 994, z = 7, stackpos= 1}, -- Poison {x = 1004, y = 996, z = 7, stackpos= 1}, -- Pedra {x = 1004, y = 998, z = 7, stackpos= 1}, -- Fogo {x = 1003, y = 1000, z = 7, stackpos= 1}, -- Dark {x = 1001, y = 1001, z = 7, stackpos= 1}, -- Terra } -- Fim da Config. function onUse(cid, item, frompos, item2, topos) local posC = { [1] = getThingfromPos(posA[1]), [2] = getThingfromPos(posA[10]), [3] = getThingfromPos(posA[2]), [4] = getThingfromPos(posA[9]), [5] = getThingfromPos(posA[3]), [6] = getThingfromPos(posA[11]), [7] = getThingfromPos(posA[4]), [8] = getThingfromPos(posA[12]), [9] = getThingfromPos(posA[5]), [10] = getThingfromPos(posA[7]), [11] = getThingfromPos(posA[6]), [12] = getThingfromPos(posA[8]), } if getPlayerStorageValue(cid, 10000) == -1 then if posC[1].itemid == posC[2].itemid and posC[3].itemid == posC[4].itemid and posC[5].itemid == posC[6].itemid and posC[7].itemid == posC[8].itemid and posC[9].itemid == posC[10].itemid and posC[11].itemid == posC[12].itemid then doSendMagicEffect(getPlayerPosition(cid), 14) setPlayerStorageValue(cid, 10000, 1) setPlayerStorageValue(cid, 10001, 1) addEvent(CombCerta, 1000, cid) else doSendMagicEffect(getPlayerPosition(cid), 13) setPlayerStorageValue(cid, 10000, 1) addEvent(doSendMagicEffect, 500, posA[11], 17) addEvent(doSendMagicEffect, 500, posA[3], 17) addEvent(doSendMagicEffect, 1500, posA[9], 44) addEvent(doSendMagicEffect, 1500, posA[2], 44) addEvent(doSendMagicEffect, 2500, posA[8], 46) addEvent(doSendMagicEffect, 2500, posA[6], 46) addEvent(doSendMagicEffect, 3500, posA[12], 50) addEvent(doSendMagicEffect, 3500, posA[4], 50) addEvent(doSendMagicEffect, 4500, posA[7], 43) addEvent(doSendMagicEffect, 4500, posA[5], 43) addEvent(doSendMagicEffect, 5500, posA[10], 6) addEvent(doSendMagicEffect, 5500, posA[1], 6) addEvent(doSendMagicEffect, 6500, getPlayerPosition(cid), 13) addEvent(setPlayerStorageValue, 6502, cid, 10000, -1) end else doSendMagicEffect(getThingPos(cid), 2) end return TRUE end function CombCerta(cid) local posC = { [1] = getThingfromPos(posA[1]), [2] = getThingfromPos(posA[10]), [3] = getThingfromPos(posA[2]), [4] = getThingfromPos(posA[9]), [5] = getThingfromPos(posA[3]), [6] = getThingfromPos(posA[11]), [7] = getThingfromPos(posA[4]), [8] = getThingfromPos(posA[12]), [9] = getThingfromPos(posA[5]), [10] = getThingfromPos(posA[7]), [11] = getThingfromPos(posA[6]), [12] = getThingfromPos(posA[8]), } if getPlayerStorageValue(cid, 10001) == 1 then doTransformItem(posC[1].uid, 3705) doSendMagicEffect(posA[1], 14) doTransformItem(posC[10].uid, 3705) doSendMagicEffect(posA[7], 14) addEvent(CombCerta, 1000, cid) setPlayerStorageValue(cid, 10001, -1) setPlayerStorageValue(cid, 10001, 2) elseif getPlayerStorageValue(cid, 10001) == 2 then doTransformItem(posC[3].uid, 3705) doSendMagicEffect(posA[2], 14) doTransformItem(posC[12].uid, 3705) doSendMagicEffect(posA[8], 14) addEvent(CombCerta, 1000, cid) setPlayerStorageValue(cid, 10001, -2) setPlayerStorageValue(cid, 10001, 3) elseif getPlayerStorageValue(cid, 10001) == 3 then doTransformItem(posC[5].uid, 3706) doSendMagicEffect(posA[3], 14) doTransformItem(posC[4].uid, 3708) doSendMagicEffect(posA[9], 14) addEvent(CombCerta, 1000, cid) setPlayerStorageValue(cid, 10001, -3) setPlayerStorageValue(cid, 10001, 4) elseif getPlayerStorageValue(cid, 10001) == 4 then doTransformItem(posC[7].uid, 3706) doSendMagicEffect(posA[4], 14) doTransformItem(posC[2].uid, 3708) doSendMagicEffect(posA[10], 14) addEvent(CombCerta, 1000, cid) setPlayerStorageValue(cid, 10001, -4) setPlayerStorageValue(cid, 10001, 5) elseif getPlayerStorageValue(cid, 10001) == 5 then doTransformItem(posC[9].uid, 3707) doSendMagicEffect(posA[5], 14) doTransformItem(posC[6].uid, 3707) doSendMagicEffect(posA[11], 14) addEvent(CombCerta, 1000, cid) setPlayerStorageValue(cid, 10001, -5) setPlayerStorageValue(cid, 10001, 6) elseif getPlayerStorageValue(cid, 10001) == 6 then doTransformItem(posC[11].uid, 3707) doSendMagicEffect(posA[6], 14) doTransformItem(posC[8].uid, 3707) doSendMagicEffect(posA[12], 14) addEvent(CombCerta, 1000, cid) setPlayerStorageValue(cid, 10001, -6) setPlayerStorageValue(cid, 10001, 7) elseif getPlayerStorageValue(cid, 10001) == 7 then for _, pos in ipairs(posA) do doSendDistanceShoot(pos, config.Pos, 35) end doSendMagicEffect(config.Pos, 10) doCreateTeleport(1387, config.toPos, config.Pos) doCreatureSay(cid, "O teleport irá sumir em "..config.tempo.." segundos.", TALKTYPE_ORANGE_1) addEvent(removetp, config.tempo*1000, cid) end end function removetp(cid) for _, ale in ipairs(posA) do local st = getThingfromPos(ale).uid doTransformItem(st, math.random(3705, 3708)) end local t = getTileItemById(config.Pos, 1387) doRemoveItem(t.uid, 1) doSendMagicEffect(config.Pos, CONST_ME_POFF) setPlayerStorageValue(cid, 10000, -1) end Em Action.xml adicione essa tag.
<action actionid="8798" event="script" value="EPQUm.lua" /> As estátuas precisam estar nesse formato circular para que o efeito das animações possam acontecer corretamente. Vídeo: https://www.youtube.com/watch?v=kBVUf_ejmLs&feature=youtu.be Download OTServ para demonstração da Quest: CLIQUE AQUI -
Marjer deu reputação a Private Sub Teste em [duvida]como faiz um open source?
-
Marjer deu reputação a Fir3element em Script RESET 10.76online.lua (tfs 1.1)
function onSay(player, words, param) local function getPlayerResets() local resets = player:getStorageValue(500) return resets < 0 and 0 or resets end local hasAccess = player:getGroup():getAccess() local players = Game.getPlayers() local playerCount = Game.getPlayerCount() player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, playerCount .. " players online.") local i = 0 local msg = "" for k, tmpPlayer in ipairs(players) do if hasAccess or not tmpPlayer:isInGhostMode() then if i > 0 then msg = msg .. ", " end msg = msg .. tmpPlayer:getName() .. " (" .. tmpPlayer:getLevel() .. ") [Resets: " .. getPlayerResets() .. "]" i = i + 1 end if i == 10 then if k == playerCount then msg = msg .. "." else msg = msg .. "," end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg) msg = "" i = 0 end end if i > 0 then msg = msg .. "." player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg) end return false end -
Marjer deu reputação a Fir3element em Script RESET 10.76Não sei o que pode ser, você voltou o script para o original?
-
Marjer deu reputação a Fir3element em Script RESET 10.76Fiz o teste aqui e funcionou normalmente, verifique se tá usando a storage 500 no script de reset.
-
Marjer deu reputação a Fir3element em Script RESET 10.76Diz ai, se possível me envie uma MP pra eu ver seu post.
@edit
Tinha um bug no sistema de reset, usa esse:
local config = { backToLevel = 8, exp = 4200, redskull = false, battle = false, pz = false, stages = { {resets = 4, level = 350, vip = 330}, {resets = 9, level = 355, vip = 335}, {resets = 14, level = 360, vip = 340}, {resets = 19, level = 365, vip = 345}, {resets = 24, level = 380, vip = 350}, {resets = 29, level = 390, vip = 355}, {resets = 34, level = 410, vip = 360}, {resets = 39, level = 430, vip = 365}, {resets = 44, level = 450, vip = 370} } } function onSay(cid, words, param) local function getResets(cid) local resets = getPlayerStorageValue(cid, 1020) return resets < 0 and 0 or resets end local function setResets(cid, count) setPlayerStorageValue(cid, 1020, getResets(cid) + count) end if config.redskull and getCreatureSkullType(cid) == 4 then return doPlayerSendCancel(cid, "Voce precisa estar sem red skull para resetar.") elseif config.pz and not getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendCancel(cid, "Voce precisa estar em protection zone para resetar.") elseif config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then return doPlayerSendCancel(cid, "Voce precisa estar sem battle para resetar.") end local resetLevel = 0 for x, y in ipairs(config.stages) do if getResets(cid) <= y.resets then resetLevel = isPremium(cid) and y.vip or y.level break end end if getPlayerLevel(cid) < resetLevel then return doPlayerSendCancel(cid, "Voce precisa do level " .. resetLevel .. " ou mais para resetar.") end setResets(cid, 1) local guid = getPlayerGUID(cid) doRemoveCreature(cid, true) db.query("UPDATE `players` SET `level` = " .. config.backToLevel .. ", `experience` = " .. config.exp .. " WHERE `id` = " .. guid) return true end -
Marjer deu reputação a Fir3element em Script RESET 10.76Não tinha visto que era look em items
Essa parte de look em lua é bem chato, acho que teria que refazer todas as opções...
Recomendo mudar na source.
-
Marjer deu reputação a Fir3element em Script RESET 10.76player.cpp, troque:
s << "yourself."; por:
int32_t value; getStorageValue(1020, value); if(value < 0) value = 0; s << "yourself [Resets: " << value << "]."; Se funcionar, me avise que faço o resto.
-
Marjer deu reputação a Fir3element em Script RESET 10.76Volta o player.lua para o que tava antes.
-
Marjer deu reputação a Fir3element em Script RESET 10.76Consegui testar agora.
player.cpp, troque sua função getDescription por essa:
-
Marjer deu reputação a Natanael Beckman em GesiorACC 2019 8.60 UPDATE 29/06/2019Atualização de 29/06/2019.
Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas.
Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente.
- Foi mudado algumas imagens de layout para renovar a estrutura.
- Server Info + Most Power Ful Guilds na mesma estrura.
- Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo
a segurança do seu cliente e dificultando futuras dores de cabeças.
- Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points.
- Algumas mudanças de layout.
- Nome do player abaixo linkado.
- Adicionado um Box de doação, com a intenção apenas de complementar
o layout enriquecendo a pagina.
- Fixado o bug edit town, e melhorado o layout.
- Characters.php refeito, nesta imagem é uma visão de uma conta com access admin.
- Visão normal.
- Inventário completo.
- Guilds com visão ampliada.
- Detalhes...
- Novo SHOP com as estrutura de layout melhorada e modernizada.
- Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina.
- Detalhes...
- Detalhes...
- Detalhes...
- Histórico do SHOP...
DOWNLOAD SITE
SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)