antiblock
https://i.imgur.com/aJ17bf7.gif

…Los†

Membro
  • Content Count

    321
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by …Los†

  1. Estou utilizando esse método https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/3370351-release-automatic-default-priv-rates-db-startup.html?__cf_chl_managed_tk__=pmd_d003e9e72f3a6f070b7695d84c0cb7c0b7424ad6-1628174226-0-gqNtZGzNAzijcnBszQ16 Recomendo que você utilize.
  2. Pessoal, boa tarde! Eu vi algumas quest sobre esse tema e vi que a quest precisava de algumas melhorias etc.. não tem muito mistério. Update: anteriormente essa quest limpava o tempo, porém ainda continuava a contar as horas restante, obviamente as rates permanecem ativadas. Atualizei para quando desativar o sistema de automação, você também vai desativar as rates. quest priv_empire begin -- Q state start begin -- S when guild_man1.chat."GM: Sistema de RATES" or guild_man2.chat."GM: Sistema de RATES" or guild_man3.chat."GM: Sistema de RATES" with pc.is_gm() begin say_title("Bem vindo " .. pc.get_name()) say("") say("Deseja ativar as rates de forma automática? ") say("Basta fala comigo e eu posso ativar.") say("") say_title("Que desejas fazer? ") say("") local menu = select("Ativar Rates", "Desativar Rates", "Sair") if menu == 1 then say_title("Informativo:") say("") say("As rates automáticas foram ativadas.") say("") server_loop_timer("ratesauto", 60*60*23) -- AQUI É O TEMPO QUE ELA VAI SE AUTOATIVAR. (ratesauto) __give_empire_priv(0, 1, 50, 60*60*24) -- (TEMPO PARA O DROP ITENS) ESTA DEFINIDO COMO 50 __give_empire_priv(0, 2, 150, 60*60*24) -- (TEMPO PARA O GOLD) ESTA DEFINIDO COMO 150 __give_empire_priv(0, 4, 200, 60*60*24) -- (TEMPO PARA O XP) ESTA DEFINIDO COMO 200 elseif menu == 2 then say_title("Informativo:") say("") say("Rates automáticas foram desativadas.") say("") clear_server_timer("ratesauto") wait() __give_empire_priv(0, 1, 50, 1) __give_empire_priv(0, 2, 150, 1) __give_empire_priv(0, 4, 200, 1) elseif menu == 3 then return end end when ratesauto.server_timer begin -- auto rates inicio __give_empire_priv(0, 1, 50, 60*60*24) __give_empire_priv(0, 2, 150, 60*60*24) __give_empire_priv(0, 4, 200, 60*60*24) end end -- S end -- Q Obs: se você tiver alguma forma de melhorar a quest, deixe abaixo para ter um conteúdo adequado a todos. Não vejo mau algum em corrigir ou atualizar. Atenciosamente, ByLost
  3. Olá a todos! Se vc usa o paypal para pagamento automático no seu website como eu. Então você já deve ter tido a surpresa caso tenha criado uma conta NOVA. O Paypal segura o dinheiro para analise e envia como status On Hold que é o mesmo que 0 (Não confirmado). O pagamento fica retido até vc confirmar que enviou e qual status do pedido e o código de rastreamento. Massss, vendemos produtos digitais e isso não enquadra. Você precisa liberar o cash de imediato mesmo que o pagamento fique pendente para analise. Veja, o pagamento por parte do cliente esta ok, o que esta pendente é liberação por sua conta ser nova, é uma forma de checar se é uma transação legitima. Procure o seu script do paypal e nele busque: 'Completed' Então você vai mudar esse parametro para: 'Completed' or 'On Hold' or 'Temporary hold' Aqui esta a minha linha: if ( $responseNvp[ 'PAYMENTINFO_0_PAYMENTSTATUS' ] == 'Completed' or 'On Hold' or 'Temporary hold') Checagem dos status: https://www.masonadventures.com/paypal-payment-status/#:~:text=Pending – PayPal is reviewing the,d like to cancel it. Se você não utiliza pagamento automático, apenas desconsidere. By Lost
  4. Olá! É um tutorial bem simples para resolver o erro: has modification time s in the future, nada mais é que ajuste de hora. Esse problema apresenta quando vamos compilar a source do game. #ee /etc/rc.conf No final vc vai colar "Se não houver" ntpd_enable="YES" Clica em esc e salve. Logo depois digite: #service ntpd start #tzsetup Feito isso o horário já vai ajustar. Para testar digite #date Se o problema continuar vc estiver utilizando VIRTUAL BOX, você deve habilitar a opção: HARDWARE CLOCK em System/Sistema como mostra a imagem abaixo, precisa desligar o servidor antes de editar. Depois só ligar que já vai estar ok. Para testar a data apenas digite: #date By
  5. Vou aconselhar você trocar as files para 40k e vou te dizer o porquê. VPS é muito barata, tem várias ai de R$30 a R$40 que vai te atender bem com seus amigos para brincar. Você precisa de um computador no mínimo bom para rodar o servidor na sua maquina sem falar da sua internet. A maioria dos recursos disponíveis hoje é para files 40k +, então você vai encontrar muita incompatibilidade quando precisar mexer em alguma coisa. Se você precisar de suporte e ajuda, a maioria vai estar mais apita a te ajudar nas files 40k + e tenho certeza que você vai precisar de ajuda. Então ao postar aqui com essas files você não vai ter muita ajuda.
  6. Passa dia, passa mês e passa ano sempre a mesma coisa nessa comunidade, alguém a espreita de derrubar o trabalho de alguém de forma insana. Todo mundo do universo de Metin2 vende algo que não é de sua autoria, dito o isso o próprio Metin2, não é por que você editou alguma coisa que lhe da o poder de vender e chamar de seu. Tão logo se você tem algo em sua posse editando é ilegal e contra as leis de muitos países a fora. Ah mais o que ele vende tem grátis, sim tem, agora pensa, se uma pessoa tem dificuldade de achar X coisa, e não sabe procurar ou é mesmo preguiçoso, quando pede as pessoas mandam procurar (principalmente aqui), tão logo é viável para ela comprar algo que esta a tempo procurando e não acha, o dinheiro é dela e ela faz o uso que lhe convém. (Sim muitas pessoas fazem isso em toda parte do mundo). Essa comunidade não anda bem, teve um tempo que todos eram unidos e esse tipo de coisa não era visto, mesmo para um cara que esta revendendo coisas alheias, mais se funciona que mau tem? Detonar não é o caminho. O que se encontra aqui sempre as mesmas coisas, critica, critica e mais critica. Parece uma comunidade de gente mau amada que sempre anda a criticar tudo e a todos. Somos desenvolvedores, e perdemos um grande publico, pois hoje essa comunidade não é 1% do que foi a uns anos atrás que se via ai média de 30 tutoriais por dia, competições e tudo mais. Então preservar o pouco que se resta é importante. Muitas figuras abandonaram essa comunidade por essa hostilidade e essa frescura. Não tem uma vez que você passe por aqui e vê esse tipo de debate entre crianças, ou alguém a criticar o trabalho do outro, a aba de tutorial também esta carente, vamos postar que ajuda mais que ficar nessa palhaçada. Corrigir erro de português é uma coisa tão infantil que beira o ridículo. Quão importante você acha que é na vida de alguém (de internet) que você acha que ela precisa ponderar a sua escrita para conversar ou debater com você? é uma entrevista de emprego ou o quê? precisa ser perfeito? Portanto corrigir a gramática de alguém é apenas uma forma de se sentir superior. Veja cometi alguns erros e pouco me importo em corrigir. Desculpe o desabafo mais essa comunidade esta mesmo infectada, esqueceram do real propósito para que lhe foi construída.
  7. Alterar ou remover o Lv. na source - Tutoriais e Dicas - Cyber-Gamers (cyber-gamers.org)
  8. Olá a todos! É um tut muito simples ok? Vai na source do cliente (Binário) e procure pelo arquivo: UserInterface e depois InstanceBaseEffect.cpp Procure a linha: void CInstanceBase::UpdateTextTailLevel(DWORD level) E em seguida a linha: sprintf(szText, "Lv %d ", level); Faça a sua alteração e compile. Tutorial By Lost
  9. Olá a todos! A tempo não posto nada na comunidade. Pois bem, venho trazer algo feito pelo Marty, que nada mas é que limpar os arquivos duplicados na pasta PACK e deixar ela mais "clean" digamos assim. Isso é muito bom em vista que vamos colocando coisas na PACK e não sabemos ao certo se já tem em outra pasta (para mim não mais para alguém sim). Dito isso vamos ao tutorial que é bemmmmm simples. 1º Você deve fazer backup do seu cliente. 2º Você deve baixar os seguintes arquivos: https://mega.nz/folder/GcMUkLxK#ZCOPcVLDxIeKwAKiGQcY0w 3ºVocê deve criar uma pasta chamada newpack e fazer o UNPACK (DESCOMPACTAR) toda sua pasta pack para esta pasta. 4º Entre na pasta newpack e coloque os arquivos pack_find_duplicates.bat e pack_find_duplicates.py a Depois execute o ficheiro .bat e ele vai fazer uma varredura da sua pack descompactada. OBS: você precisa ter o Python 2.7 instalado, se não tiver baixe, se tiver Windows 10 baixe a versão 3.9 na Windows Store. Pronto toda sua pasta pack foi limpa e os arquivos duplicados foram apagados, você pode constatar isso no ficheiro: duplicated_files.txt Agora vamos a parte do Index, afinal você apagou arquivos e eles precisam ganhar um caminho correto. 1º Antes da pasta pack você cola os arquivos: pack_index_make.py e pack_index_make.bat Esse ficheiro esta programado para fazer index dos arquivos na pata newpack, por isso falei para vocês fazer unpack lá.. porem você pode editar se quiser. 2º execute o ficheiro pack_index_make.bat e pronto, ele vai gerar um ficheiro chamado: newIndex, basta mover para a pack e refazer a compactação dos arquivos e testar o game. Uma atenção, mantenha backup até ter certeza que nenhum arquivo foi corrompido. Não me responsabilizo por má utilização do tutorial. Tutorial: By Lost Créditos: MartySama Source: how-to-mt2-general/pack-cleaning at master · martysama0134/how-to-mt2-general · GitHub
  10. Olá a todos, Bom esse tutorial se deu a minha atenção, devido uma grande gama de confusão a cerca de tutorias que eu vi sobre o assunto pela internet. E vale também para facilitar a vida de muitas pessoas que tiveram problema no assunto ou acha que isso é um BICHO DE 7 CABEÇAS. Ah verdade é que se você esta lendo isso e seguir é porque se viu confuso pelo que se passou pelos tutos da net relacionado ao LZO. Primeiro de tudo que precisa saber que LZO. '' O LZO'' é um algoritmo de compressão e '' xtea '' é chamado de '' criptografia '' que usa uma chave. Você pode usar o Eter Manager para criptografar com o XTEA. 1. Primeiro de tudo vamos criar uma chave e essa chave deve conter até (16 caracteres.) 2. Você precisa ter um bom computador amigo.. porque o processo de descompactar todo o cliente e compactar é demorado dependendo do seu caso. Você deve utilizar o seguinte programa para essa empreitada (Versão mais atualizada): Em seguida você deve baixar esse programa para converter a data do Eter Manager, o programa só roda se tiver a data 2014 no pc.. então claro que não queremos ter que fazer isso.. então fazemos assim: RunasDate: http://www.nirsoft.net/utils/runasdate.zip Selecione a pasta e selecione o .exe do EterManage.. depois disse crie um atalho para não precisar toda vez abri o runas ok? Obviamente deve por a data 2014. Bom agora que temos um descompactador e compactador de respeito.. vamos ao que interessa. 3. Descompacte toda sua pasta utilizando a propria ferramenta Eter Manager ele possibilita até 30 processos de uma vez.. veja as limitações da sua maquina.. na minha maquina não tenho problemas! Seguindo esses passos e todo a pasta pack descompactada oriento seguir da seguinte forma: Crie uma pasta chamada UNPACK onde ficara todas pastas descompactadas. Depois crie uma outra pasta chamada CLIENTE e jogue la todo seu cliente porem com a pasta pack LIMPA.. claro se ja descompactou tudo.. porem deixe apenas o arquivo INDEX. Você vai precisar selecionar o local de cada pasta exemplo: Working você seleciona onde esta a pasta pack do seu cliente somente com o index. Em Umpack você vai selecionar onde esta os arquivos já descompactados. Agora vamos criar as chaves para agente inserir em índex Key e Pack Key! Obs: nesse processo se você quiser já pode até alterar ai sua extensão para o nome que lhe convém devido mexermos na source do cliente. máximo 3 dígitos exemplo: abc e cba algo assim.. 3 dígitos ok? na hora de comprimir vai esta trocado já. Você deve criar uma senha de até 16 caracteres, exemplo: testecybergamers Agora com a nossa querida senha vamos entrar nesse site: http://www.swingnote.com/tools/texttohex.php E digitem a senha criada por você: Em Hex pegamos o algoritmo e depois vamos a este outro site.: https://www.scadacore.com/tools/programming-calculators/online-hex-converter/ Colem o código em HexString Input e analise, depois disso vá até: UINT32 - Little Endian (DCBA) > UINT32 Copie todo os 4 códigos nessa tabela conforme mostra abaixo: 1953719668 1652122469 1634169445 1936876909 Atenção aos espaços.. sempre os espaços xD. bom agora feito isso já temos a primeira chave para inserir na source do cliente, repita os mesmo passos na segunda chave outra senha obviamente. Agora a parte da source no cliente: Você deve ter um arquivo source do seu binário aqui na Cyber ou em outras comunidades vc pode encontrar basta da um Google. Com o arquivo e o seu VS pronto a editar.. você deve procurar o seguinte arquivo: EterPack.cpp Você clica em CTRL+F (Viva Microsoft) e depois digite isso na busca: static DWORD s_adwEterPackKey[] = Encontrando as linha você verá isso: static DWORD s_adwEterPackKey[] = { 45129401, 92367215, 681285731, 1710201, }; static DWORD s_adwEterPackSecurityKey[] = { 78952482, 527348324, 1632942, 486274726, }; Bom agora tudo que precisa fazer e trocar suas 4 chaves geradas de: UINT32 Agora tudo que você precisa fazer é trocar as chaves e compilar o seu binário. Enquanto o seu binário vai compilando volte no seu Eter Manager clica em Manager > Profile onde mostrei a tela acima basta você inserir o que foi convertido no primeiro site exemplo: Basta você colar as chaves no seu devido lugar: Index > testecybergamers > 7465737465637962657267616d657273 > colar no Index Key Bom.. já fui bastante redundante xD.. agora é com você ok? depois de alterar as chaves compile todas as pasta do cliente, troque o binario compilado ou seja o metin2cliente.exe Extras: Você pode baixar esses arquivos do Martysama: https://github.com/martysama0134/how-to-mt2-general/tree/master/xtea-keys-generator gerar uma senha aleatória e fazer os mesmo processos, vem quase tudo pronto.. única coisa que você precisa fazer é: 1º entrar nesse site: https://ideone.com/ e colar o seguinte código abaixo... onde esta os 0 você deve claro trocar pela linha que já vem separada do script do martysama. O resultado que vier abaixo você deve trocar pelo Index ou pack do EterManager. 2. antes de copiar e colar o codigo pronto do Martysama.. ele esqueceu de uma virgula ou seja vai estar assim como mostro abaixo.. faltando uma vírgula static DWORD s_adwEterPackKey[] = { 00000000, 00000000, 00000000, 00000000 }; static DWORD s_adwEterPackSecurityKey[] = { 00000000, 00000000, 00000000, 00000000 }; o correto é: static DWORD s_adwEterPackKey[] = { 00000000, 00000000, 00000000, 00000000, }; static DWORD s_adwEterPackSecurityKey[] = { 00000000, 00000000, 00000000, 00000000, }; from struct import pack as spack a1=spack("LLLL", 0000000000,0000000000,0000000000,0000000000) a2 = a1.encode('hex') print "1 = " + a2[:8] print "2 = " + a2[16:24] print "3 = " + a2[32:40] print "4 = " + a2[48:56] print "full = " + (a2[:8]+a2[16:24]+a2[32:40]+a2[48:56]).upper()# your code goes here Enjoy Tutorial: By Lost Desculpe pelo portugues Desculpe pela confusão do tópico.. não estou bem para criar tópicos mais me esforcei para ajudar em fim.. Bom trabalho sucesso sempre. Vou fazer o máximo para responder dúvidas se houver.. não de maneira pontual mais certamente vou responder. Não vou responder se não tentou dos 2 modos que falei no tópico e já dizer que não resultou.
  11. Usa isso também: ---------------------------------------------- --Criador: Lost --Origem: Metin2 --(Lua) Source Code Edit: Visual Code ---------------------------------------------- quest mask begin state start begin when 30183.use with pc.get_gold() >= 1583999999 begin syschat("Quantidade não permitida.") end when 30183.use begin pc.change_money(416000000) pc.remove_item("30183",1) end end end Configure de acordo com sua necessidade, dependendo das files tem muitos gold e você queira controlar o uso das mask. Boa sorte.
  12. Esse erro é relacionado ao seu htaccess. Da uma lida: https://stackoverflow.com/questions/21158375/htaccess-file-gives-500-internal-server-error Apaga o seu arquivo .htaccess e testa se o site irá abrir. ( Pode ser que o seu website tenha a index em outra página, o site irá desformatar). Isso é apenas para ver se o erro 500 irá sumir. Se o erro sumiu então configure corretamente o seu arquivo .htaccess como mostrei o link acima ou busque relacionado ao seu arquivo. Outra solução pode ser o host do seu website E também pode estar sofrendo ataque. De todo modo boa sorte.
  13. Olá! Venho trazer um simples tutorial para quem utilizar o Visual Code como editor: https://code.visualstudio.com/ Para quem não sabe o @martysama0134 liberou uma extensão .quest para a ferramenta que facilita muito todo o processo. O erro que ocorreu é simples, o editor vem por padrão o UTF8 e não esta disponível o ANSI. Existe uma linguagem que esta disponível bem parecida com a ANSI a ponto de suprir o que se precisa para o Metin2. Veja o que ocorre se eu escrever "ação" e salvar e depois reabrir. a??o Já com o Windows 1252 ação 1º Clica com botão esquerdo do mouse em "quest". E depois clique em Procure por: "workbench.statusBar.visible": true, Abaixo você cole, se já estiver apenas altere para false. "files.autoGuessEncoding": false, No final você pode colar: "[lua]": { "files.encoding": "windows1252" }, "[quest]": { "files.encoding": "windows1252" }, "[cpp]": { "files.encoding": "windows1252" }, Deve ficar como nesse exemplo: Credit By Lost
  14. No geral esta bem legal. Gostei dos efeitos etc.. porem acho que deve melhorar a fonte nos 14 segundos, de resto eu não mudaria nada.
  15. Com essa quest você vai ouvir exemplo "Olá bem vindo a cyber gamers" bom jogo bla bla bla. Vai em root > game.py e procure "mall" : self.__InGameShop_Show, Adicione abaixo #QUEST_SONGS BY LOST "welcome" : self.welcome_quest, #END OF QUEST_SOUND BY LOST Agora vai até o final e adicione: #QUEST_SOUND BY LOST def welcome_quest(self): snd.PlaySound("sound/ui/welcome.wav") #END OF QUEST_SOUND BY LOST Agora vamos a quest. ---------------------------------------------- --Criador: Lost --Origem: CYBERGAMERS --(Lua): Source Code ---------------------------------------------- quest give_basic_weapon begin state start begin when login begin cmdchat("welcome") blablabla.. Resumindo, com ctz você deve ter a quest de inicio etc.. então basta você acrescentar: cmdchat("welcome") Link app Android storyteller voice: https://play.google.com/store/apps/details?id=br.com.escolhatecnologia.vozdonarrador&hl=en Converte mp3 to wav: https://online-audio-converter.com/ Credit: By Lost Enjoy
  16. O seu argumento é valido, pois a estrutura incompatível pode sim impedir que ele descompacte o ficheiro etc.. mais certamente ele esta usando um dump totalmente desatualizado para files 40k em fim.. quanto as chaves é bem improvável que seja isso pois só alguns servidores alteram as keys para mob e item_proto.. e files publicas como esta certamente não é o caso.. para finalizar eu acho que ele não vai entender nada do que você explicou. Quanto a você falar que ele por ser brasileiro ele é um ignorante (burro) você acabou de cometer um crime e uma intolerância, que por si só deve ser tratado por um psicólogo. Isso ai beira o nazismo se me permite dizer. Ofensas a uma pessoa por sua nacionalidade é uma coisa muito brutal. Eu penso que isso ai deve te custar uma punição e uma consulta com um psicólogo. Se esta comunidade tem intolerância a brasileiros então que deixe bem claro que brasileiros não são bem vindos. Sim eu me senti muito ofendido e sim esta não é a primeira vez que eu vejo isto por aqui, como já vi membros aqui dizer a frase "É por isso que escravizamos vocês". Sem +, aqui um burro brasileiro te ensinando modos humanos de ser. @p0w3r0ff
  17. Olá comunidade! Vou deixar aqui a minha quest que fiz para a manutenção para servidores de metin2. Bom essa quest funciona da seguinte forma, você deve alterar o "NomeDoChar" para o nome do seu char GM de confiança.. em seguida somente com ele vai até o npc guarda da praça para habilitar a sua manutenção.. Então vai escolher o tempo para desligar todos os player e em seguida vai escolher se o seu char GM vai ficar online durante esse processo.. ou seja? todos vão ficar inativo: status: "SHUTDOWN" Porem o seu char GM ficará com status "OK" Em seguida volte a reiniciar a sua maquina e logar com essa conta e ficara ativo e todos os players que estão OK não conseguiram logar.. quando terminar a manutenção volte novamente ao NPC e clique em terminar a manutenção e todos que estavam SHUTDOWN vai voltar para OK.. isso porque a query tem 1 filtro "WHERE" para que não volte também os banidos etc.. Só tem uma OBS.. que foi para mim esta quest então eu tenho uma função no meu site script em php que desabilita o cadastro assim evita de criar conta durante o processo e vim como status OK e consiga logar.. mais pode te ajudar de alguma forma ok? Claro que pode ser feito algumas melhorias como exemplo verificar no php se o server esta em manutenção caso esteja a conta é criada porem ao invés de OK vai para SHUTDOWN.. mais como eu disse a quest foi feita para mim e assim já me atende. Espero ter ajudado. ---------------------------------------------- --Criador: Lost --Origem: NÃO IMPORTA --(Lua) Source Code ---------------------------------------------- quest manutencao begin state start begin when guild_man1.chat."Manutenção" or guild_man2.chat."Manutenção" or guild_man3.chat."Manutenção" with pc.get_name() == "NomeDoChar" begin say_title("Manutenção:") say("") say("Quer aplicar manutenção?") say("Então escolha opção adequada!") say("") local s = select("Ativar 10 Minutos", "Ativar Agora!","Terminar Manutenção!", "Sair") if s == 1 then timer("shutdown1", 1) local res1, res2 = mysql_direct_query("select * from account.account;") mysql_direct_query("UPDATE account.account SET account.status='SHUTDOWN' WHERE status='OK'") syschat("O Estado do servidor foi alterado.") say_title("Manutenção:") say("") say("Olá Administrador, você deseja ficar ativo?") say("") local a = select("Sim", "Não") if a == 1 then local res1, id = mysql_direct_query("select * from account.account;") mysql_direct_query("UPDATE account.account SET account.status='OK' WHERE status='SHUTDOWN' limit 1;") syschat("você ficará ativo durante a manutenção.") end if a == 2 then return end end if s == 2 then timer("shutdown7", 1) local res1, res2 = mysql_direct_query("select * from account.account;") mysql_direct_query("UPDATE account.account SET account.status='SHUTDOWN' WHERE status='OK'") syschat("O Estado do servidor foi alterado.") say_title("Manutenção:") say("") say("Olá Administrador, você deseja ficar ativo?") say("") local a = select("Sim", "Não") if a == 1 then local res1, id = mysql_direct_query("select * from account.account;") mysql_direct_query("UPDATE account.account SET account.status='OK' WHERE status='SHUTDOWN' limit 1;") syschat("você ficará ativo durante a manutenção.") end if a == 2 then return end end if s == 3 then local res1, res2 = mysql_direct_query("select * from account.account;") mysql_direct_query("UPDATE account.account SET account.status='OK' WHERE status='SHUTDOWN'") syschat("A manutenção foi terminada.") end if s == 4 then return end end when shutdown1.timer begin notice_all("Atenção !!!") notice_all("Manutenção: O servidor será desligado em 10 minutos!") notice_all("Efetue logout para evitar que itens sejam perdidos!") timer("shutdown2", 60*5) end when shutdown2.timer begin notice_all("Atenção !!!") notice_all("Manutenção: O servidor será desligado em 5 minutos!") notice_all("Efetue logout para evitar que itens sejam perdidos!") timer("shutdown3", 60*3) end when shutdown3.timer begin notice_all("Atenção !!!") notice_all("Manutenção: O servidor será desligado em 2 minutos!") notice_all("Efetue logout para evitar que itens sejam perdidos!") timer("shutdown4", 60) end when shutdown4.timer begin notice_all("Atenção !!!") notice_all("Manutenção: O servidor será desligado em 1 minuto!") notice_all("Efetue logout para evitar que itens sejam perdidos!") timer("shutdown5", 30) end when shutdown5.timer begin notice_all("Atenção !!!") notice_all("Manutenção: O servidor será desligado em 30 segundos!") notice_all("Efetue logout para evitar que itens sejam perdidos!") timer("shutdown6", 15) end when shutdown6.timer begin notice_all("Atenção !!!") notice_all("Manutenção: O servidor será desligado em 15 segundos!") notice_all("Para mais informações acesse: www.nomedoseuserver.org") timer("shutdown7", 5) end when shutdown7.timer begin command("shutdown") end end end
  18. Não li e não lerei e já cansei, como eu disse tantas outras x eu fiz a quest para mim e se adaptar a mim e partilhei para quem quiser usar pode usar de forma a se adaptar, como por exemplo usar um id account mais esta a entrar em outra questão que não é a questão. linha 1 limit1 vai funcionar., se quiser usar e fazer uso e o sua conta é a 150 vai usar o id account como vc mesmo disse isso é obvio.. mais vou dizer repetidamente foi feito a se adaptar a mim, se fosse mesmo para deixar do jeito de usar era mais complexo que isso. Não estou mesmo afim de explicar o obvio.. já que és MOD da comunidade e nós 2 sabemos muito bem quem tu és... e Eu sou o dono do tópico por favor. "Obs: 1º questão a quest deve funcionar e funciona mostrei nos print; 2 questão quem quiser usar mais de uma forma diferente ou corrigir e melhorar etc.. faça uso do seu braço e arrume.. assim como muitas outras coisas." É uma mania muito feia de querer tudo a 100% a seu gosto não ao gosto de quem o fez. Pois a mim esta a 100% se queres melhor faça melhor e use a sua versão que mau tem? nenhum acho digno. #closethistopic
  19. Passo1: Clico np NPC > Manutenção Passo2: Escolho a opção que for necessário: Ativar 10 minutos ou ativar agora vai me da essa opção: Se eu clicar em Sim todos do banco de dados vai ficar SHUTDOWN - o char GM selecionado. Ilustração abaixo: A mensagem abaixo vai aparecer para todos inclusive para o char GM selecionado, então vou reiniciar. para tirar o shutdown do server não do banco. 3º Clico em ativar agora veja o status do banco de dados: Antes: Depois: Em seguida vou reiniciar a maquina e ninguém alem de mim vai conseguir logar, mesmo que criem outra conta como falei no tópico principal criei uma função em php que impede todos de cadastrar e claro ficando com status OK. Logo vou logar com a conta GM depois de reiniciar o servidor e pah: Reiniciei o servidor e ainda continuam todos com status SHUTDOWN e me diz como ALGUEM VAI LOGAR!!!!! Agora vou terminar a manutenção: Vou no mesmo NPC e clicar terminar manutenção: tabela account: Sem precisar reiniciar o servidor todos ja podem logar. Impossível mesmo ser mais claro que isso juro que é mesmo impossível. Queres show queres chamar atenção para fortalecer o ego, não queria video, não queria prova não queria skype só queria mesmo ter razão mais não quis ver ou mostrar na pratica onde estava mau.. Logo volto a dizer, as X pessoas estão mais dispostas a te criticar que te ajudar talvez pelo ego e prazer de ser melhor que alguém. Feliz natal.
  20. "Para não falar que executar uma query dessas num servidor com um bom valor de contas criadas dá lag..." Mais é muito importante indexar as consultas que passam de 100 simultaneamente dependendo da sua maquina. Ao menos eu uso dessa forma para optimizar sua consulta. Justamente a mensagem vai pedir a todos para DESLOGAR D E S L O G A R, não importa se dar lag não vai ter ninguém a jogar para ter lag.... "Ou ainda não entendes-te? Este comando mesmo com o status da conta alterado não vai deixar NINGUÉM entrar..." 1º ativo a quest e coloco todos shutdown, porem informo que quero o GM online, então todos menos o GM vai ficar status SHUTODOWN. 2º começa contar o tempo: 10 minutos depois executa o shutdown ( vai colocar todos offline e até os gm). 3º reinicio a maquina e muda de off para shutdown nos status quando o player logar vai mostrar "Servidor em manutenção bla bla bla" porem o char GM vai logar porque o status esta OK. Fim desisto.
  21. Nessa linha todas as contas inclusive a do GM vai ficar SHUTDOWN: mysql_direct_query("UPDATE account.account SET account.status='SHUTDOWN' WHERE status='OK'") Logo em seguida você vai ter uma pergunta: say("Olá Administrador, você deseja ficar ativo?") mysql_direct_query("UPDATE account.account SET account.status='OK' WHERE status='SHUTDOWN' limit 1;") Então nessa linha você muda seu char GM de SHUTDOWN para OK, assim quando reiniciar esse e somente esse char vai poder logar. Isso porque eu coloquei limit 1 na minha linha. Então quando terminar a manutenção vai ao NPC terminar a manutenção: mysql_direct_query("UPDATE account.account SET account.status='OK' WHERE status='SHUTDOWN'") Então todos que estão com o status SHUTDOWN vai para OK sem levar a OK os banidos etc.. isso porque o WHERE é um filtro. Mais é muito importante indexar as consultas que passam de 100 simultaneamente dependendo da sua maquina. Ao menos eu uso dessa forma para optimizar sua consulta. Off: Por acaso gostei disso kkkk Jσgαя мєтiи é αятє... รєя тσρ fαz ραятє... รєя cнαмαdσ dє cнєαтєя є мσdα... мαร cнєgαяєร à мiинα αlтυяα é fσdα!
  22. Vou tentar desenhar da melhor forma possivel: 1º vai o GM ao NPC logo ele clica em iniciar a manutenção . 2º quando chegar aos 10 minutos (mesmo que o player ou quem é que seja não esteja para receber a mensagem) não vai fazer diferença porque o char GM vai tomar DC e vai precisar logar e para isso precisa reiniciar a maquina uma vez que executou o comando "shutdown", então mesmo que alguém fique logado vai ser deslogado, a mensagem é só formalidade pode ser dar o shutdown, vocês se apegaram mensagem porem a principal funcionalidade é o banco de dados. "Nem quero imaginar o stress que isto vai causar na máquina com tanto acesso à db, ainda por cima a ir buscar a account.account inteira." Isso deve ser problema a quem programa de uma forma errônea, em vista que você pode e deve utilizar indexar as consultas grandes no banco de dados tão logo não vai ter qualquer problema. "Basicamente, deverias usar server_timers em vez de timers, visto que os timers são para a personagem, se fores abaixo ou te teleportares o temporizador para, o que não acontece com os timers..." Estou pleno de acordo com o que tu disse, deveria ser assim mais é capricho por hora, uma vez que meu char GM que vai ficar online precisa relogar vou precisar reiniciar a maquina então todos vão ficar off. "Btw, esse status SHUTDOWN não te faz nada, o comando shutdown não deixa entrar ninguém, nem mesmo gm's com esse status. Qualquer status diferente de OK vai sempre dar erro..." Nessa parte falou enorme besteira, uma vez que se você tivesse ao menos olhado a questão vai ver a opção, "deseja ficar online" logo o GM vai mudar de SHUTDOWN para OK. A função SHUTDOWN você pode definir de forma adequada uma mensagem que o servidor esta em manutenção; Bom acho que mais desenhado e perca de tempo que isso não tem. Teste.
  23. Não precisa me ensinar a fazer quest pois tenho humildade de verificar e se for o caso voltar é corrigir pois foi a única coisa útil que disse de resto só foi ego e mais ego.. passar bem.
  24. Novamente nada com nada. Obrigado. E ainda deixo a vc 1 like pelo aparente desespero de se ter 1.