Jump to content

Juan Meissner

Members
  • Content Count

    72
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Juan Meissner


  1.  

    I looked here and nothing, no warning, just does not work when you enter the number for the NPC, otherwise npc works perfectly, but the event ends up being useless because the function of typing the number of monsters does not work.


  2.  

    I'm trying to convert some rathena events to use in the herc.ws emulator, however for some reason I'm not getting through with this one, could anyone help?

     

    Quote



     
    prontera,155,181,5  script  Monster Counting Game   757,{
        function xy_wall;
        end;
        
        OnInit:
            defpattern 1,"([^:]+):.\\*"+.@amount+".*", "OnRight";
            .max_round = 3;
            .max_duration = 3;
            .wall_mob_id = 1085;
            setarray .xy_area,
                151,169,
                161,179;
            setarray .monster,
                PORING,
                DROPS,
                MARIN,
                POPORING;
                
            .monster_size = getarraysize( .monster );
            .npc_name$ = strnpcinfo(0);
            getmapxy( .map$,.npc_x,.npc_y,1 );
            setmapflag .map$,mf_monster_noteleport;
            end;
            
        OnMinute00:
        OnStartEvent:
            if ( !.status ) {
                areawarp .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],.map$,.npc_x,.npc_y;
                killmonster .map$,.npc_name$+"::OnDied";
                killmonster .map$,.npc_name$+"::OnWallDied";
                setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_basilica,1;
                setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_walkable,1;
                .status = 1;
                
                for( .@i = .xy_area[0]; .@i <= .xy_area[2]; .@i++ ){
                    xy_wall( .@i,.xy_area[1] );
                    xy_wall( .@i,.xy_area[3] );
                }
                for( .@i = .xy_area[1]; .@i <= .xy_area[3]; .@i++ ){
                    xy_wall( .xy_area[0],.@i,0 );
                    xy_wall( .xy_area[2],.@i );
                }
                
                do{
                    .@round++;
                    npctalk "Round # "+.@round;
                    sleep 5000;
                    
                    .status = 2;
                    .@mob = .monster[ rand( .monster_size ) ];
                    .@amount = rand( 5,10 );
                    // add-on size influence ?
                    areamonster .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],"",.@mob,.@amount,.npc_name$+"::OnDied";
                
                    deletepset 1;
                    defpattern 1,"([^:]+):.\\*"+.@amount+".*", "OnRight";
                    //defpattern 1, "([^:]+):.*\\sandar 1.*", "Lwarp1";
                    activatepset 1;
                    waitingroom "How many's there?",0;
                    npctalk "Tell me the correct amount of monster in there.";
                    // debugmes " > "+.@amount+" "+getmonsterinfo( .@mob,MOB_NAME );
                    
                    sleep ( .max_duration * 60000 );
                    
                    killmonster .map$,.npc_name$+"::OnDied";
                    delwaitingroom;
                    deletepset 1;
                    .status = 1;
                    sleep 5000;
                    
                }while( .@round < .max_round );
                
                npctalk "That's the Last, thank you for participating.";
                emotion e_thx;
                
                killmonster .map$,.npc_name$+"::OnDied";
                killmonster .map$,.npc_name$+"::OnWallDied";
                setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_basilica,0;
                setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_walkable,1;
                .status = 0;
            }
            end;
            
        OnDied:
        OnWallDied:
            end;
     
        OnRight:
            getmapxy( .@map$,.@x,.@y,0 );
            if ( .status == 0 ) {
                dispbottom "[Counting Game] Event isnt running.";
            }
            else if ( .status == 1 ) {
                dispbottom "[Counting Game] Please wait for the round to start.";
            }
            else if ( distance( .npc_x,.npc_y,.@x,.@y ) > 14 ) {
                dispbottom "[Counting Game] You're too far away.";
            }
            else {
                npctalk "Bravo!! "+strcharinfo(0)+" is correct!!";
                
                // rewards
                getitem 512,1;
                getitem 512,2;
                getitem 512,3;
                
                specialeffect2 EF_POTION_CON;
                awake .npc_name$;
            }
            end;
            
        function    xy_wall {
            .@x = getarg(0);
            .@y = getarg(1);
            monster .map$,.@x,.@y,"",.wall_mob_id,1,.npc_name$+"::OnWallDied";
            setcell .map$,.@x,.@y,.@x,.@y,cell_walkable,0;
            // setcell .map$,.@x,.@y,.@x,.@y,cell_basilica,1;
            return;
        }
     
    }





     

     


  3.  

    I was doing some function comparisons between the emulators and I noticed that apparently Hercules does not have a PVP / PK / GVG damage control, can anyone tell me if there is something similar in herc.ws?

     

    https://github.com/rathena/rathena/blob/0e4ffdacdbe4b39e356ea5e632321fee707a0bfa/conf/battle/misc.conf

     

    // For PK servers. Damage adjustment settings, these follow the same logic
    // as their WoE counterparts (see guild.conf)  
    pk_short_attack_damage_rate: 80
    pk_long_attack_damage_rate: 70
    pk_weapon_attack_damage_rate: 60
    pk_magic_attack_damage_rate: 60
    pk_misc_attack_damage_rate: 60

     


  4.  

    I made some modifications to the TK_DODGE Skill, and for some strange reason the skill stopped working even though I returned it to the old formula, could anyone help me, this really does not make sense because I had compiled, the skill was working just as I wanted, and then stopped working, does not display any error on the console.

     

    		if(sc->data[SC_DODGE_READY] && ( !sc->opt1 || sc->opt1 == OPT1_BURNING ) &&
    			(flag&BF_WEAPON || sc->data[SC_STRUP])
    			&& rnd()%100 < 20) {
    			if (t_sd && pc_issit(t_sd)) pc->setstand(t_sd); //Stand it to dodge.
    			clif->skill_nodamage(bl,bl,TK_DODGE,1,1);
    			if (!sc->data[SC_COMBOATTACK])
    				sc_start4(src, bl, SC_COMBOATTACK, 100, TK_JUMPKICK, src->id, 1, 0, 2000);
    			return 0;
    		}

     

    Does anyone know what it could be? I'm also trying to make the somersault work with short attacks, skills, and weapons that way.

    		if(sc->data[SC_DODGE_READY] && ( !sc->opt1 || sc->opt1 == OPT1_BURNING ) &&
    			(flag&(BF_WEAPON|BF_SHORT|BF_SKILL|BF_NORMAL))
    			&& rnd()%100 < 20) {
    			if (t_sd && pc_issit(t_sd)) pc->setstand(t_sd); //Stand it to dodge.
    			clif->skill_nodamage(bl,bl,TK_DODGE,1,1);
    			if (!sc->data[SC_COMBOATTACK])
    				sc_start4(src, bl, SC_COMBOATTACK, 100, TK_JUMPKICK, src->id, 1, 0, 2000);
    			return 0;
    		}

     

    I develop a custom server, I make much more complex modifications than this one, and for some reason this particular modification is giving me a headache.


  5. Hello everyone, I hired a host and I am trying to put my server online, however I have encountered several problems, and apparently a plugin that is very important so my server is causing some sort of conflict, could someone help me with this?

    Screenshot_1.png


  6.  

    Hi, I am currently using the item option system in my emulator, but I have encountered a problem, even if the item is correct with Random Options, when I equip the item in the character the effects and attributes do not appear, so I would like to know where I am you should look to resolve this issue.


  7.  

    I was analyzing the SRC, and I started looking for some way to change the Level Up effect, but unfortunately I did not find much else besides that:

     

    /// Notifies clients in the area about an special/visual effect (ZC_NOTIFY_EFFECT).
    /// 019b <id>.L <effect id>.L
    /// effect id:
    ///     0 = base level up
    ///     1 = job level up
    ///     2 = refine failure
    ///     3 = refine success
    ///     4 = game over
    ///     5 = pharmacy success
    ///     6 = pharmacy failure
    ///     7 = base level up (super novice)
    ///     8 = job level up (super novice)
    ///     9 = base level up (taekwon)
    void clif_misceffect(struct block_list* bl,int type)
    {
    	unsigned char buf[32];
    
    	nullpo_retv(bl);
    
    	WBUFW(buf,0) = 0x19b;
    	WBUFL(buf,2) = bl->id;
    	WBUFL(buf,6) = type;
    
    	clif->send(buf,packet_len(0x19b),bl,AREA);
    }
    /*==========================================
     * script set pc status registry
     *------------------------------------------*/
    int pc_setparam(struct map_session_data *sd,int type,int val)
    {
    	int delta;
    	nullpo_ret(sd);
    
    	switch(type){
    	case SP_BASELEVEL:
    		if (val > pc->maxbaselv(sd)) //Capping to max
    			val = pc->maxbaselv(sd);
    		if (val > sd->status.base_level) {
    			int stat = 0, i;
    			for (i = 0; i < val - sd->status.base_level; i++)
    				stat += pc->gets_status_point(sd->status.base_level + i);
    			sd->status.status_point += stat;
    		}
    		sd->status.base_level = val;
    		sd->status.base_exp = 0;
    		// clif->updatestatus(sd, SP_BASELEVEL);  // Gets updated at the bottom
    		clif->updatestatus(sd, SP_NEXTBASEEXP);
    		clif->updatestatus(sd, SP_STATUSPOINT);
    		clif->updatestatus(sd, SP_BASEEXP);
    		status_calc_pc(sd, SCO_FORCE);
    		if(sd->status.party_id)
    		{
    			party->send_levelup(sd);
    		}
    		break;

     


  8. Hello everyone, i'm trying to create new modes for monsters AI, but i really don't know how to make that, let me say what i'm trying to do, 

     

    NightTime = The monster just are aggressive in night time.

    DayTime = The monster just are aggressive in day time

    ChangeTargetWeaker = The monster always change to more weaker target, (Anyone who has less HP)

    ChangeTargetLessDef = The mob always change to anyone who has less DEF

    ChangeTargetLessHp = The mob always change to anyone who has less HP.

     

    So anyone can help me to do that? i think that could be a good update for Mob Modes.

×
×
  • Create New...

Important Information

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