Jump to content

Kurare

Members
  • Content Count

    10
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Kurare


  1. Neste caso no script selecionado, acredito que você deva mudar:

     

     if (!.@i) close;

    para 
     

    if(!.@i) { 
      close2;
      cutin "",255;
      end;
    }

     

     

    Para mostrar outro cutin basta repetir o comando, o cutin sobrepõe o cutin mostrado anteriormente, no caso o 'cutin "",255' que retira, nada mais é do que uma sobreposição por um cutin vazio.

    Exemplo:

    cutin "npcpadrao",2;
    mes "Oi, Selecione sua opção";
    if( select("Quero ver um duende:Quero ver um elfo") == 1) {
      next;
      cutin "duende",2;
      mes "Aqui está ele, divirta-se!";
      close2;
      cutin "",255;
      end;
    }
    else {
      next;
      cutin "elfo",2;
      mes "Aqui está ele, cuidado com as flechas!";
      close2;
      cutin "",255;
      end;
    }

     


  2. Você deve substituir todos os "close" , após o cutin ser exibido, por "close2" em seguida por o cutin "",255; e end;

    Assim:

     

    close2;
    cutin "",255;
    end;

    Explicando:

    O close normal encerrá o script imediatamente, independente se o jogador clicou nele ou não.
    O close2 percebe quando o jogador clicou em close e continua a executar o que tem mais após ele, até encontrar uma finalização, no caso o end.

    Então, ao clicar no 'close' o comando 'cutin "",255', que retira o cutin, é processado.


  3. Olá,

    você retirou a parte que seta o SP pra 0

    deveria estar assim ali: 

     

     
    case MO_EXTREMITYFIST:		if( skill_id == MO_EXTREMITYFIST )		{			status_set_sp(src,0,0);     			status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER);			status_change_end(src, SC_BLADESTOP, INVALID_TIMER);#ifdef RENEWAL 			sc_start(src,SC_EXTREMITYFIST2,100,skill_lv,skill_get_time(skill_id,skill_lv));#endif		}

     


  4. Fica na função battle_reflect_damage

        NORMALIZE_RDAMAGE(damage * sc->data[SC_REFLECTSHIELD]->val2 / 100);    rdamage = min(status_get_max_hp(target),damage);//colocar aqui#ifndef RENEWAL	rdelay = clif->delay_damage(tick+delay,src, src, status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4);#else	rdelay = clif->skill_damage(src, src, tick, delay, status_get_dmotion(src), rdamage, 1, CR_REFLECTSHIELD, 1, 4);#endif

  5. Olá,

    seguindo a política de não dar nada pronto vou explicar o que você vai precisar, quanto a parte de script:

     

    Dois eventos: 

    OnPCKillEvent : é chamado para um jogador quando mata outro, a variável (parâmetro) killerrid passa a conter o gid do jogador morto.

    OnPCDieEvent: é chamado para o jogador quando ele morre, a variável killerrid passa a conter o gid do 'assassino' do mesmo.

     

    E você deve usar as seguintes funções de scripts:

    rid2name( variavelnumérica ) - transforma o id em nome, variavel (killerrid no caso) em um nome

    dispbottom "texto"- mostra uma mensagem no chat na cor do chat de guild, só para o jogador

    ou message "texto" - mostra uma mensagem no chat e em cima da cabeça do mesmo em cor normal só para o jogador.

     

    O mesmo NPC pode conter os dois labels/eventos e não deve estar em um mapa acredito eu, por conta do check_near,

    pra tanto na hora de definir o mesmo você pode só por um - no local e na classe assim:

     

    -<tab>script<tab>NPCTESTE<tab>-,{<script>} 

    quanto à parte do comando, você deveria usar o comando

     bindatcmd - liga um comando ao label do npc

    ex:  

     

    OnInit:bindatcmd "@allinfo",strnpcinfo(3)+"::OnInfo";end; 

    assim, você pode no label definir o que você deseja, setar uma variável por exemplo.


  6. Da forma que está não dá pra saber qual o erro que você tomou, o arquivo que falta, etc.

    O que o JulioCF sugeriu é que você rediffe o seu executável desmarcando a opção : Ignore Missing File Error

    Não adianta pegar o arquivo da pasta do jogo, tem que pegar o 2014-03-05bRagexe.exe 'limpo' sem ser o patched 

    e depois aplicar o diff que você aplicou, mas sem a opção Ignore Missing File Error

     

    Tentei explicar de uma forma que você entendesse.


  7. O problema é que você não criou ou então não configurou o local do DB e das tabelas de logs

    No arquivo inter.conf você deve configurar os mesmos.

     

    // MySQL Log SQL Database
    log_db_ip: 127.0.0.1
    log_db_port: 3306
    log_db_id: login
    log_db_pw: password
    log_db_db: log
    log_codepage:
    log_login_db: loginlog

  8. É possível das duas formas, tanto com NPC tanto com MOB:
     
    unitwalk <GID>,<x>,<y>;
    unitwalk <GID>,<target_GID>;
     
    Para obter o GID do MOB você deve setar uma variável com o return da função, ou seja:
     
    set .@mob_id, monster "Prontera",150,150,"Poring",1002,1;
     
    E depois usar a variável para conduzir o mesmo:
     
    unitwalk .@mob_id,150,160;
     
    Lembro que o .@ como prefixo de variável, faz com que a mesma seja de escopo, ou seja, ao finalizar o script ela será apagada, então se
    o trigger do comando de walk for localizado em outro momento, você deverá usar outro tipo de variável, podendo ser de NPC com o prefixo "." (.mob_id) ou então "$@" ($@mob_id), que será uma váriavel global temporária, ou até mesmo uma array no NPC em caso de múltiplos mobs.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.