antiblock
diamwall

Mário.

Membro Elite
  • Content Count

    155
  • Joined

  • Last visited

  • Days Won

    11

Reputation Activity

  1. Like
    Mário. reacted to Barbiee. in LSM2 - Servidor Player versus Player Português - 27/08/2018 às 19:00   
    A ver vamos newbies.
  2. Like
    Mário. got a reaction from Vanessa in LSM2 - Servidor Player versus Player Português - 27/08/2018 às 19:00   
    Site: https://thelsm2.com/
    Discord: https://discord.gg/RVTypDH
    Download estará disponível no dia 26/08/2018 às 16h.
    Os registos estarão disponíveis no dia 27/08/2018 às 14h.
     
     
    Servidor estará disponível no dia 27/08/2018 às 19h.
     
  3. Like
    Mário. reacted to Barbiee. in LSM2 - Servidor Player versus Player Português - 27/08/2018 às 19:00   
    Qual a meta de €€ para obter até meio de setembro? 
    É que os festivais caros já se foram :x 

    P.S - No tópico diz dia 27-08-2018 e só abre a dia 28? O.o
  4. Like
    Mário. got a reaction from Vanessa in LSM2 - Servidor Player versus Player Português - 27/08/2018 às 19:00   
    Site: https://thelsm2.com/
    Discord: https://discord.gg/RVTypDH
    Download estará disponível no dia 26/08/2018 às 16h.
    Os registos estarão disponíveis no dia 27/08/2018 às 14h.
     
     
    Servidor estará disponível no dia 27/08/2018 às 19h.
     
  5. Like
    Mário. reacted to BPinto98 in LSM2 - Servidor Player versus Player Português - 27/08/2018 às 19:00   
    Boa sorte com o projeto!
     

     
    Bronze FTW!
  6. Like
    Mário. got a reaction from Vanessa in LSM2 - Servidor Player versus Player Português - 27/08/2018 às 19:00   
    Site: https://thelsm2.com/
    Discord: https://discord.gg/RVTypDH
    Download estará disponível no dia 26/08/2018 às 16h.
    Os registos estarão disponíveis no dia 27/08/2018 às 14h.
     
     
    Servidor estará disponível no dia 27/08/2018 às 19h.
     
  7. Like
    Mário. got a reaction from Vanessa in LSM2 - Servidor Player versus Player Português - 27/08/2018 às 19:00   
    Site: https://thelsm2.com/
    Discord: https://discord.gg/RVTypDH
    Download estará disponível no dia 26/08/2018 às 16h.
    Os registos estarão disponíveis no dia 27/08/2018 às 14h.
     
     
    Servidor estará disponível no dia 27/08/2018 às 19h.
     
  8. Like
    Mário. reacted to PennyDreadful in Aniversário PACInub   
    Hoje, 21-08-2018 é o aniversário do PACInub.
    Parabéns feioso.
     

    Este bolo tem tantas velas como tu em idade mental <3
  9. Like
    Mário. reacted to 'PACI in Resultados das Candidaturas   
    Boas comunidade.
     
    As candidaturas para a equipa Cyber-Gamers encerraram.
    Seguem-se os novos integrantes:
    @BPinto98 - Trial Moderador @Portugapt - Trial Moderador @Frufru - Trial Moderador @Orangii - Designer   Agradecemos a todos os membros que tentaram a sua sorte e se candidataram e desejamos muita sorte e trabalho a estes novos caloiros.   Cumprimentos, Equipa Cyber-Gamers.
  10. Like
    Mário. got a reaction from boloca in 2 Funções via Quest   
    warp_empire = function(index, empire) -- 1º ideia if is_test_server() then -- Em caso do servidor estar em test_server if pc.get_map_index() ~= index then syschat(string.format("Não serás teleportado porque o index do teu mapa é %s e é da função é %s"), pc.get_map_index(), index)) return end end if pc.get_map_index() == index then if pc.get_empire() == empire then warp_to_village() end end end quest warp_empire begin state start begin when kill with npc.get_race() == 101 begin -- O que acontece ao matarem um cão --[[ 1: Reino Vermelho 2: Reino Amarelo 3: Reino Azul Isto faz só com que apenas os jogadores do reino azul sejam teleportados. 43 representa o index do mapa, onde é que eles devem de estar para a ação acontecer. ]] warp_empire(43, 3) end end end  
    A segunda, podes fazer por source como o @Karbust™ # PT disse ou podes utilizar a função purge_area, que limita a área onde os mobs (npcs incluído) serão removidos.
     
    Não testado.
  11. Thanks
    Mário. got a reaction from Theji in [PvM][PT] CreativeMT2 - Fase Beta   
    O problema é que o teu PC não tem a resolução pedida pelo metin2: 800x600
    Isto faz com que apareça o erro, por muitas vezes que possas carregar no "Resolver problemas de compatibilidade".
    A solução reside na source do executável, no GrpDevice.cpp:
    if (!ms_kD3DDetector.Find(800, 600, 32, TRUE, &ms_iD3DModeInfo, &ms_iD3DDevInfo, &ms_iD3DAdapterInfo)) return CREATE_DETECT; Basta remover isto que já irás conseguir jogar, agora só depende do dono deste servidor.
     
     
    Na realidade chega.
    O lalaker1 não assume qual o número do HEADER_GC_ATTACK na comunicação do game to client, por isso que utiliza sempre o default.
  12. Upvote
    Mário. reacted to VMP. in Mais de 160 mil jovens portugueses não estudam nem trabalham   
    Isso é relativo.
    Já estive num andar de moradia no Cacém (T2) a pagar 300/mês, Já estive num T3 no Barreiro, junto ao cais, a pagar 250/mês.
    Neste momento encontro-me a pagar 300/mês por um T1 (Com 120m2) em Nogueira da Regedoura (Há 15 min de Espinho).
    Tanta choradeira por rendas altas, parece-me é mais que o povo português não se sabe mexer e procurar.
    Maior taxa de desemprego para quem tem baixa escolaridade?
    Neste caso creio que se chama de preguiça, pois sei com toda a certeza que conseguir um emprego nada tem a ver com isso, a não ser que vivam com a cabeça na Lua e não queiram trabalhar, apenas queiram "aquele" emprego.
  13. Upvote
    Mário. got a reaction from morfo2 in Mais de 160 mil jovens portugueses não estudam nem trabalham   
    Olá,
    Posso-vos comprovar (nada que já não saibam) que Lisboa é a cidade mais cara de Portugal.
    Trabalho numa agência imobiliária e tenho acesso a informações privilegiadas que o público geral não tem acesso.
     
    Todos os dados que irei publicar é verídico e reconfirmado por instituições que tratam da Análise Comparativa do Mercado.
    Os dados são do primeiro trimestre de 2017, por isso podemos dizer que é algo recente.
    Peguei no concelho de Sintra e Lisboa, respetivamente a freguesia de Cacém e de Benfica para estar na mesma linha de raciocínio que o @morfo2.
    Primeiro, é necessário saberem isto:
     
    Mínimo (Percentil 5): Normalmente são casas com mais de 30 anos, que não estão remodelados; Médio Baixo: É a média mais baixa de todas as ofertas no mercado; Médio: É a média de todas as casas no mercado; Médio Alto: É a média mais alta de todas as ofertas no mercado; Máximo: Normalmente são casas totalmente remodeladas.  
    Tendo isto em conta, vamos lá analisar:
     

     
    No concelho de Sintra, em média um T0 ~ T1 custa 436 euros e o máximo consegue chegar até aos 615 euros.
    Na freguesia do Cacém está dentro do que é esperado pelos preços praticados no concelho, 434 euros por um T0 ~ T1 a chegar aos 600 euros.
     

     
     

     
    Aqui é que é inacreditável, em média no concelho de Lisboa um T0 ~ T1 chega a custar 937 euros e pode subir até aos 1600 euros!
    Na freguesia de Benfica é +/- 150 euros mais barato, sendo o médio 730 euros e o máximo 1200.
     
    É absolutamente surreal o quanto um arrendamento é no concelho de Lisboa, é impossível uma pessoa com o ordenado mínimo sobreviver em Lisboa, mesmo que seja em uma casa com mais de 30 anos!
     
     
  14. Like
    Mário. reacted to p0w3r0ff in É com grande orgulho que vimos, por este meio, informar que abrimos oficialmente os nossos servidores.   
    Os nossos servidores encontram-se abertos!
     É com grande orgulho que vimos, por este meio, informar que abrimos oficialmente os nossos servidores.
    Impulsionados pelos objetivos de oferecer melhores condições à comunidade em geral, uma melhor experiência a todos os jogadores da Comunidade Portuguesa e de devolver a paixão à comunidade de eSports, decidimos avançar com o nosso projeto e fazer dele uma Multi-Gaming.
     
    A Cyber-Gamers é uma comunidade Multi-Gaming portuguesa que acredita em valores justos e honestos e que pretende deixar de lado a reputação contaminada de outras comunidades da mesma vertente, assim como explorar as áreas competitivas e cooperativas de vários jogos multiplayer, cujos âmbitos variam de FPS a RTS, de Casual a Simulation e de RPG a Arcade.
     
    Todos os nossos servidores possuem 128 tick-rate e são alojados em Portugal, o que possibilitará um jogo mais preciso e com maior responsabilidade nos padrões dos campeonatos mundiais. Servidores esses dedicados e hospedados pela Waac com o hardware mais recente e disponível no mercado. Os seus processadores Skylake Intel e memória DDR4 falam por si.
     
     
     

     

     
    Atualmente apenas os servidores de Counter Strike: Global Offensive se encontram disponíveis e, como podem comprovar, em fase Beta.
    Os restantes servidores de outros jogos encontram-se, ainda, em alterações, no entanto, a abertura destes poderá vir a ter o mesmo caminho que os servidores de Counter-Strike. Ou seja, passarão por uma fase Beta.
     
    Mas não são só os nossos servidores de CS:GO os que estão no ar!
     
     

     

     
    A comunicação é uma peça fundamental no mundo, e nada melhor que um servidor TeamSpeak oficial da Cyber-Gamers para usufruir de tal habilidade.

    O TeamSpeak da comunidade é uma área que abrange não só o ramo Gaming, mas que também preza pela convivência entre todos os seus membros, lembrando que nós, administração, também fazemos parte desse grande grupo de membros.
     
    Debates sobre qualquer assunto, desde a coisa mais banal e estúpida até o assunto mais sério e importante, e algum troll de vez em quando também não faz mal a ninguém!
    Por isso não penses duas vezes e passa por lá, assim que aderires poderás cheirar o bom ambiente e depressa te sentirás confortável.
     
     
    As nossas vontades, por vezes, são invariáveis, e o jogo em grupo é sempre mais divertido, pelo que se encontrares ou achares algum jogo que consideres interessante, dá-o a conhecer perante os restantes membros. Deste modo, de certeza, encontrarás alguém interessado em jogar contigo.
     
    Abrimos as candidaturas!
    Apesar confiarmos nas nossas habilidades e nas configurações atuais dos nossos servidores, procuramos ouvir a voz do povo. Isto é, obter o máximo feedback possível dos nossos membros, bem como sugestões, ideias, críticas construtivas e bug-reports, para que possamos, entre todos, desenvolver servidores de jogo ao agrado de todos, mas sobretudo para favorecer a convivência e entretenimento geral.Toda a ajuda é bem vinda, somos uma equipa independente composta por 8 voluntários e vamos precisar de mão de obra pesada, pelo que o tempo e a disponibilidade de qualquer pessoa, disposta a colaborar com o nosso projeto, é agradecida. Se achas que poderás contribuir, de alguma maneira, para ajudar a manter a comunidade e os seus servidores no ar, assim como apoiar o seu desenvolvimento futuro, comenta neste tópico e deixa o teu grão de areia.
     
    Mas não termina aí.
     
    O que mais prezamos é a integridade dos nossos membros e o respeito mútuo. Não faz sentido ter milhares de membros e não haver interação entre eles, e isso nós compreendemos. No entanto, exigimos que todos se comportem adequadamente, participando, assim, no bem estar geral da comunidade.
     
    Dito isto, as candidaturas encontram-se, a partir de agora, abertas!

    A média de idades dos integrantes da comunidade é de 21 anos. Apesar disso, a idade mínima para seres recrutado é de 16.
    Contudo, se achas que encaixas de alguma forma nos objetivos da comunidade, candidata-te na mesma. Possuímos alguns membros com idades inferiores à mínima estipulada que mostraram responsabilidade e motivação para nos acompanhar.
     
    Procuramos pessoas que não só estejam confiantes das suas habilidades, mas que também estejam dispostos a aprender.
    Todos os que queiram fazer parte da família, deverão passar por um período probatório, no qual avaliaremos a participação, comportamento, vontade de aprender, de conhecer novos jogos e o espírito de equipa dos mesmos.
     
    Se decidires juntar-te, deixa uma candidatura e marca presença no nosso Discord ou TeamSpeak. A presença em ambas plataformas de comunicação é mandatória, e a vossa candidatura apenas será considerada se se conetarem com frequência, e se integrarem na comunidade.
    Muitas das candidaturas recebidas anteriormente foram recusadas por não participarem desta forma.
     
    A nossa prioridade absulta é o bem estar de todos os membros. 
     
    Queremos membros ativos. 
    Queremos membros responsáveis. 
    Queremos chegar ao topo.
     
    Se estiveres interessado e motivado, então candidata-te e participa.
    Estamos à tua espera.
  15. Like
    Mário. reacted to Karbust in Cliente + server filles   
    Diz me lá onde a "Raim" tem a source? A source só saiu para o game 40k (adaptável para o 34k se se desativar os extras)
     
     
    Yeah yeah, faz isso, visto que "surce" é fixe...
     
    Aprende primeiro a falar de alguma coisa de útil e depois podes vir falar de "surces", tipo mudar as "estruturas os caminhos"
     
    Com 5 posts já andas a falar de mais e não dizes nada decente...
     
    Btw, ele chama-se martysama e não martim...
     
    BR sendo BR... (Nada contra BR's)
  16. Like
    Mário. reacted to 'PACI in [DUVIDA] erro na quest   
    local s ==* select ("Sim eu quero", "Não quero") == 1 then** if pc.count_item(70036) =<*** 50 then say("Olá "..pc.name.." Volte a dropar preguiçoso!") return say****("Que bom que optou por trocar pequeno gafanhoto!") say("Está aquis eu Baú Misterioso") pc.give_item2(50033, 1) pc.remove_item(70036, 1) notice_all("O jogador "..pc.name******" acabou de ganhar 1 Baú Misterioso do emo do Okio") end elseif***** == 2 then say("Ok fi do cão pode ir embora") return end  
    Esses são os teus erros:
    * A declaração de variáveis faz-se apenas com um único símbolo de igualdade (local s = x);
    ** Estás a tentar que à variável s lhe seja atribuído um valor mas para além disso tentas, ao mesmo tempo, executar a condição;
    ***  A simbologia que queres atribuir aí é: <= (menor ou igual);
    **** Abres um if e não o fechas;
    ***** Não estás a comparar nada aqui;
    ****** Faltam dois pontos antes de fechar com a aspa: "..pc.name.."
  17. Like
    Mário. reacted to Potato in Galeria Potato   
    Olá pexoas sejam muito bem vindas a minha galeria espectacular e nunca antes vista.
    Espero não ser uma concorrência para todos os outros designers aqui :3
    Minha primeira obra de arte é para o @nagatto :3
    P.s- Deixem pedidos :3

  18. Like
    Mário. reacted to WildEgo in [DESIGN] MyLastPvP Web UI   
    Feedback é aceite
     
    https://twitter.com/QQi1952501831
    https://www.youtube.com/WildEgo
  19. Upvote
    Mário. got a reaction from Snooke in Admin Whisper   
    Antes de começar com o tópico, se esperam algo complexo deste sistema, então poderão voltar para trás porque isto foi em apenas 1 hora de trabalho.
    Têm todo o direito de melhorar isto à vontade.
     
     
    Bem, eu ando a fazer alguns testes no que toca a performance entre quest-client e game-client e sendo sincero, quase ou pouco noto a diferença (já deu para entender que sou fanboy de lua certo?), apenas há 1 ~ 3 comandos extras a serem feitos.
     
    O que é este sistema?
    Isto dá-se como o nome de Admin Whisper (Mensagens de Equipa em português) e tem como objetivo enviar uma mensagem a todos os jogadores assim que entram pela primeira vez no jogo.
     
    Para que serve?
    Tal como disse acima, todos os jogadores (independentemente do canal - ou seja, poderão estar no CH1 como no CH2 -) irão receber sem qualquer tipo de problema ou latência.
     
    (Mensagem a ser enviada - No print não tem como ser visível mas ela pisca)

     
    (Conteúdo da mensagem)

     
    Requisitos:
    Python LUA  
    Client
     
    Procurem (game.py) por:
    "PlayMusic" : self.__PlayMusic,  
    Em baixo, adicionem:
    "admin_whisper" : self.AdminWhisper,  
    Procurem por:
    def __PlayMusic(self, flag, filename): flag = int(flag) if flag: snd.FadeOutAllMusic() musicInfo.SaveLastPlayFieldMusic() snd.FadeInMusic("BGM/" + filename) else: snd.FadeOutAllMusic() musicInfo.LoadLastPlayFieldMusic() snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)  
    Por baixo adicionem:
    def AdminWhisper(self, admin, text): # Nome a ser chamado txt = str(text) # A mensagem em si show = txt.replace("_", " ") # Os _ são substituidos por espaço name = "|cFFFF8C00|H|h[%s]|h|r" % (admin) # Cor semelhante a de um Game Master + o nome proveniente do servidor chat.AppendWhisper(chat.WHISPER_TYPE_GM, name, show) # É enviado a mensagem com carácter GM self.interface.RecvWhisper(name) # É anúnciado da mesma forma que uma mensagem normal  
    SERVER
    Criem no diretório do locale um ficheiro chamado admin_whisper.lua com isto lá dentro:
    --[[ De forma a que as mensagens tenham espaço uma da outra, é necessário utilizarem o uso da _ de forma a que o client consiga substituir. O motivo deve-se ao facto do comando cmdchat - ou CHAT_TYPE_COMMAND - ignorar tudo o que venha depois de um espaço (corrigem-me se estiver mal), por isso decidi que isto poderia ser a melhor forma disponível para que os espaços sejam visto visualmente. OBS: Repito, se queres algo complexo, podes usar isto como base ou simplesmente não usar, não obrigo ninguém a utiliza-lo. PS: Também poderão mandar mensagem a cada um dos jogadores de acordo com a sua linguagem (se tiverem multilinguagens instalado). ]] whisper = {} -- Abre a clásula para a palavra whisper whisper.admin = "MÁRIO" -- Nome do sistema a aparecer -- Mensagem a ser exibida | Se quiserem enviar mais que uma, poderão faze-lo perfeitamente dando alguns retoques no código whisper.text = "Olá_a_todos,_só_queria_dizer_que_este_´tutorial´_foi_criado_pelo_Mário_por_isso_se_quiserem_meter_os_créditos_quando_forem_meter_em_um_outro_sítio,_metam_os_meus_e_não_os_vossos_^^ "  
    Insiram isto dentro do questlib.lua:
    dofile(get_locale_base_path().."/admin_whisper.lua")  
    Utilizem a seguinte quest como um teste:
    quest admin_whisper begin state start begin when login begin if game.get_event_flag("admin_whisper) == 0 then return else cmdchat(string.format("admin_whisper %s %s",whisper.admin,whisper.text)) end end end end  
     
    /e admin_whisper 1 - O sistema estará ativo e todos irão receber as mensagens /e admin_whisper 0 - O sistema estará desativo e ninguém irá receber as mensagens  
  20. Upvote
    Mário. got a reaction from Snooke in Admin Whisper   
    Antes de começar com o tópico, se esperam algo complexo deste sistema, então poderão voltar para trás porque isto foi em apenas 1 hora de trabalho.
    Têm todo o direito de melhorar isto à vontade.
     
     
    Bem, eu ando a fazer alguns testes no que toca a performance entre quest-client e game-client e sendo sincero, quase ou pouco noto a diferença (já deu para entender que sou fanboy de lua certo?), apenas há 1 ~ 3 comandos extras a serem feitos.
     
    O que é este sistema?
    Isto dá-se como o nome de Admin Whisper (Mensagens de Equipa em português) e tem como objetivo enviar uma mensagem a todos os jogadores assim que entram pela primeira vez no jogo.
     
    Para que serve?
    Tal como disse acima, todos os jogadores (independentemente do canal - ou seja, poderão estar no CH1 como no CH2 -) irão receber sem qualquer tipo de problema ou latência.
     
    (Mensagem a ser enviada - No print não tem como ser visível mas ela pisca)

     
    (Conteúdo da mensagem)

     
    Requisitos:
    Python LUA  
    Client
     
    Procurem (game.py) por:
    "PlayMusic" : self.__PlayMusic,  
    Em baixo, adicionem:
    "admin_whisper" : self.AdminWhisper,  
    Procurem por:
    def __PlayMusic(self, flag, filename): flag = int(flag) if flag: snd.FadeOutAllMusic() musicInfo.SaveLastPlayFieldMusic() snd.FadeInMusic("BGM/" + filename) else: snd.FadeOutAllMusic() musicInfo.LoadLastPlayFieldMusic() snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)  
    Por baixo adicionem:
    def AdminWhisper(self, admin, text): # Nome a ser chamado txt = str(text) # A mensagem em si show = txt.replace("_", " ") # Os _ são substituidos por espaço name = "|cFFFF8C00|H|h[%s]|h|r" % (admin) # Cor semelhante a de um Game Master + o nome proveniente do servidor chat.AppendWhisper(chat.WHISPER_TYPE_GM, name, show) # É enviado a mensagem com carácter GM self.interface.RecvWhisper(name) # É anúnciado da mesma forma que uma mensagem normal  
    SERVER
    Criem no diretório do locale um ficheiro chamado admin_whisper.lua com isto lá dentro:
    --[[ De forma a que as mensagens tenham espaço uma da outra, é necessário utilizarem o uso da _ de forma a que o client consiga substituir. O motivo deve-se ao facto do comando cmdchat - ou CHAT_TYPE_COMMAND - ignorar tudo o que venha depois de um espaço (corrigem-me se estiver mal), por isso decidi que isto poderia ser a melhor forma disponível para que os espaços sejam visto visualmente. OBS: Repito, se queres algo complexo, podes usar isto como base ou simplesmente não usar, não obrigo ninguém a utiliza-lo. PS: Também poderão mandar mensagem a cada um dos jogadores de acordo com a sua linguagem (se tiverem multilinguagens instalado). ]] whisper = {} -- Abre a clásula para a palavra whisper whisper.admin = "MÁRIO" -- Nome do sistema a aparecer -- Mensagem a ser exibida | Se quiserem enviar mais que uma, poderão faze-lo perfeitamente dando alguns retoques no código whisper.text = "Olá_a_todos,_só_queria_dizer_que_este_´tutorial´_foi_criado_pelo_Mário_por_isso_se_quiserem_meter_os_créditos_quando_forem_meter_em_um_outro_sítio,_metam_os_meus_e_não_os_vossos_^^ "  
    Insiram isto dentro do questlib.lua:
    dofile(get_locale_base_path().."/admin_whisper.lua")  
    Utilizem a seguinte quest como um teste:
    quest admin_whisper begin state start begin when login begin if game.get_event_flag("admin_whisper) == 0 then return else cmdchat(string.format("admin_whisper %s %s",whisper.admin,whisper.text)) end end end end  
     
    /e admin_whisper 1 - O sistema estará ativo e todos irão receber as mensagens /e admin_whisper 0 - O sistema estará desativo e ninguém irá receber as mensagens  
  21. Upvote
    Mário. got a reaction from KB WORK in Apostar em Guerras de Guilds   
    Até agora não vi nenhumas serverfiles ou mesmo um servidor português onde possas apostar nas guerras de guild.
    A quest  das serverfiles do SG não funcionam, uma vez que buscava valores errados na source (lembrando que elas eram 34k, antes do leak da source).
    Tinha feito isto a pensar para o meu servidor (poderão reparar na quest) mas como sou fã de partilha, decidi publicar isto.
     
    A quest funciona da seguinte maneira:
    Só podes apostar se tiveres um bilhete (poderá ser editado o item a querer);
    Podes fazer quantas apostas tu quiseres dependendo do número de bilhetes tiveres;
    Não podes apostar nas guerras que a tua guild participa;
    Tens 4 opções de aposta (facilmente editado);
    Recebes o dobro do que apostaste.
     
     
    A única pessoa a quem dei esta quest foi ao Tiago, dono do GalaxyMT2.
    A partir de hoje, será de todos vós.
     
     
    Tutorial
     
    game/src/questlua_guild.cpp
    Pesquisar por:
    int guild_get_reserve_war_table(lua_State * L)  
    Por baixo de todo o código dele, adicionar:
    int guild_sistema_apostas(lua_State* L) { FBuildLuaGuildWarList f(L); CGuildManager::instance().for_each_war(f); return 1; } int guild_dar_recompensa(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); CGuild* pGuild = ch->GetGuild(); lua_pushnumber(L, (pGuild!=NULL)?pGuild->GetGuildWarWinCount():0); return 1; }  
    Pesquisem por:
    { "get_reserve_war_table", guild_get_reserve_war_table },  
    Por baixo, adicionem:
    { "sistema_apostas", guild_sistema_apostas }, { "dar_recompensa", guild_dar_recompensa },  
    Agora só precisam de compilar, sem esquecer de adicionarem isto no quest_functions:
    guild.dar_recompensa guild.sistema_apostas  
    Em baixo forneço-vos a quest com comentários de forma a explicar o que cada código faz de forma a terem uma leitura mais compreensível:
    --[[ Esta quest foi feita pelo Mário, influenciado pela @SG / @skype: iw0web.69 Como é que isto funciona? Assim que houver uma guerra de guild, um jogador poderá apostar indo no Beleguim da Batalha. Lá, será disponibilizado todas as informações a saber antes de fazer alguma aposta e o que ganharão se a guild que apostou vença. Por norma, os jogadores que pertençam a uma guild que esteja em war, não poderão apostar, juntamente com os que não possuem o bilhete da aposta, de forma a evitar que criem outras contas/personagens para terem lucro com o sistema. ]] quest sistema_apostas begin state start begin --[[ function dar_recompensa() if guild.dar_recompensa < 1 then say_title("LSM2:") say("Parabéns, a guild que apostaste acabou de ganhar a war.") say("Vais receber 100.000.000.000 yang.") pc.changegold(100000000000) end end ]] -- Isto foi um teste ridículo que fiz when guild_war_observer1.chat."Apostar nas Guerras de Guild" or -- Serão os NPCs onde será posto o sistema // neste caso no Beleguim da Batalha. guild_war_observer2.chat."Apostar nas Guerras de Guild" or -- Porquê que são 3? guild_war_observer3.chat."Apostar nas Guerras de Guild" begin -- Porque existem 3 beleguins da batalha, 1 para cada reino. say_title("LSM2:") -- Daqui para baixo, é o que será exibido. say("Para apostares nas guerras de guild,[ENTER]", "precisas de ter conhecimento de certas coisas:") wait() say_title("LSM2:") say("") say("1. Só podes apostar em guerras que estejam a acontecer.") say("") say("2. Só é possível fazeres 1 aposta se tiveres o bilhete para tal.") say("") say("3. Recebes o triplo do que apostas.") say_reward("Ex: Apostar 1.000.000 yang para ganhar 3.000.000") say("") wait() local g = guild.sistema_apostas() local gname_table = {} table.foreachi(g, function(n, p) gname_table[n] = guild.get_name(p[1]).." vs "..guild.get_name(p[2]) end) if table.getn(g) == 0 then -- Caso não exista nenhuma guerra de guilds a acontecer, é isto que será exibido: say_title("LSM2:") say("") say("Não existe nenhuma guerra de guild a decorrer.") else -- Caso contrário, será isto: if pc.count_item(30300) >= 1 then -- Condição em caso de terem o igual ou superior a 1 item 30300 pc.remove_item(30300,1) -- É removido em caso de existir alguma guerra de guild gname_table[table.getn(g)+1] = "Cancelar" -- Cancela a escolha da aposta. local s = select_table(gname_table) -- Aparece as guilds que estejam em guerra, de forma a poderes escolher a aposta if s != table.getn(gname_table) then local primeira_guild = guild.get_name(g[s][1]) -- Primeira guild, que neste caso é o que desafiou a outra local segunda_guild = guild.get_name(g[s][2]) -- A guild que foi desafiada say_title("LSM2:") say("") say("Escolhe em qual das guilds desejas apostar:") local guild_s = select(primeira_guild, segunda_guild, "Cancelar") if guild_s != 3 then -- Apenas em caso do jogador não clicar na terceira opção, que neste caso é o Cancelar local verificar = guild.get_any_war() --[[ Verifica se a guild está em guerra. Perdão por não fazer outra função para isto, mas para além da preguiça, o get_any_war funciona perfeitamente para este caso // questlua_guild.cpp : if (ch->GetGuild()) lua_pushnumber(L, ch->GetGuild()->UnderAnyWar()); ]] if verificar > 1 then -- Os jogadores que pertençam a guild que está em guerra não poderá apostar. pc.give_item2(30300,1) --[[ Porquê isto? Porque o jogador que pertença a guild que ia apostar, ficaria sem o cofre uma vez já tirado na linha 44. Para compensar, é-lhe dado outro cofre. Sim, há formas mais fáceis de fazer isto, mas para a simplicidade da quest, será feita desta forma. ]] say_title("LSM2:") say("Não podes apostar em guerras que a tua guild participa.") return end say_title("LSM2:") say("") say("Quanto é yang queres apostar?") local tabela_aposta_de_yang = {} table.foreachi(guild_war_bet_price_table, -- Os valores para a aposta serão buscados através da função guild_war_bet_price_table que se encontra no questlib.lua function(n, p) tabela_aposta_de_yang[n] = p.." Yang" --[[ Por default, os valores estão: 10000, 30000, 50000, 100000 Mais uma vez repito, podem alterar o valor das apostas no questlib.lua, pesquisando pelo seguinte: guild_war_bet_price_table ]] end) tabela_aposta_de_yang[table.getn(tabela_aposta_de_yang)+1] = "Cancelar" local apostar_guerra = select_table(tabela_aposta_de_yang) if apostar_guerra != table.getn(tabela_aposta_de_yang) then if pc.gold < guild_war_bet_price_table[apostar_guerra] then say_title("LSM2:") say("") say("Não tens esse montante de yang.") say("") else say_title("LSM2:") say("") say("Aconselho a veres a guerra de guild que apostaste[ENTER]", "de forma a controlares a tua aposta.[ENTER]", "Boa sorte!") pc.changegold(-guild_war_bet_price_table[apostar_guerra]) guild.war_bet(g[s][1], g[s][guild_s+1], guild_war_bet_price_table[apostar_guerra]) guild.dar_recompensa() sistema_apostas.dar_recompensa() end -- if pc.gold < guild_war_bet_price_table[apostar_guerra] end -- if apostar_guerra != table.getn(tabela_aposta_de_yang) end -- if guild_s != end -- if s != table.getn(gname_table) else say_title("LSM2:") say("") say("Não tens o bilhete para apostar nas guerras de guild.") say("Volta quando o tiveres.") end -- if table.getn(g) end -- if pc.count_item(30300) end -- when end -- state end -- quest
     
    Qualquer dúvida, não hesitem em deixarem um comentário.
  22. Upvote
    Mário. got a reaction from Snooke in Admin Whisper   
    Antes de começar com o tópico, se esperam algo complexo deste sistema, então poderão voltar para trás porque isto foi em apenas 1 hora de trabalho.
    Têm todo o direito de melhorar isto à vontade.
     
     
    Bem, eu ando a fazer alguns testes no que toca a performance entre quest-client e game-client e sendo sincero, quase ou pouco noto a diferença (já deu para entender que sou fanboy de lua certo?), apenas há 1 ~ 3 comandos extras a serem feitos.
     
    O que é este sistema?
    Isto dá-se como o nome de Admin Whisper (Mensagens de Equipa em português) e tem como objetivo enviar uma mensagem a todos os jogadores assim que entram pela primeira vez no jogo.
     
    Para que serve?
    Tal como disse acima, todos os jogadores (independentemente do canal - ou seja, poderão estar no CH1 como no CH2 -) irão receber sem qualquer tipo de problema ou latência.
     
    (Mensagem a ser enviada - No print não tem como ser visível mas ela pisca)

     
    (Conteúdo da mensagem)

     
    Requisitos:
    Python LUA  
    Client
     
    Procurem (game.py) por:
    "PlayMusic" : self.__PlayMusic,  
    Em baixo, adicionem:
    "admin_whisper" : self.AdminWhisper,  
    Procurem por:
    def __PlayMusic(self, flag, filename): flag = int(flag) if flag: snd.FadeOutAllMusic() musicInfo.SaveLastPlayFieldMusic() snd.FadeInMusic("BGM/" + filename) else: snd.FadeOutAllMusic() musicInfo.LoadLastPlayFieldMusic() snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)  
    Por baixo adicionem:
    def AdminWhisper(self, admin, text): # Nome a ser chamado txt = str(text) # A mensagem em si show = txt.replace("_", " ") # Os _ são substituidos por espaço name = "|cFFFF8C00|H|h[%s]|h|r" % (admin) # Cor semelhante a de um Game Master + o nome proveniente do servidor chat.AppendWhisper(chat.WHISPER_TYPE_GM, name, show) # É enviado a mensagem com carácter GM self.interface.RecvWhisper(name) # É anúnciado da mesma forma que uma mensagem normal  
    SERVER
    Criem no diretório do locale um ficheiro chamado admin_whisper.lua com isto lá dentro:
    --[[ De forma a que as mensagens tenham espaço uma da outra, é necessário utilizarem o uso da _ de forma a que o client consiga substituir. O motivo deve-se ao facto do comando cmdchat - ou CHAT_TYPE_COMMAND - ignorar tudo o que venha depois de um espaço (corrigem-me se estiver mal), por isso decidi que isto poderia ser a melhor forma disponível para que os espaços sejam visto visualmente. OBS: Repito, se queres algo complexo, podes usar isto como base ou simplesmente não usar, não obrigo ninguém a utiliza-lo. PS: Também poderão mandar mensagem a cada um dos jogadores de acordo com a sua linguagem (se tiverem multilinguagens instalado). ]] whisper = {} -- Abre a clásula para a palavra whisper whisper.admin = "MÁRIO" -- Nome do sistema a aparecer -- Mensagem a ser exibida | Se quiserem enviar mais que uma, poderão faze-lo perfeitamente dando alguns retoques no código whisper.text = "Olá_a_todos,_só_queria_dizer_que_este_´tutorial´_foi_criado_pelo_Mário_por_isso_se_quiserem_meter_os_créditos_quando_forem_meter_em_um_outro_sítio,_metam_os_meus_e_não_os_vossos_^^ "  
    Insiram isto dentro do questlib.lua:
    dofile(get_locale_base_path().."/admin_whisper.lua")  
    Utilizem a seguinte quest como um teste:
    quest admin_whisper begin state start begin when login begin if game.get_event_flag("admin_whisper) == 0 then return else cmdchat(string.format("admin_whisper %s %s",whisper.admin,whisper.text)) end end end end  
     
    /e admin_whisper 1 - O sistema estará ativo e todos irão receber as mensagens /e admin_whisper 0 - O sistema estará desativo e ninguém irá receber as mensagens  
  23. Upvote
    Mário. got a reaction from Snooke in Admin Whisper   
    Antes de começar com o tópico, se esperam algo complexo deste sistema, então poderão voltar para trás porque isto foi em apenas 1 hora de trabalho.
    Têm todo o direito de melhorar isto à vontade.
     
     
    Bem, eu ando a fazer alguns testes no que toca a performance entre quest-client e game-client e sendo sincero, quase ou pouco noto a diferença (já deu para entender que sou fanboy de lua certo?), apenas há 1 ~ 3 comandos extras a serem feitos.
     
    O que é este sistema?
    Isto dá-se como o nome de Admin Whisper (Mensagens de Equipa em português) e tem como objetivo enviar uma mensagem a todos os jogadores assim que entram pela primeira vez no jogo.
     
    Para que serve?
    Tal como disse acima, todos os jogadores (independentemente do canal - ou seja, poderão estar no CH1 como no CH2 -) irão receber sem qualquer tipo de problema ou latência.
     
    (Mensagem a ser enviada - No print não tem como ser visível mas ela pisca)

     
    (Conteúdo da mensagem)

     
    Requisitos:
    Python LUA  
    Client
     
    Procurem (game.py) por:
    "PlayMusic" : self.__PlayMusic,  
    Em baixo, adicionem:
    "admin_whisper" : self.AdminWhisper,  
    Procurem por:
    def __PlayMusic(self, flag, filename): flag = int(flag) if flag: snd.FadeOutAllMusic() musicInfo.SaveLastPlayFieldMusic() snd.FadeInMusic("BGM/" + filename) else: snd.FadeOutAllMusic() musicInfo.LoadLastPlayFieldMusic() snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)  
    Por baixo adicionem:
    def AdminWhisper(self, admin, text): # Nome a ser chamado txt = str(text) # A mensagem em si show = txt.replace("_", " ") # Os _ são substituidos por espaço name = "|cFFFF8C00|H|h[%s]|h|r" % (admin) # Cor semelhante a de um Game Master + o nome proveniente do servidor chat.AppendWhisper(chat.WHISPER_TYPE_GM, name, show) # É enviado a mensagem com carácter GM self.interface.RecvWhisper(name) # É anúnciado da mesma forma que uma mensagem normal  
    SERVER
    Criem no diretório do locale um ficheiro chamado admin_whisper.lua com isto lá dentro:
    --[[ De forma a que as mensagens tenham espaço uma da outra, é necessário utilizarem o uso da _ de forma a que o client consiga substituir. O motivo deve-se ao facto do comando cmdchat - ou CHAT_TYPE_COMMAND - ignorar tudo o que venha depois de um espaço (corrigem-me se estiver mal), por isso decidi que isto poderia ser a melhor forma disponível para que os espaços sejam visto visualmente. OBS: Repito, se queres algo complexo, podes usar isto como base ou simplesmente não usar, não obrigo ninguém a utiliza-lo. PS: Também poderão mandar mensagem a cada um dos jogadores de acordo com a sua linguagem (se tiverem multilinguagens instalado). ]] whisper = {} -- Abre a clásula para a palavra whisper whisper.admin = "MÁRIO" -- Nome do sistema a aparecer -- Mensagem a ser exibida | Se quiserem enviar mais que uma, poderão faze-lo perfeitamente dando alguns retoques no código whisper.text = "Olá_a_todos,_só_queria_dizer_que_este_´tutorial´_foi_criado_pelo_Mário_por_isso_se_quiserem_meter_os_créditos_quando_forem_meter_em_um_outro_sítio,_metam_os_meus_e_não_os_vossos_^^ "  
    Insiram isto dentro do questlib.lua:
    dofile(get_locale_base_path().."/admin_whisper.lua")  
    Utilizem a seguinte quest como um teste:
    quest admin_whisper begin state start begin when login begin if game.get_event_flag("admin_whisper) == 0 then return else cmdchat(string.format("admin_whisper %s %s",whisper.admin,whisper.text)) end end end end  
     
    /e admin_whisper 1 - O sistema estará ativo e todos irão receber as mensagens /e admin_whisper 0 - O sistema estará desativo e ninguém irá receber as mensagens  
  24. Upvote
    Mário. got a reaction from Snooke in Admin Whisper   
    Antes de começar com o tópico, se esperam algo complexo deste sistema, então poderão voltar para trás porque isto foi em apenas 1 hora de trabalho.
    Têm todo o direito de melhorar isto à vontade.
     
     
    Bem, eu ando a fazer alguns testes no que toca a performance entre quest-client e game-client e sendo sincero, quase ou pouco noto a diferença (já deu para entender que sou fanboy de lua certo?), apenas há 1 ~ 3 comandos extras a serem feitos.
     
    O que é este sistema?
    Isto dá-se como o nome de Admin Whisper (Mensagens de Equipa em português) e tem como objetivo enviar uma mensagem a todos os jogadores assim que entram pela primeira vez no jogo.
     
    Para que serve?
    Tal como disse acima, todos os jogadores (independentemente do canal - ou seja, poderão estar no CH1 como no CH2 -) irão receber sem qualquer tipo de problema ou latência.
     
    (Mensagem a ser enviada - No print não tem como ser visível mas ela pisca)

     
    (Conteúdo da mensagem)

     
    Requisitos:
    Python LUA  
    Client
     
    Procurem (game.py) por:
    "PlayMusic" : self.__PlayMusic,  
    Em baixo, adicionem:
    "admin_whisper" : self.AdminWhisper,  
    Procurem por:
    def __PlayMusic(self, flag, filename): flag = int(flag) if flag: snd.FadeOutAllMusic() musicInfo.SaveLastPlayFieldMusic() snd.FadeInMusic("BGM/" + filename) else: snd.FadeOutAllMusic() musicInfo.LoadLastPlayFieldMusic() snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)  
    Por baixo adicionem:
    def AdminWhisper(self, admin, text): # Nome a ser chamado txt = str(text) # A mensagem em si show = txt.replace("_", " ") # Os _ são substituidos por espaço name = "|cFFFF8C00|H|h[%s]|h|r" % (admin) # Cor semelhante a de um Game Master + o nome proveniente do servidor chat.AppendWhisper(chat.WHISPER_TYPE_GM, name, show) # É enviado a mensagem com carácter GM self.interface.RecvWhisper(name) # É anúnciado da mesma forma que uma mensagem normal  
    SERVER
    Criem no diretório do locale um ficheiro chamado admin_whisper.lua com isto lá dentro:
    --[[ De forma a que as mensagens tenham espaço uma da outra, é necessário utilizarem o uso da _ de forma a que o client consiga substituir. O motivo deve-se ao facto do comando cmdchat - ou CHAT_TYPE_COMMAND - ignorar tudo o que venha depois de um espaço (corrigem-me se estiver mal), por isso decidi que isto poderia ser a melhor forma disponível para que os espaços sejam visto visualmente. OBS: Repito, se queres algo complexo, podes usar isto como base ou simplesmente não usar, não obrigo ninguém a utiliza-lo. PS: Também poderão mandar mensagem a cada um dos jogadores de acordo com a sua linguagem (se tiverem multilinguagens instalado). ]] whisper = {} -- Abre a clásula para a palavra whisper whisper.admin = "MÁRIO" -- Nome do sistema a aparecer -- Mensagem a ser exibida | Se quiserem enviar mais que uma, poderão faze-lo perfeitamente dando alguns retoques no código whisper.text = "Olá_a_todos,_só_queria_dizer_que_este_´tutorial´_foi_criado_pelo_Mário_por_isso_se_quiserem_meter_os_créditos_quando_forem_meter_em_um_outro_sítio,_metam_os_meus_e_não_os_vossos_^^ "  
    Insiram isto dentro do questlib.lua:
    dofile(get_locale_base_path().."/admin_whisper.lua")  
    Utilizem a seguinte quest como um teste:
    quest admin_whisper begin state start begin when login begin if game.get_event_flag("admin_whisper) == 0 then return else cmdchat(string.format("admin_whisper %s %s",whisper.admin,whisper.text)) end end end end  
     
    /e admin_whisper 1 - O sistema estará ativo e todos irão receber as mensagens /e admin_whisper 0 - O sistema estará desativo e ninguém irá receber as mensagens  
  25. Upvote
    Mário. got a reaction from Snooke in Admin Whisper   
    Antes de começar com o tópico, se esperam algo complexo deste sistema, então poderão voltar para trás porque isto foi em apenas 1 hora de trabalho.
    Têm todo o direito de melhorar isto à vontade.
     
     
    Bem, eu ando a fazer alguns testes no que toca a performance entre quest-client e game-client e sendo sincero, quase ou pouco noto a diferença (já deu para entender que sou fanboy de lua certo?), apenas há 1 ~ 3 comandos extras a serem feitos.
     
    O que é este sistema?
    Isto dá-se como o nome de Admin Whisper (Mensagens de Equipa em português) e tem como objetivo enviar uma mensagem a todos os jogadores assim que entram pela primeira vez no jogo.
     
    Para que serve?
    Tal como disse acima, todos os jogadores (independentemente do canal - ou seja, poderão estar no CH1 como no CH2 -) irão receber sem qualquer tipo de problema ou latência.
     
    (Mensagem a ser enviada - No print não tem como ser visível mas ela pisca)

     
    (Conteúdo da mensagem)

     
    Requisitos:
    Python LUA  
    Client
     
    Procurem (game.py) por:
    "PlayMusic" : self.__PlayMusic,  
    Em baixo, adicionem:
    "admin_whisper" : self.AdminWhisper,  
    Procurem por:
    def __PlayMusic(self, flag, filename): flag = int(flag) if flag: snd.FadeOutAllMusic() musicInfo.SaveLastPlayFieldMusic() snd.FadeInMusic("BGM/" + filename) else: snd.FadeOutAllMusic() musicInfo.LoadLastPlayFieldMusic() snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)  
    Por baixo adicionem:
    def AdminWhisper(self, admin, text): # Nome a ser chamado txt = str(text) # A mensagem em si show = txt.replace("_", " ") # Os _ são substituidos por espaço name = "|cFFFF8C00|H|h[%s]|h|r" % (admin) # Cor semelhante a de um Game Master + o nome proveniente do servidor chat.AppendWhisper(chat.WHISPER_TYPE_GM, name, show) # É enviado a mensagem com carácter GM self.interface.RecvWhisper(name) # É anúnciado da mesma forma que uma mensagem normal  
    SERVER
    Criem no diretório do locale um ficheiro chamado admin_whisper.lua com isto lá dentro:
    --[[ De forma a que as mensagens tenham espaço uma da outra, é necessário utilizarem o uso da _ de forma a que o client consiga substituir. O motivo deve-se ao facto do comando cmdchat - ou CHAT_TYPE_COMMAND - ignorar tudo o que venha depois de um espaço (corrigem-me se estiver mal), por isso decidi que isto poderia ser a melhor forma disponível para que os espaços sejam visto visualmente. OBS: Repito, se queres algo complexo, podes usar isto como base ou simplesmente não usar, não obrigo ninguém a utiliza-lo. PS: Também poderão mandar mensagem a cada um dos jogadores de acordo com a sua linguagem (se tiverem multilinguagens instalado). ]] whisper = {} -- Abre a clásula para a palavra whisper whisper.admin = "MÁRIO" -- Nome do sistema a aparecer -- Mensagem a ser exibida | Se quiserem enviar mais que uma, poderão faze-lo perfeitamente dando alguns retoques no código whisper.text = "Olá_a_todos,_só_queria_dizer_que_este_´tutorial´_foi_criado_pelo_Mário_por_isso_se_quiserem_meter_os_créditos_quando_forem_meter_em_um_outro_sítio,_metam_os_meus_e_não_os_vossos_^^ "  
    Insiram isto dentro do questlib.lua:
    dofile(get_locale_base_path().."/admin_whisper.lua")  
    Utilizem a seguinte quest como um teste:
    quest admin_whisper begin state start begin when login begin if game.get_event_flag("admin_whisper) == 0 then return else cmdchat(string.format("admin_whisper %s %s",whisper.admin,whisper.text)) end end end end  
     
    /e admin_whisper 1 - O sistema estará ativo e todos irão receber as mensagens /e admin_whisper 0 - O sistema estará desativo e ninguém irá receber as mensagens