Jump to content

Bringer

Members
  • Posts

    745
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Bringer

  1.  

    			int summons[5] = { 1661, 1643, 1640, 1644 };
    			int class_ = skill_id == AM_SPHEREMINE ? MOBID_MARINE_SPHERE : summons[skill_lv - 1];
    			enum mob_ai ai = (skill_id == AM_SPHEREMINE) ? AI_SPHERE : AI_FLORA;
    			struct mob_data *md;
    
    			// Correct info, don't change any of this! [celest]
    			md = mob_once_spawn_sub(src, src->m, x, y, status_get_name(src), class_, "", SZ_SMALL, ai);
    			if (md) {
    				md->master_id = src->id;
    				md->special_state.ai = ai;
    				if (md->deletetimer != INVALID_TIMER)
    					delete_timer(md->deletetimer, mob_timer_delete);
    				md->deletetimer = add_timer(gettick() + skill_get_time(skill_id, skill_lv), mob_timer_delete, md->bl.id, 0);
    				mob_spawn(md); //Now it is ready for spawning.
    			}
    		}
    		break;

     

  2. 2 hours ago, Stickman said:
    How can I do growing up 50 points of luck of status i can get 1 point of perfect dodge

     

      Find This on your Status.c

    here mine

          if (bl->type&battle_config.enable_perfect_flee) {
              stat = status->flee2;
              stat += 10 + (status->luk * 10/20); // (every 20 luk = +1 perfect flee)
              status->flee2 = cap_value(stat, 0, SHRT_MAX);
          


     

  3. 3 hours ago, Kami675 said:

    Hello everyone! I have attempted to add Pajodex on discord and have attempted to message him on here but I am unable to contact him. I was looking to purchase his Automated MvP Reward and Ladder system but it is no longer for sale. I was wondering if anyone had a script similar to that one or if that exact script was around somewhere that I missed. I'll post a link of what I am talking about

    Link:

    thanks in advance,

    - Kris

    Free Version

    https://github.com/pajodex/ScriptCollections/blob/master/mvp_kill.txt

  4. 9 hours ago, pachupappy said:

    anyone knows where is the source of that headgear item saying "ROK ON!!" on top of your head? I can't find any in google. an answer will be much appreciated. thanks!
     

    so far i know that sprite made it for Sarah server

  5. i try to make MOD for Monk Spirit

     

    /**
     * Does attribute fix modifiers.
     * Added passing of the chars so that the status changes can affect it. [Skotlex]
     * Note: Passing src/target == NULL is perfectly valid, it skips SC_ checks.
     * @param src
     * @param target
     * @param damage
     * @param atk_elem
     * @param def_type
     * @param def_lv
     * @return damage
     */
    int64 battle_attr_fix(struct block_list *src, struct block_list *target, int64 damage,int atk_elem,int def_type, int def_lv)

     

    	if (sc->data[SC_SPIRIT] && (sc->data[SC_SPIRIT]->val2 == SL_MONK && def_type == ELE_GHOST))
    		ratio = 75;
    
    #ifdef RENEWAL
    	//In renewal, reductions are always rounded down so damage can never reach 0 unless ratio is 0
    	damage = damage - (int64)((damage * (100 - ratio)) / 100);
    #else
    	damage = (int64)((damage*ratio)/100);
    #endif
    
    	//Damage can be negative, see battle_config.attr_recover
    	return damage;
    }

    image.png.e0cf31f7d17569a84bd7f370df22b5c7.png

     

  6. 56 minutes ago, Vale said:

     as the title itself said it, I want to unhide the NPC when the event is done

    for example, there is a winner, then the other players can closed the dialog box here is my script...

    
    // = Script made by RIKIMARU on rathena.org
    // = Profile Link :
    // = http://rathena.org/board/user/434-rikimaru/
    // = ENJOY THIS SCRIPT!
    //===================================================================================
    //	    //=====//	 /==/	 /==/		  /==/	 
    //	   //	 //	 /==/	 /==/  /=/	 /==/		
    //	  //=====//			  /==/  /=/			 /==============/	 /========/   /==//===/    /==/	 /==/
    //	 //=//////    /==/	  /==//=/	   /==/    /==/==/==/==/==/	 /	 /  /   /==/		 /==/	 /==/
    //    // ==	    /==/	  /==//=/	   /==/    /==/  /==/  /==/	 ======/  /   /==/		 /==/	 /==/
    //   //   ==	  /==/	  /==/  /=/	 /==/    /==/  /==/  /==/	 / /===/  /   /==/		 /==/	 /==/
    //  //	 ==    /==/	  /==/   /=/    /==/    /==/  /==/  /==/	 / /===/  /   /==/		 /==/=====/==/
    // //	   ==  /==/	  /==/    /=/   /==/    /==/  /==/  /==/	 /========/   /==/		 /==///////==/
    // ================ rAthena Script ==================================================
    // ============== Information =======================================================
    // = Automated Guess the Number Event
    // = Made by :
    // = Rikimaru
    //===== Current Version: ===============================================
    //= 2.3
    //===== Compatible With: ===============================================
    //= any rAthena SVN
    //===== Description: ===================================================
    //= This is an automated Guess the Number Event,which I made
    //= for having fun in game,guessing a number. The number is going
    //= to be a number between 1 and 2000 , so it'll take time to find out
    //= the correct number.
    //===== Additional Comments: ===========================================
    //= 2.0 Fixed an announcer Bug [Rikimaru]
    //= 2.1 Fixed a few Typos in the Script [Rikimaru]
    //= 2.2 Fixed the Prize,which was not working correctly. [Rikimaru]
    //= 2.3 Fixed another little Bug. [Rikimaru]
    //======================================================================
    //= DO NOT REMOVE MY CREDITS AND CLAIM MY WORK AS YOURS
    //======================================================================
    -	script	guessannouncer	-1,{
    OnClock0000:
    OnClock0200:
    OnClock0400:
    OnClock0600:
    OnClock0800:
    OnClock1000:
    OnClock1200:
    OnClock1400:
    OnClock1600:
    OnClock1800:
    OnClock2200:
    announce "[Announcement]: Guess The Number Event will begin",0;
    sleep 40000;
    announce "[Announcement]: To join event please type @joinevent",0;
    sleep 30000;
    announce "Guess the Number: Is starting in 30 Seconds in Main  Town!",0;
    sleep 20000;
    announce "Guess the Number: 10 Seconds! Gather up in Main  Town quick!",0;
    sleep 5000;
    announce "Guess the Number: 5 Seconds Left!",0;
    sleep 1000;
    announce "Guess the Number: 4 Seconds!",0;
    sleep 1000;
    announce "Guess the Number: 3 Seconds!",0;
    sleep 1000;
    announce "Guess the Number: 2 Seconds!",0;
    sleep 1000;
    announce "Guess the Number: 1 Second!",0;
    sleep 1000;
       announce "Guess the Number: The event has started!",0;
       enablenpc "guess";
       end;
    
    OnInit:
       disablenpc "guess";
       end;
    }
    // ==============================================================================
    firstcity,240,45,8	script	Guess the Number::guess	952,{
    // =================== Setting the NPC Name and Prize and amount  =============
    set .@n$,"^FF0000[Guess the Number]^000000";
    set @prize,33000;//Change the 7227 to your reward item ID
    set @amoun,10;//Change the 10 to your reward amount
    // ==================== End of settings =========================================
    if(.guessstart==1) goto Oneventevent;
    set .usednumber, rand(1,3000);
    announce "Guess the Number: Guess the Number Event Started in Main Town!",0;
    set .guessstart,1;
    Oneventevent:
    mes .@n$;
    mes "Guess the number...It is a number between between 1 and 3,000!";
    input .@guessnumber;
    next;
    if(.@guessnumber > .usednumber) {
    mes .@n$;
    mes "My number is ^FF0000SMALLER^000000 than the one you guessed!";
    close;
    } else if(.@guessnumber < .usednumber) {
    mes .@n$;
    mes "My number is ^FF0000BIGGER^000000 than the one you guessed!";
    close;
    } else if(.@guessnumber == .usednumber) {
    announce ""+strcharinfo(0)+" has won the Guess the Number Event! My number was "+.usednumber+"!",0;
    mes .@n$;
    mes "You have guessed my number! Congratulations!";
    getitem @prize,@amoun;
    disablenpc "guess";
    set .guessstart,0;
    close2;
    end;
    }
    }

     

     

    announce ""+strcharinfo(0)+" has won the Guess the Number Event! My number was "+.usednumber+"!",0;
    mes .@n$;
    mes "You have guessed my number! Congratulations!";
    getitem @prize,@amoun;
    disablenpc "guess";

     

    ---------------------------------------
    
    *disablenpc "<NPC object name>";
    *enablenpc "<NPC object name>";
    
    These two commands will disable and enable, respectively, an NPC object
    specified by name. The disabled NPC will disappear from sight and will no longer
    be triggerable in the normal way. It is not clear whether it will still be
    accessible through 'donpcevent' and other triggering commands, but it probably
    will be. You can disable even warp NPCs if you know their object names, which is
    an easy way to make a map only accessible through walking half the time. Then
    you 'enablenpc' them back.
    
    You can also use these commands to create the illusion of an NPC switching
    between several locations, which is often better than actually moving the NPC -
    create one NPC object with a visible and a hidden part to their name, make a few
    copies, and then disable all except one.
    
    ---------------------------------------
    
    *hideonnpc "<NPC object name>";
    *hideoffnpc "<NPC object name>";
    
    These commands will make the NPC object specified display as hidden/visible,
    even though not actually disabled per se. Hidden as in thief Hide skill, but
    unfortunately, not detectable by Ruwach or Sight.
    
    As they are now, these commands are pointless, it is suggested to use
    'disablenpc'/'enablenpc', because these two commands actually unload the NPC
    sprite location and other accompanying data from memory when it is not used.
    However, you can use these for some quest ideas (such as cloaking NPCs talking
    while hidden then revealing.... you can wonder around =P

     

  7. 24 minutes ago, Armony said:

     

    Hi, rA today i have a little mistake about the parry, I've modified this skill allowing use with One-hand with Linked State everything i'ts working fine until i switch any equipment.

    see below the behavior

    parry issue.gif

    rA version 9389b

    
    //skill_check_condition_castbegin
    
    if (require.weapon && !(pc_check_weapontype(sd, require.weapon) ||
    		(skill_id == LK_PARRYING && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_KNIGHT && sd->weapontype1 == W_1HSWORD))) {
      
      
      
      //skill_check_condition_castend
      if (require.weapon && !(pc_check_weapontype(sd, require.weapon) ||
    	(skill_id == LK_PARRYING && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_KNIGHT && sd->weapontype1 == W_1HSWORD))) {
    		clif_skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);
    		return false;
    	}

    check this


    https://rathena.org/board/topic/116983-working-lk-soul-link-mod/?do=findComment&comment=351721

  8. 52 minutes ago, Mabuhay said:

    I dont think its a bug?

    Have you checked this?

    
    	case MO_EXTREMITYFIST:
    		{
    			struct block_list *mbl = bl; // For NJ_ISSEN
    			short x, y, i = 2; // Move 2 cells (From target)
    			short dir = map_calc_dir(src,bl->x,bl->y);
    
    			skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
    			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,src,SC_EXTREMITYFIST2,100,skill_lv,skill_get_time(skill_id,skill_lv));
    #endif
    			} else {
    				status_set_hp(src, 1, 0);
    				status_change_end(src, SC_NEN, INVALID_TIMER);
    				status_change_end(src, SC_HIDING, INVALID_TIMER);
    			}
    			if (skill_id == MO_EXTREMITYFIST) {
    				mbl = src; // For MO_EXTREMITYFIST
    				i = 3; // Move 3 cells (From caster)
    			}
    			if (dir > 0 && dir < 4)
    				x = -i;
    			else if (dir > 4)
    				x = i;
    			else
    				x = 0;
    			if (dir > 2 && dir < 6)
    				y = -i;
    			else if (dir == 7 || dir < 2)
    				y = i;
    			else
    				y = 0;
    			// Ashura Strike still has slide effect in GVG
    			if ((mbl == src || (!map_flag_gvg2(src->m) && !map_getmapflag(src->m, MF_BATTLEGROUND))) &&
    				unit_movepos(src, mbl->x + x, mbl->y + y, 1, 1)) {
    				clif_blown(src);
    				clif_spiritball(src);
    			}
    		}
    		break;

     

    i aready changed the slide animation is working fine im talking about the knockback here sample of Final Strike with knockback

    https://youtu.be/JGkJupv-1lM

     

    here video of asura 

    https://youtu.be/DJ6XIAzN9Wg

     

  9. On 1/15/2020 at 6:42 PM, Haruka Mayumi said:

    as far as i know. the client reads the animation first before sending another action from the player. so you need to remove the animation of hiding skill.. there are times that skill_db.txt wont solve your problems.

    clif.cpp

    
    bool clif_skill_nodamage(struct block_list *src,struct block_list *dst, uint16 skill_id, int heal, t_tick tick)
    {
    	unsigned char buf[17];
    #if PACKETVER < 20130731
    	const int cmd = 0x11a;
    #else
    	const int cmd = 0x9cb;
    #endif
    	int offset = 0;
    	bool success = ( tick != 0 );
    
    	nullpo_ret(dst);
    	
    +	if( skill_id == TF_HIDING ) return success;

     

    what about for asura strike ?


    i fully disable all cast delay from 
    Dangerous Soul Collect
    Critical Explosion
    Asura Strike

×
×
  • Create New...