Chat global
Pedido informações Alerta BOSS
Boa noite, estou com uma dúvida no desenvolvimento do meu servidor..
oque está acontecendo é o seguinte.. quando dá o horário do boss.. exemplo: Kelvezu irá nascer as 20:32 , se eu não estiver no mapa então não aparece no chat e o mob não nasce, eu gostaria de alterar isso, gostaria que mostrasse os bosses no alerta sem eu estar dentro do mapa para que os players saibam onde cada um irá nascer, desde já agradeço muito

os boss é colocado na pasta gameserver /Field , em boss.ase
para avisar no char dependendo suas files, vai em onsever.cpp e acha esse if
if (lpStgArea->lpField->FieldCode == 36) //codigo do mapa (cav kelv)
wsprintf(TransChatMessage.szMessage, "[%s] nascerá em 5 minutos [%s]!", lpBossMonster->MasterMonster->szName, "Caverna do Kelvezu");
E você pode ir adicionando outros if copiando o primeiro só que trocando o fieldcode
então no meu servidor já existe o alerta, e ele avisa antes, mas só avisa se o player estiver no mapa, tem como colocar para avisar mesmo se o player não estiver no mapa?

Qual files tu usa?
uso a desk do drax

Atualmente deve estar assim
rsplayinfo[i].area ou field ou code enfim procura ai. == numero do mapa.
pra fazer o que vc quer ignora a verificaçao de mapa e so verifica se o player esta online se existe ponteiro de socket. que ficaria assim
for(playermax
(rsplayinfo[i].lpmsock)
send
assim ira enviar para todos
Só sei que nada eu sei
seria aqui ?
for (cnt = 0; cnt < CONNECTMAX; cnt++) { if (rsPlayInfo[cnt].lpsmSock && retornarNomeMapa(lpStgArea->lpField->FieldCode) != nullptr) { if (rsPlayInfo[cnt].Position.Area == lpStgArea->lpField->FieldCode) rsPlayInfo[cnt].lpsmSock->Send((char*)& TransChatMessage, TransChatMessage.size, TRUE); } } return 0;
@godfather rsplayinfo[i].area não achei , nem rsplayinfo[i].code nem rsplayinfo[i].field, poderia me ajudar?

@onept Sim ai mesmo.
Vamos la o que ai esta fazendo
Ele percorre todos os rsplayinfo alocados que geralmente sao 1024.
Depois ele verifica se existe lpsmSock pra verificar se existe jogador naquele ponteiro.
E Depois verifica na funçao retornarmapa ai se ele encontrou um mapa valido para o lpstage.
Depois ele verifica Se a Position.Area<- Numero do mapa é igual ao do Stage do monstro.
Entao ele manda a mensagem no Send para todos os players que estao no Stage.
Depois de voce ler tudo que eu digitei e entender. Voce vai entender que se voce remover essa verificaçao
if (rsPlayInfo[cnt].Position.Area == lpStgArea->lpField->FieldCode)
Ele ja nao verifica mais se o player esta no mesmo mapa.
Porem acho desnecessario rodar um loop de 1024 jogadores e a cada iteraçao ativa ta chamando a funçao retornarNomeMapa
Boa sorte!
Só sei que nada eu sei
@godfather sua explicação foi foda demais, entendi perfeitamente. Analisando bem a situação eu não irei fazer essa alteração. Me fez entender que vai floodar muito o mapa deixando suja a visualização, os players podem identificar o boss que irá nascer pela descrição do mapa e visualizar o horário que os mesmos nascem para não perder os bosses, eu tenho algumas dúvidas em relação outras coisas e você foi o único cara que eu consegui entender kkkkkk tem a didática muito boa para orientar. Será que teria como me passar seu dc se não for incômodo? Nem que eu pague por alguns serviços

@onept Eu nao trabalho com priston irmao. Eu ajudo a comunidade de boa fe e coraçao mesmo.
pode ir postando no forum suas duvidas.
Eu nao vejo isso como um flood nao se voce tem poucos bosses durante o dia.
Concordo com voce que no chat realmente isso acaba incomodando muito e geralmente o pessoal faz um alerta que passa na tela e some apos alguns segundos definidos.
Nao importo e numca me importei de ajudar a comunidade se tiver alguma duvida pode postar ai ou mandar la no DC : godfather.copyright
Mas desde ja deixo claro. Eu nao vendo nada nem files nem dev nem correçao nem aula nem poha nenhuma se pedir eu bloqueio 🙂
Só sei que nada eu sei
- 19 Fóruns
- 117 Tópicos
- 496 Posts
- 0 Online
- 122 Membros