Zell

Membro
  • Total de itens

    48
  • Registro em

  • Última visita

  • Days Won

    5

Reputação

18 Contribuidor

6 Seguidores

Sobre Zell

  1. ajuda

    Se você está fazendo uma query para aumentar o dia de vip não precisa do login do usuário. Você pode usar o ID da conta que é único e o comando getcharid já lhe entrega.
  2. Vou responder por que gosto de explicar esse tipo de coisa, se não entender algo me diga. Tentarei explicar de uma forma bem "pseudo-funcionamento". Existem umas três ou quatro funções importante para esse gerenciamento. Vou abordar só uma que você consegue achar as outras. A função que se é chamada para "mostrar" um jogador na tela para outro seria essa: int clif_spawn(struct block_list *bl) Existem outras funções para atualizar certas informações e etc mas com isso você já consegue entender um pouco. O seu desenho e conceito estão um pouco equivocado. Tentarei explicar. Jogadores que estão fora da da área de visão do jogador (que pode ser configurado em conf/battle/client.conf) para o cliente não existem. O que acontece não é tão complexo quanto acho que você pensa. Partindo do pressuposto que você tem entendimento do que são pacotes irei para a explicação logo. Um jogador está na área branca da imagem e então clica para ir para a área vermelha, o emulador irá confirmar que ele pode até lá e então vai responder ao cliente que pode movimentar seu personagem. Durante esse processo que o emulador verificou se você pode andar até lá ele já verifica através das funções para checar quais objetos estão próximos a aquela celula nova que você está (já calculando seu alcance de visão). Normalmente essas funções possuem a nomenclatura "foreachAlgumaCoisa" (dependendo do seu objetivo) e então eles descobrem que jogador está em seu alcance de visão e envia para seu cliente as informações necessárias para que ele mostre o jogador para você. Quando esse jogador andar, ele irá enviar a solicitação ao jogador e novamente todo o processo começa.
  3. Vamos fazer emulador da vida
  4. Eu vendi o domínio para a gravity por 3000 temers. Sou um visionário
  5. NPC's desse tipo onde o jogador deve escolher uma opção que o vinculada a um ID de certo coisa é aconselhável fazer de uma forma que fique fácil adicionar novas opções sem dar dor cabeça. Em qualquer linguagem de baixo nível você deve pensar na manutenibilidade do código. Você não vai querer ficar perdido em um script que precisa modificar. Você se lembra de onde modificar onde sem gerar nenhum impacto agora, mas e daqui alguns meses? Neste código que passei parece estar maior ou mais complexo do que deveria, porém caso você precise de mais de 5 elementos já torna mais viável o uso dele. Claro, isto é supondo que todos os textos de aquisição do elemento serão os mesmos, caso contrário o uso de um switch talvez lhe sirva melhor para poucos elementos. Mas desta forma que exemplifiquei podemos até adicionar itens que cada elemento ganharia ao vincular de forma fácil. Até mesmo os textos diferentes. https://pastebin.com/raw/ZW6zRuaU
  6. 11 Usable with delayed consumption (item is lost from inventory after selecting a target, for use with skills and pet lures)
  7. Assim, não querendo desmerecer como você faz ou não as coisas. Mas por que pagar alguém para fazer um servidor que é o que VOCÊ deseja fazer? Afinal como você disse, caso o servidor não faça sucesso ou acabe fechando, pelo menos você obteve conhecimento com o mesmo, seja de programação, design ou outras coisas. Não sei quantos anos você tem ou se já tem carreira formada. Mas ragnarok é um bom jeito de introduzir programação a alguém. Melhor do que depois se arrepender de ter gasto dinheiro. Acho que você aprendendo e fazendo as coisas além do servidor ficar como você quer, você vai se dedicar mais para tornar o servidor a sua vontade e não ficar dependendo de contato x para sempre que quiser mudar ou adicionar novas coisas. Qualquer Administrador/Gerente de algum software, tem que saber desenvolver/programar, mesmo que ele não mexa no código, mas pra passar para sua equipe o que fazer ele deve pelo menos saber como fazer. Toda via, você tem ideias bacanas, algumas me lembraram bastante certos animes e etc... E a engine de Ragnarok como falaram é bem limitada, se está disposto a pagar alguém pra fazer algum jogo há várias plataformas melhor para isso, porém se você aceita os limites que o Rag possui, vai fundo e boa sorte no projeto!
  8. O comando tem 5 minutos de cooldown e é só pra vip dado uma vez que o servidor não tem @warp nem @go
  9. troca checkidle por checkidle()
  10. Desenvolvi um Navegador para meu servidor, uma vez que o mesmo possui mapas customizados e todo um banco de dados alterado (monstros, itens e etc) então vim compartilhar com quem ainda não acompanha meu trabalho. O programa foi desenvolvido em C#. O navegador lê os arquivos "mob_db.txt" (utilizo rathena onde o banco de dados de monstro ainda é em SQL/TXT), "iteminfo.lub", "npc.navi", "map.navi" e "conexao.navi" para carregar o banco de dados. mob_db.txt = Fica todas as informações dos monstros. npc.navi = Lê os NPC's e os inclui no banco de dado dos mapas. map.navi = Lê os mapas que existem no servidor e adiciona os NPC's e Monstros que existem no mesmo. conexao.navi = Faz a junção dos mapas para saber qual mapa se conecta a qual e de que forma, tais podendo ser por PORTAL, KAFRA, AEROPLANO, TREM, BARCO ou ID_NPC. Ah, somente os monstros que possuem registro em mapas são carregados do mob_db.txt O navegador é executado junto com o jogo pelo Launcher que programei (Design feito pelo Mihael), inclusive somente é possível logar no servidor por este Launcher. Ah, o VOTE POR PONTOS dele não é burlável. A pessoa precisa votar realmente Esta é a cara do navegador: Logo após explicar a Interface de informação do mapa explicarei o que cada botão faz. Ao clicar em um mapa (cliquei no mapa referente a prt_fild08) as informações do mapa são abertas mostrando a seguinte tela: [1] Aba dos Monstros do mapa. [2] Aba dos NPCs do mapa. [3] Aba de todos os itens dropaveis no mapa. [4] Informações dos Monstros [5] Clicando no monstro é possível ver sua aparência e animação. [6] Clicando no monstro é possível ver seus drops. [7] É possível ver quais conexões esse mapa tem, resumindo como chegar nele ou como chegar em outro mapa por ele. [8] Imagem referente ao 7 ao que muda de acordo com o tipo de conexão (PORTAL, KAFRA e etc) [9] Mini Mapa do Mapa atual. [10] Informações da conexão. É possível abrir a informação de outro mapa d aconexão clicando no link. Uma nova sub tela será aberta. [11] É possível teleportar seu personagem com este botão caso seja vip. Esta é a aba de NPC's: E esta é a aba de items dropaveis no mapa: Agora irei falar sobre os botões da tela principal: Pesquisar: É bem intuitivo, permite pesquisar sobre monstros, npcs, items e mapas do navegador. Sincronizar Personagem: Ao colocar seu login e senha no Launcher e executar o navegador você pode sincronizar o navegador com seu personagem conectado. Desta forma, você pode usar o botão "Teleportar Personagem" caso seja VIP. Salvar Seção: Você pode salvar em um arquivo de texto todos os mapas abertos atualmente para compartilhar com alguém ou para futuras pesquisas rápidas em andares de mapas. Carregar Seção: Bem, carrega o arquivo de texto e abre os mapas informados nele. Créditos: Créditos (?) E é isso pessoal
  11. Protimus, ? carregamento em lua sei que ? mais r?pido, mas o consumo de RAM do emulador vai diminuir?
  12. GUIA E ORIENTA??O

    U?, mas esse plugin est? f?cil, tem nem o que ensinar. Essa parte vai em script.c em qualquer lugar, por exemplo em cima BUILDIN(next) BUILDIN(autonext) { TBL_PC* sd; int timeout; sd = script->rid2sd(st); if( sd == NULL ) return true; #ifdef SECURE_NPCTIMEOUT sd->npc_idle_type = NPCT_WAIT; #endif //script_detach_rid(st); timeout=script_getnum(st,2); if(st->sleep.tick == 0) { st->state = RERUNLINE; st->sleep.tick = timeout; } else {// sleep time is over st->state = RUN; st->sleep.tick = 0; } clif->scriptnext(sd, st->oid); return true; } Isso aqui: addScriptCommand("autonext","i",autonext); Seria a mesma cosia que BUILDIN_DEF(autonext,"i"), Pode colocar em cima de BUILDIN_DEF(next,""), Se n?o tiver nenhuma incompatibilidade entre os dois emuladores em quesito nome de variaveis ou se s?o refer?ncias, deve funcionar
  13. GUIA E ORIENTA??O

    Poste o plugin que voc? quer que te mostro como ler ele e saber como aplicar no emulador.
  14. Cara, n?o entendi muito bem sua equa??o/algoritmo. O valor inicial ? 15? Ou 15 ? s? um exemplo? Y s?o os valores de cash que podem ser? O N diminui a cada 100 segundos? N?o entendi.
  15. J? tentou usando outro langtype no clientinfo?