…Los†
-
Content Count
321 -
Joined
-
Last visited
-
Days Won
11
Posts posted by …Los†
-
-
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 -
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 -
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
'PACI reacted to this -
Em 13/04/2021 at 22:14, Lucas Sales disse:BOM DIA
BOA TARDE
BOA NOITE !
- AMIGOS, ESTOU COM PROBLEMA NA HORA DO PERSONAGEM ENTRAR NO SERVIDOR.
- ESTAMOS EM FASE DE TESTE VIA HAMACHI
- JA TENTAMOS TODOS OS PORTMAPS POSSIVEL E NADA
- A ENTRADA É DO SHURA
- OS IPS JA ESTA TUDO OK DENTRO DO ROOT.
- NÃO ESTAMOS CONSEGUINDO DESCOBRIR QUAL É O PROBLEMA.
- ALGUEM PODERIA NOS AJUDAR DEIXANDO ALGUMA MSG OU ALGO QUE POSSA SER!
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.
-
Boa sorte com teu projeto.
-
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. -
Em 18/10/2020 at 18:13, diegowett disse:parabens mano vc sabe como muda isso pelo binario e no source?
Alterar ou remover o Lv. na source - Tutoriais e Dicas - Cyber-Gamers (cyber-gamers.org)
-
Olá a todos!
É um tut muito simples ok?
Vai na source do cliente (Binário) e procure pelo arquivo: UserInterface e depois InstanceBaseEffect.cppProcure 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
-
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 · GitHubarty@metin and Edson Bezerra reacted to this -
7 horas atrás, tetecow disse:Obrigado, tópico resolvido!
+1
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. -
7 horas atrás, tetecow disse:não consegue atender a esta solicitação no momento.
HTTP ERROR 500
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.'ŞŦŘƗƗҜ€Ř' reacted to this -
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'ŞŦŘƗƗҜ€Ř' reacted to this -
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.s1ckGAMIN reacted to this -
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 -
21 minutos atrás, Karbust disse:Não sei se sabes, mas tanto na source do cliente, do game e do dump proto existe uma struct com os campos. Existe tanto para itens como mobs, e têm de coincidir, senão dá barraca.
No cliente basta procurar por isto:
typedef struct SMobTable { DWORD dwVnum; char szName[CHARACTER_NAME_MAX_LEN + 1]; char szLocaleName[CHARACTER_NAME_MAX_LEN + 1]; BYTE bType; // Monster, NPC BYTE bRank; // PAWN, KNIGHT, KING BYTE bBattleType; // MELEE, etc.. BYTE bLevel; // Level BYTE bSize; DWORD dwGoldMin; DWORD dwGoldMax; DWORD dwExp; DWORD dwMaxHP; BYTE bRegenCycle; BYTE bRegenPercent; WORD wDef; DWORD dwAIFlag; DWORD dwRaceFlag; DWORD dwImmuneFlag; BYTE bStr, bDex, bCon, bInt; DWORD dwDamageRange[2]; short sAttackSpeed; short sMovingSpeed; BYTE bAggresiveHPPct; WORD wAggressiveSight; WORD wAttackRange; char cEnchants[MOB_ENCHANTS_MAX_NUM]; char cResists[MOB_RESISTS_MAX_NUM]; DWORD dwResurrectionVnum; DWORD dwDropItemVnum; BYTE bMountCapacity; BYTE bOnClickType; BYTE bEmpire; char szFolder[64 + 1]; float fDamMultiply; DWORD dwSummonVnum; DWORD dwDrainSP; DWORD dwMonsterColor; DWORD dwPolymorphItemVnum; TMobSkillLevel Skills[MOB_SKILL_MAX_NUM]; BYTE bBerserkPoint; BYTE bStoneSkinPoint; BYTE bGodSpeedPoint; BYTE bDeathBlowPoint; BYTE bRevivePoint; } TMobTable;
Basta haver campos a mais ou a menos para o game não iniciar, o cliente crashar e o dump proto não converter de txt para mob_proto (ou item_proto) e dar erro.
Depois ainda existem estas chaves:
static DWORD s_adwMobProtoKey[4] = { 4813894, 18955, 552631, 6822045 }; static DWORD s_adwItemProtoKey[4] = { 173217, 72619434, 408587239, 27973291 };
Estas só interessam no cliente, se o dump proto tiver chaves diferentes, o cliente não lê e dá erro.
O que é que eu não sei e que estou a falar mesmo?
Tu é que és o BR aqui, portanto quem não pensa és tu, provavelmente nem nunca deves ter usado a source.
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
-
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
-
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.
-
"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.
-
11 minutos atrás, Karbust™ # PT disse:E agora diz-me, quando é que o status de cada conta vai ser mudado para SHUTDOWN? o.O
SHUTDOWN é o status definido globalmente para o servidor, todas as contas continuam com o status que tinham antes...
Portanto, o status do GM vai continuar como OK, mas ele não vai poder continuar no jogo visto que o comando shutdown vai, como o nome diz, desligar o servidor (desliga o jogo, não a máquina)...
Vai ver a source e tenta compreende-la e depois falamos...
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α! -
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..."
Em 16/11/2018 at 20:36, Karbust™ # PT disse: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...
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...
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.
-
2 minutos atrás, ruizinho-o disse:Nada com nada? Já te disse onte está o bug da quest pah, não sabes ler? "Então faça o seguinte, enquanto esses timers funcionam, altere personagem e depois entre no jogo."
Eu quando tiver tempo mando-te essa quest corrigida.
Não tens de agradecer. Boa noite.
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.
-
1 minuto atrás, ruizinho-o disse:Então faça o seguinte, enquanto esses timers funcionam, altere personagem e depois entre no jogo.
Não é critica patética, patético é essa quest, que foi aqui publicada e futuramente poderá ser usada e está mal feita e com problemas.
Sem mais de momento, mais a mais, um letter não funciona só para mandar send_letter; utilizar uma function em que só mudava o local do tempo para evitar essas linhas todas dos timers não ficava mal. HardCode ao mais alto nível. lmao. Se o que te estou a dizer é demais para o que percebes, que penso que não seja nada demais, desculpe.
Novamente nada com nada.
Obrigado. E ainda deixo a vc 1 like pelo aparente desespero de se ter 1.
-
3 horas atrás, ruizinho-o disse:Código péssimo e muita coisa que não faz sentido.
Mau uso dos timer's, devias meter uma quest flag dentro de um letter para quando alterares , teleportares ou saíres do jogo em geral com a personagem os timer's não serem perdidos.
Selecionas tudo (*) das tabelas sem necessidade nenhuma, em quest não tem mal (apesar de não ser necessário), mas em C++ tinhas sempre possibilidade dependesse do local de levares sql inj.
camon,
if == 1 then
if == 2 then
if == 3 then
---
say("XXSA")
say("XX")
--
2014?
A forma da quest não está incorreta o que tu diz esta desnecessário penso eu ser os ("") ah quem goste de programar de cada forma chegando a cada resultado.
A quest não funciona em Letter você não percebeu mais funciona no npc.
outra questão pode se usar [ENTER] em uma conversa do BOX ou pode de usar () em say a alguns que usam say2.. Bom se a mim agrada say ("") será mesmo que devo mudar para agradar alguém? (nops).
A questão dos IF? novamente pode ser usar 1 if e outros elseif com a utilização de apenas 1 end e novamente vou entrar no mesmo argumento a mim assim agrada portanto :)
Portanto chega devagar na humildade conheça a comunidade e agrega algum comentário construtivo pois esse é quase ofensivo e opressor.
Não tem como pular o time em vista que o comando shutdown poe abaixo todos os Channel. mesmo que desligue o time não é importante é sim o shutdown final.
Mais nada construtivo ou que ee agrega o comentário que por hora mais pareceu a criticar, talvez pode se julgar crítico etc mais não tem competência para tal, pois se tivesse percebido não fiz a quest a agradar a você ou a outro é sim a mim.
Caso queira uma quest vide 2018 faça você mesmo, pois desta forma ja me agrada e me resulta então já basta.
Na próxima crítica patética (como deve ser sua life) vê se antes alguém se preocupou em agradar seu fino paladar ou simplesmente quis ajudar.
-
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
Ativar Rates/Bônus Automático (EDIT 2021)
in Quests
Posted
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.