-
Content Count
231 -
Joined
-
Last visited
-
Days Won
9
Owsap last won the day on June 12 2021
Owsap had the most liked content!
About Owsap
-
Rank
Quite
- Birthday 09/02/1997
Métodos de contato
-
Website URL
https://owsap-productions.com/
Informação do Perfil
-
Localizaçao
Macaronésia
-
Sexo
Cyberiano
-
Sobre mim
I'm not your friend.
-
Bygaroto reacted to a file: EterPack Key Converter
-
aneccy reacted to a post in a topic: Painel De Gm Avançado By Owsap
-
Yesman77 reacted to a file: M2 Gameforge Jin Set
-
Bom dia meu amigo , esse seu sistema de painel de gm é excelente porem to com 1 probleminha !!
tipo o sistema de dia e noite automatico nao estao funcionando !! e quando eu instalo essa quest de painel de gm meu sistema de pets e de montorias buga !! Consegui me ajudar ??
desde já agradeço !! -
KrayserG reacted to a post in a topic: Overfall2 Full Pack
-
@Metin2 reacted to an answer to a question: Licença no client 40k ?
-
VzOhMG reacted to an answer to a question: Criar botão e/ou dar função a ele
-
Owsap started following PEDIDO, COMO EU INSTALO AS LIBS QUE FALTAM?, Criar botão e/ou dar função a ele and and 2 others
-
pkg install -y openssl compat8x-amd64
-
Aqui tens um exemplo, espero que te ajude. # # Title: Expanded Window # Date: 2021.03.16 # Author: Owsap import app import ui BUTTON_COUNT = 4 class TestWindow(ui.BoardWithTitleBar): def __init__(self): ui.BoardWithTitleBar.__init__(self) self.isLoaded = False self.btnExpanded = False self.btnList = [] if not self.isLoaded: self.__LoadBoard() def __del__(self): ui.BoardWithTitleBar.__del__(self) def __LoadBoard(self): self.SetSize(95, 210) self.SetCenterPosition() self.AddFlag('movable') self.SetTitleName("Test") self.SetCloseEvent(self.Close) textLineGuide = ui.TextLine() textLineGuide.SetParent(self) textLineGuide.SetPosition(45, 185) textLineGuide.SetText(".") textLineGuide.Show() self.textLineGuide = textLineGuide btnExpand = ui.Button() btnExpand.SetParent(self) btnExpand.SetUpVisual("d:/ymir work/ui/public/small_button_01.sub") btnExpand.SetOverVisual("d:/ymir work/ui/public/small_button_02.sub") btnExpand.SetDownVisual("d:/ymir work/ui/public/small_button_03.sub") btnExpand.SetText("+") btnExpand.SetPosition(25, 160) btnExpand.SetEvent(self.__OnClickExpand) btnExpand.Show() self.btnExpand = btnExpand (xLocal, yLocal) = self.btnExpand.GetLocalPosition() btnGroup = ui.Window() btnGroup.SetParent(self) btnGroup.SetPosition(xLocal, yLocal - 0 - (30 * BUTTON_COUNT)) btnGroup.SetSize(40, 30 * BUTTON_COUNT) btnGroup.Hide() self.btnGroup = btnGroup for btnIdx in xrange(BUTTON_COUNT): btn = ui.Button() btn.SetParent(self.btnGroup) btn.SetUpVisual("d:/ymir work/ui/public/small_button_01.sub") btn.SetOverVisual("d:/ymir work/ui/public/small_button_02.sub") btn.SetDownVisual("d:/ymir work/ui/public/small_button_03.sub") btn.SetText("{}".format(btnIdx)) btn.SetPosition(0, (30 * btnIdx)) btn.SetEvent(lambda arg = btnIdx: self.__OnClickExpandedBtn(arg)) btn.Show() self.btnList.append(btn) def __OnClickExpand(self): if not self.btnExpanded: self.btnExpanded = True self.btnGroup.Show() if self.btnExpand: self.btnExpand.SetText("-") else: self.btnExpanded = False self.btnGroup.Hide() if self.btnExpand: self.btnExpand.SetText("+") if self.textLineGuide: self.textLineGuide.SetText(".") def __OnClickExpandedBtn(self, arg): if self.textLineGuide: self.textLineGuide.SetText("{}".format(arg)) def Open(self): self.Show() def Close(self): self.Hide() def OnPressEscapeKey(self): self.Close() return True def OnPressExitKey(self): self.Close() return True
-
Por padrão já existe uma função em que verifique a versão do cliente com a versão do servidor, funciona por tempo, ou seja, se a data de execução for maior que a data limite que está configurada no servidor, o jogador será desconectado do servidor. Agora fica como queres verificar esta "chave" ou data de limite da versão / "licença". /// 1. @ Server/Game/input_login.cpp // Procura if (g_bCheckClientVersion) { [ ... ] } // Altere tudo por (verificar por data limite) if (g_bCheckClientVersion) { sys_log(0, "VERSION CHECK %s %s", g_stClientVersion.c_str(), d->GetClientVersion()); if (!d->GetClientVersion()) { d->DelayedDisconnect(10); } else { if (d->GetClientVersion() >= g_stClientVersion) { ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("Ŭ¶óÀ̾ðÆ® ¹öÀüÀÌ Æ²·Á ·Î±×¾Æ¿ô µË´Ï´Ù. Á¤»óÀûÀ¸·Î ÆÐÄ¡ ÈÄ Á¢¼ÓÇϼ¼¿ä.")); d->DelayedDisconnect(0); LogManager::instance().HackLog("VERSION_CONFLICT", ch); sys_log(0, "VERSION : WRONG VERSION USER : account:%s name:%s hostName:%s server_version:%s client_version:%s", d->GetAccountTable().login, ch->GetName(), d->GetHostName(), g_stClientVersion.c_str(), d->GetClientVersion()); } } } else { sys_log(0, "VERSION : NO CHECK"); } // Ou altere por (verificar um valor fixo) if (g_bCheckClientVersion) { sys_log(0, "VERSION CHECK %s %s", g_stClientVersion.c_str(), d->GetClientVersion()); if (!d->GetClientVersion()) { d->DelayedDisconnect(10); } else { if (0 != g_stClientVersion.compare(d->GetClientVersion())) { ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("Ŭ¶óÀ̾ðÆ® ¹öÀüÀÌ Æ²·Á ·Î±×¾Æ¿ô µË´Ï´Ù. Á¤»óÀûÀ¸·Î ÆÐÄ¡ ÈÄ Á¢¼ÓÇϼ¼¿ä.")); d->DelayedDisconnect(0); LogManager::instance().HackLog("VERSION_CONFLICT", ch); sys_log(0, "VERSION : WRONG VERSION USER : account:%s name:%s hostName:%s server_version:%s client_version:%s", d->GetAccountTable().login, ch->GetName(), d->GetHostName(), g_stClientVersion.c_str(), d->GetClientVersion()); } } } else { sys_log(0, "VERSION : NO CHECK"); } Eis algumas coisas que tens que considerar também; no ficheiro Server/Game /config.cpp tens que ativar esta verificação e também tens que alterar a "chave" ou data limite da versão / "licença". /// 1. @ Server/Game/config.cpp // Procura e confirme, altere g_stClientVersion conforme as tuas preferências. bool g_bCheckClientVersion = true; // true = verificar | false = não verificar std::string g_stClientVersion = "1640998800"; // Sat Jan 01 2022 01:00:00 GMT+0000 Também podes criar um ficheiro "VERSION" junto a ficheiro "CONFIG" no diretório dos teus canais e adicionar o valor lá em vez de modificares o código fonte sempre que queres alterar a "chave" ou data limite da versão / "licença". Para isso também deves confirmar que essa função seja chamada. /// 1. @ Server/Game/config.cpp // Procura LoadValidCRCList(); LoadStateUserCount(); // Adiciona abaixo LoadClientVersion(); Finalmente na source do teu cliente terás que fazer algumas alterações também. /// 1. @ Client/UserInterface/PythonNetworkPhaseGame.cpp // Procura strncpy(kVersionPacket.timestamp, "1215955205", sizeof(kVersionPacket.timestamp) - 1); // # python time.time ¾ÕÀÚ¸® // Altere para (verificar por data limite) strncpy(kVersionPacket.timestamp, static_cast<std::time_t>(std::time(0)), sizeof(kVersionPacket.timestamp) - 1); // Ou altere para (verificar um valor fixo) strncpy(kVersionPacket.timestamp, "1234567890", sizeof(kVersionPacket.timestamp) - 1); O que deves saber sobre essas alterações. 1. Nem todos os clientes em que toca o código fonte são iguais, por isso deves-te guiar pela semelhança do código. 2. Este método apenas desconecta o jogador após entrar no jogo caso haja conflito entre a "chave" ou data limite da versão / "licença". 3. Há melhores formas de verificares o que pretendes, este é apenas o mais semelhante à tua pergunta e o mais simples que já existe no código fonte. Cumprimentos, Owsap.
-
98Barror reacted to a post in a topic: Overfall2 Full Pack
-
JooW reacted to a post in a topic: Overfall2 Full Pack
-
.Rui reacted to a post in a topic: Overfall2 Full Pack
-
RafaelHack reacted to a file: Página Web 2007 Oficial (Gameforge) By Owsap
-
Depende onde tens o boss mas em geral, se o boss for "padrão" e estiver no seu mapa official é da seguinte forma, Nos ficheiros do teu servidor, localizado no mapa que contém o boss, no ficheiro boss.txt ou regen.txt, depende onde possa estar. Resumindo, ../share/locale/x/map/(nome_do_mapa)/boss.txt ou ../share/locale/x/map/(nome_do_mapa)/regen.txt Irás encontrar o boss pelo ID no ficheiros de texto. Exemplo: Vou alterar o tempo de respawn da Tartaruga no deserto. 1. ../share/locale/master/map/metin2_map_n_desert_01/boss.txt Irás encontrar uma linha separada por vários valores. m 869 658 100 100 0 0 7200s 100 1 2191 Como podes reparar tens um valor com "s", neste caso 7200s. Então tens aí o valor do respawn do boss em segundos. Depois de mudares o valor, reinicia o servidor.
-
Provalvalemnte não tens a função "ThinBoardClosed" no "ui.py". import ui import wndMgr class AllenTeste(ui.Window): def __init__(self): ui.Window.__init__(self) self.__LoadMainBoards() def __del__(self): ui.Window.__del__(self) def __LoadMainBoards(self): self.FunctionalBoard = ui.ThinBoard() self.FunctionalBoard.SetParent(self) self.FunctionalBoard.SetSize(100, 300) self.FunctionalBoard.SetPosition(0, 0) self.FunctionalBoard.Show() start = AllenTeste() start.Show()
-
Owsap changed their profile photo
-
Antes de tudo, eu sei que isso é um pouco inútil, mas para ativar e desativar o efeito a piscar nos botões, decidi usar a função de flash padrão, porque não conhecia uma maneira mais fácil. Como um exemplo, aqui está uma demonstração do efeito do flash.
-
Em char_item.cpp // Procura em "case ITEM_METIN:" // ¼® È®·ü if (number(1, 100) <= 30) // Substitui por // ¼® È®·ü if (number(1, 100) <= 100)
-
Ocultar arma ao atuar emoções Repositório Git common/service.h game/char.cpp game/char.h game/cmd_emotion.cpp
-
Old asf
-
Correção de código de cor no quadro de avisos e de dicas (notice / big_notice) Antes: Depois: root/constInfo.py root/uiTip.py
- 2 replies
-
- código de cor
- python
-
(and 5 more)
Tagged with:
-
Owsap reacted to a file: Spotify premium - IOS/Android
-
Comando de GM para derrotar todos os jogadores à sua volta. game/src/cmd.cpp game/src/cmd_gm.cpp
-
O 1º com um fundo mais escuro dava aquele extra toque.
-
locale\ui\webwindow.py