Jump to content

Fou lu Yorae Dragon

Member
  • Content Count

    989
  • Donations

    0.00 BRL 
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Fou lu Yorae Dragon

  1. Se o jogador sair do mapa este npc timer continuará rodando e dando as mensagens. Existem diversas formas de detectar isto, porem para se encaixar neste script o mais simples será colocar a checagem do mapa durante cada mensagem: tha_t01,1,1,5 script Contagem Regressiva 1_M_SIZ,{ OnPCLoadMapEvent: initnpctimer; getmapxy @Mapa$,@x,@y,0; if(@Mapa$ != "tha_t01") // caso dê erro, retire os " { stopnpctimer; announce "Seu tempo no mapa tha_t01 foi resetado!",bc_self,0; end; } announce ""+strcharinfo(0)+" Seu tempo no mapa restrito iniciou e acaba em 2 horas!",bc_map,0xA020F0; OnTimer3600000; // 60 minutos getmapxy @Mapa$,@x,@y,0; if(@Mapa$ != "tha_t01") { stopnpctimer; end; } announce ""+strcharinfo(0)+" Seu tempo no mapa restrito iniciou e acaba em 1 hora!",bc_map,0xA020F0; OnTimer1800000; // 30 minutos getmapxy @Mapa$,@x,@y,0; if(@Mapa$ != "tha_t01") { stopnpctimer; end; } announce ""+strcharinfo(0)+" você tem 30 minutos no mapa restrito!",bc_map,0x00FF00; OnTimer1800000; // 30 minutos getmapxy @Mapa$,@x,@y,0; if(@Mapa$ != "tha_t01") { stopnpctimer; end; } announce ""+strcharinfo(0)+" Falta 1 minuto para terminar seu tempo no mapa!",bc_map,0x00FF00; OnTimer60000; // 1 minuto getmapxy @Mapa$,@x,@y,0; if(@Mapa$ != "tha_t01") { stopnpctimer; end; } warp "SavePoint",0,0; // Teleporta o jogador para o ponto salvo. stopnpctimer; end; } tha_t01 mapflag loadevent Não ficou pra lá de bonito este script, existem formas melhores de se pensar nisto, porem para o teu caso deve resolver.
  2. Experimente trocar specialeffect2 EF_INCAGILITY; sc_start SC_INC_AGI,240000,10; Por: specialeffect2 EF_INCAGILITY; sc_start 32,240000,10;
  3. // Buffs sc_end SC_ENDURE; sc_end SC_ANGELUS; sc_end SC_MAGNIFICAT; sc_end SC_GLORIA; sc_end SC_IMPOSITIO; sc_end SC_BLESSING; sc_end SC_INC_AGI; skilleffect 8,0; sc_start SC_ENDURE,360000,10; skilleffect 33,0; sc_start SC_ANGELUS,360000,10; skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5; skilleffect 75,0; sc_start SC_GLORIA,360000,5; skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5; skilleffect 34,0; sc_start SC_BLESSING,360000,10; skilleffect 29,0; sc_start SC_INC_AGI,360000,10; percentheal 100,100; Experimente adicionar isto antes dos buffs serem dados.
  4. Tem certeza que dentro da pasta conf não existe um arquivo chamado "groups"? Envie uma print dos arquivos presentes nesta tua pasta ou uma lista com o nome de todos.
  5. Quando for assim é bom postar aqui uma print do erro. Porem olhando teu script se percebe que ele já possui um gatilho de "OnInit", logo creio que o erro seja por estar tentando adicionar dois gatilhos iguais no mesmo script. No inicio do script onde existe isto: OnInit: freeloop(1); Adicione isto: OnInit: waitingroom "Sala das Quests",0; freeloop(1); Repare que eu adicionei somente o comando "waitingroom". Não coloque o comando de "end" nesta parte do script, pois poderá buga-lo.
  6. Se você configurou corretamente o mapflag de nowarp, resta checar o seguinte arquivo "conf/groups.conf". Neste arquivo procure pelo grupo de jogadores comuns que é o de "level: 0", na parte de "permissions" não pode existir a seguinte permissão "any_warp: true". Alguns servidores utilizam o grupo de jogadores "level: 1" como sendo os Vips, cheque se neste grupo também existe a permissão "any_warp: true" e apague de lá. Normalmente os emuladores não vem com esta permissão aos grupos de level 0 e 1, cheque se os teus jogares estão sendo inseridos no grupo certo de jogadores ou se tu está colocando todos eles em grupos avançados que possuem permissões avançadas. Para checar o grupo que uma conta se encontra basta olhar o banco de dados na tabela "login" e a coluna "group_id".
  7. Com certeza este não é o teu NPC de VIP completo. Poste o script inteiro.
  8. Não dá e nem é legal ficarmos montando NPC pra todo mundo aqui, vocês precisam também absorver o conhecimento ativamente e não passivamente. Vou te dizer quais comandos de script você consegue fazer o que deseja. Gatilhos: *OnInit: Obs: Você precisa utilizar este gatilho para teu script ser executado toda vez que o emulador for reiniciado. Comandos de Scripts: *gettime Obs: Você usará este comando dentro de um If para checar se o dia e mês batem com o que você deseja. *setmapflag Obs: Você usará para definir um mapflag temporário em um determinado mapa. Como por exemplo ativar o mapflag das folhas de sakura ou as neve de snow. Dica: Procure a descrição do funcionamento dos comandos descritos aqui no arquivo doc/scripts_commands.txt Qualquer dúvida pode postar neste tópico, poste também o script que já montou para darmos sugestões de melhorias.
  9. Valor 100 é rate 1x, logo o valor 100000 (cem mil) será rate 1000x. Os parametros de min voce mantêm com valor 1 e os de max você coloca a rate máxima que tu deseja que tenha no servidor, ou seja, até onde quer que seja possível chegar com a rate utilizando bonus de itens que aumentem a rate. Se não quiser um limite coloque 9999999.
  10. Pelo tempo do topico acho que já deu tempo de testar isto. Mas dependendo do seu sistema de Vip, não dará certo avançar o dia do servidor, que está relacionado ao dia do computador ao qual o emulador está rodando. Não dará certo, pois normalmente estes sistemas de Vip funcionam através de um gatilho de tempo. Então digamos que o gatilho seja acionado em toda meia noite (00:00), se tu avançar um dia o gatilho não será acionado, pois é preciso o emulador estar funcionando na hora 00:00. Compartilhe o script do seu sistema Vip aqui para podermos sair do campo da especulação e te afirmar com certeza o que pode está acontecendo.
  11. Além do emulador informe também a versão do hexed utilizado.
  12. O Create Table da tabela chamada "pvpm_lang" foi rodado? A tabela existe? Caso a tabela exista, experimente remover esta linha de comentário na hora de rodar: -- Tabela para mensagens do PvP Master v1.3.0+ #Português.
  13. troque o set .debug = getnpctimer(0,"SistemaPresenca"); por set .debug, getnpctimer(0,"SistemaPresenca"); Basicamente o erro é o sinal de igual "=" que deveria ser uma virgula ",". Misturei a sintax da linguagem de script com a de SQL. rsrs Você terá que fazer está mudança na linha 5 e 9 que são onde existem estes erros.
  14. prontera,130,204,5 script Sacolas 807,{ set @np$,"[ Sacolas ]";// Nome do NPC set @preco1,50000000;//Preco cartao1 set @preco2,25000000;//Preco cartao2 set @preco3,10000000;//Preco cartao3 set @ID1,670; //id do cartao 1 ou cartao especial gold set @ID2,676; //id do cartao 2 ou cartao especial platina set @ID3,672; //id do cartao 3 ou cartao especial simples mes @np$; mes "Olá "+strcharinfo(0)+"!"; mes "Gostaria de trocar dinheiro por Sacolas?"; menu "Sim",Sim,"Não",-; next; mes @np$; mes "Ok, volte quando quiser"; close; Sim: next; mes @np$; mes "Qual Cartão você quer?"; menu "Sacola de Ouro",m1,"Sacola de Prata",m2,"Sacola de Bronze",m3,"Não quero mais",-; next; mes @np$; mes "Ok, volte quando quiser"; close; m1: next; mes @np$; mes "Esta sacola custa 50.000.000 zeny"; mes "Quer mesmo ela?"; menu "Sim",-,"Não",nope; next; mes @np$; mes "Quer Comprar ou Vender?"; menu "Comprar",-,"Vender",vende; next; mes @np$; mes "Informe a quantidade que deseja comprar."; input(.qtd); next; mes @np$; mes "Deixe-me verificar seu zeny"; if (Zeny < (.qtd*@preco1)) goto nz; next; mes @np$; mes "Aqui está(ão) sua(s) sacola(s)! Volte Sempre!"; set Zeny,Zeny-(.qtd*@preco1); getitem @ID1,.qtd; close; vende: next; mes @np$; mes "Informe a quantidade que deseja vender."; input(.qtd); next; mes @np$; mes "Deixe-me ver sua(s) Sacola(s)"; if (countitem(@ID1) < .qtd)goto nomo; next; mes @np$; mes "Aqui está seu Zeny!!Volte Sempre!!"; delitem @ID1,.qtd; set Zeny,Zeny+(.qtd*@preco1); close; nope: next; mes @np$; mes "Ok, Volte quando quiser"; close; nz: next; mes @np$; mes "Você não tem zeny suficiente"; close; nomo: next; mes @np$; mes "Você não tem a quantidade de Sacola(s)"; close; m2: next; mes @np$; mes "Esta sacola custa 25.000.000 zeny"; mes "Quer mesmo ela?"; menu "Sim",-,"Não",nope; next; mes @np$; mes "Quer Comprar ou Vender?"; menu "Comprar",-,"Vender",vende2; next; mes @np$; mes "Informe a quantidade que deseja comprar."; input(.qtd); next; mes @np$; mes "Deixe-me verificar seu zeny"; if (Zeny < (.qtd*@preco2)) goto nz; next; mes @np$; mes "Aqui está(ão) sua(s) sacola(s)! Volte Sempre!"; set Zeny,Zeny-(.qtd*@preco2); getitem @ID2,.qtd; close; vende2: next; mes @np$; mes "Informe a quantidade que deseja vender."; input(.qtd); next; mes @np$; mes "Deixe-me ver sua(s) Sacola(s)"; if (countitem(@ID2) < .qtd)goto nomo; next; mes @np$; mes "Aqui está seu Zeny!!Volte Sempre!!"; delitem @ID2,.qtd; set Zeny,Zeny+(.qtd*@preco2); close; m3: next; mes @np$; mes "Esta Sacola custa 10.000.000 zeny"; mes "Quer mesmo ela?"; menu "Sim",-,"Não",nope; next; mes @np$; mes "Quer Comprar ou Vender?"; menu "Comprar",-,"Vender",vende3; next; mes @np$; mes "Informe a quantidade que deseja comprar."; input(.qtd); next; mes @np$; mes "Deixe-me verificar seu zeny"; if (Zeny < (.qtd*@preco3)) goto nz; next; mes @np$; mes "Aqui está(ão) sua(s) sacola(s)! Volte Sempre!"; set Zeny,Zeny-(.qtd*@preco3); getitem @ID3,.qtd; close; vende3: next; mes @np$; mes "Informe a quantidade que deseja vender."; input(.qtd); next; mes @np$; mes "Deixe-me ver sua(s) Sacola(s)"; if (countitem(@ID3) < .qtd)goto nomo; next; mes @np$; mes "Aqui está seu Zeny!!Volte Sempre!!"; delitem @ID3,.qtd; set Zeny,Zeny+(.qtd*@preco3); close; } Obs: Não foi testado.
  15. Fui eu que desenvolvi o script. Eu não desenvolvi pensando em @reloadscript, pois este comando não se deve ser utilizado em ambiente de produção (servidor aberto para o público). Você poderá ter diversos outros bugs inimaginaveis se ficar utilizando @reloadscript em produção, este comando foi criado para uso em ambientes de testes e manutenções. Se você precisa fazer uma manutenção urgente ou recarregar algum NPC em especifico sem querer reiniciar o emulador em produção, existem outras opções de comando com potencial de estrago bem reduzido como o caso do @unloadnpcfile ,@unloadnpc e @loadnpc. Após o meu alerta se você quiser continuar abusando do uso do @reloadscript, tente adicionar este NPC para debug. - script SistemaPresenca_DeBug -1,{ OnInit: sleep 10000; set .debug = getnpctimer(0,"SistemaPresenca"); sleep 10000; while (getnpctimer(0,"SistemaPresenca") == .debug ) { initnpctimer "SistemaPresenca"; set .debug = getnpctimer(0,"SistemaPresenca"); sleep 10000; } } Obs: Não foi testado.
  16. A skill.conf basta resetar o emulador, porem na pasta src (source) qualquer alteração é preciso recompilar. Sobre o skill.conf verifique se ela existe nas seguintes pastas "conf/import" e "conf/battle". As vezes ela existe ao mesmo tempo nas duas e você precisa manter atualizado nos dois.
  17. Experimente pegar este trecho do skill.c e deixa-lo comentado desta forma: //if (map_flag_vs(src->m) && battle_config.vs_traps_bctall //&& (src->type&battle_config.vs_traps_bctall)) //target = BCT_ALL; Não esqueça de após a modificação re-compilar o emulador para testar.
  18. O emulador foi reiniciado, certo? Estranho pq na descrição do parâmetro já cita o quagmire que é o pantano dos mortos. Talvez tenha coisa a mais que deva ser feito na source. A minha dica para você que é novato é pegar um emulador old times de verdade, porem o mais recomendável é ficar com um emulador atualizado, devido ao emulador old times ter diversos bugs que já foram corrigidos nos atuais. Ficando com um emulador atual você precisa apenas saber mexer na pasta NPC e na DB, onde você meio que poderá "depenar" o emulador para manter liberado somente os mapas, npcs, mobs e itens old times. Agora sobre as skills é melhor manter como estão, pois será meio inviável um novato consegui edita-las na source. É a data.grf sim, porem nos servidores privates como os nossos, a gente possui uma grf personalizada, você precisa editar o arquivo lá, e caso não existe ele lá, coloca-lo. O hexed é o executável que usamos para abrir o jogo. Provavelmente você seguiu um guia de como configurar um patch e nele você precisou alguma hora diffar um hexed. Cada hexed possui uma data, que se refere a sua data de versão utilizada pelo próprio BRO ou KRO. A gravity está sempre atualizando seu executável e aqui a gente mantem um controle pela data para se referir a um determinado executável, normalmente quanto mais antigo, mais sua interface de jogo será old times.
  19. Se ele for um mob que se movimenta, está correto, porem se for um mob que já fica parado como por exemplo o ovo de peco peco, vai bugar a leitura do mob pelo emulador.
  20. Algumas skills como por exemplo o Pantano dos Mortos você deve conseguir corrigir pela Conf/Battle/skill.conf alterando o parametro gvg_traps_target_all para valor 0. Para alterar as descrições da skills você terá que alterar em um arquivo localizada na GRF chamado de "skilldesctable.txt", isto considerando que seu Hexed seja de 2012 pra baixo, caso contrário já será outro arquivo. Mas sinceramente se você for novato e querer mesmo colocar todas as skills do teu emulador no padrão Old Times, dificilmente você conseguirá, pois tudo isto precisa de edições na Source, não existe nenhum parametro no emulador ao qual podemos ativar ou desativar para que todas as skills fiquem Old Times. Se você souber programar em C vale apena tentar colocar as skills em Old Times, se não souber vai depender de tua vontade em aprender.
  21. No data base Old Times você precisa localizar a coluna correspondente ao "Mode". Normalmente no cabeçalho do arquivo indica isto. Para te facilitar podemos apenas olhar para o local onde o numero começa com "0x...", por exemplo 0x3885 que é o caso do mob Familiar. Precisamos mexer nesta numeração para retirarmos ou colocarmos os parametros desejaveis. Normalmente em emuladores old times existe um arquivo chamado "mob_db_mode_list.txt" na pasta "doc". Nele você consegue saber as numerações de cada parametro do "Mode". Neste arquivo você vai observar que o CanMove se refere ao valor 1, isto quer dizer que para deixarmos o Familiar imóvel, iremos subtrair o valor 1 de seu Mode, ficando 0x3884.
  22. Loja com itens randomicos é facil fazer por script, agora criar uma loja que aceite moedas além de Zeny e Cash é algo interessante. (Que seja por interface de loja e não menu de select)
  23. Você vai no seu mob_db e no campo chamado "Mode" você removerá a linha chamada "CanMove: True".
  24. Continuo achando que um "if" no script do item já resolva isto, nem precisa criar uma função a parte...
  25. Ainda vou testar este RO Mobile que estão dizendo ser bem diferentes dos outros ultimos mobile que foram todos lixosos. Sobre o Pay To Win isto já é esperado, mas nada que uns private não deem conta de contornar. Se for realmente bom este RO Mobile mal posso esperar pelos desenvolvimentos dos emuladores para os privates, nem é preciso esperar sair para PC, é só abrir um private para Mobile com o patch disponivel para download em algum link/site adaptado para mobile, já que a Play Store nunca aceitará colocar lá. (É isto que os aplicativos de porno estão fazendo já que a Play Store não aceita este conteúdo lá. rsrs)

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×
×
  • Create New...