Jump to content

Bringer

Members
  • Posts

    746
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Bringer

  1. I believe that's your custom skill issue.

     

    Make sure your custom skill added checking to avoid usage on any guardian/emperium mob.

     

     

    Next time please use a proper title and detailed description.

    Sorry for That but i'm Requeting for Custom Skill Like that on the Video

  2. i got error when recompile anyone help me?
     

    skill.c:21173: warning: conflicting typesfor ‘DOTASWAPfu’
    skill.c:6306: warning: previous implicit declaration of ‘DOTASWAPfu’ was here
    
    case DOTASWAP: 
           DOTASWAPfu(src,bl);
                clif_skill_nodamage(src,bl,skill_id,skill_lv,0);
                break;
    void DOTASWAPfu (struct block_list *src, struct block_list *bl){
        int x=0, y=0;
        x=src->x;
        y=src->y;
        unit_movepos(src, bl->x, bl->y, 1, 1);
        clif_slide(src,bl->x,bl->y);
        unit_movepos(bl, x, y, 1, 1);
        clif_slide(bl,x,y);
        clif_specialeffect(bl,34,AREA);
        clif_specialeffect(src,34,AREA);
        return;
    }
    
  3. Hello rathena i have Custom skill but i want requesting for Quest Skill NPC BUT Need item The Skill is upgradeable to Lvl 4

     

    Requirements: 1x 6193.png

     

    21218#Level 1#
    21219#Level 2#
    21220#Level 3#
    21221#Level 1#
     
    You Need to Leve The Books inorder
     
    anyone?
  4. 				if ( sc->data[SC_REFLECTSHIELD] ) {
    					// Don't reflect non-skill attack if has SC_REFLECTSHIELD from Devotion bonus inheritance
    					if (!skill_id && battle_config.devotion_rdamage_skill_only && sc->data[SC_REFLECTSHIELD]->val4)
    						rdamage = 0;
    					else {
    						rdamage += damage * sc->data[SC_REFLECTSHIELD]->val2 / 100;
    						if (rdamage < 1)
    							rdamage = 1;
    					}
    				}
    
    				if (sc->data[SC_DEATHBOUND] && skill_id != GN_HELLS_PLANT_ATK && !status_bl_has_mode(src,MD_STATUS_IMMUNE)) {
    					if (distance_bl(src,bl) <= 0 || !map_check_dir(map_calc_dir(bl,src->x,src->y), unit_getdir(bl))) {
    						int64 rd1 = 0;
    
    						rd1 = min(damage,status_get_max_hp(bl)) * sc->data[SC_DEATHBOUND]->val2 / 100; // Amplify damage.
    						*dmg = rd1 * 30 / 100; // Received damage = 30% of amplified damage.
    						clif_skill_damage(src, bl, gettick(), status_get_amotion(src), 0, -30000, 1, RK_DEATHBOUND, sc->data[SC_DEATHBOUND]->val1, DMG_SKILL);
    						skill_blown(bl, src, skill_get_blewcount(RK_DEATHBOUND, 1), unit_getdir(src), 0);
    						status_change_end(bl, SC_DEATHBOUND, INVALID_TIMER);
    						rdamage += rd1 * 70 / 100; // Target receives 70% of the amplified damage. [Rytech]
    					}
    				}
    
    				if( sc->data[SC_SHIELDSPELL_DEF] && sc->data[SC_SHIELDSPELL_DEF]->val1 == 2 && !status_bl_has_mode(src,MD_STATUS_IMMUNE) ){
    						rdamage += damage * sc->data[SC_SHIELDSPELL_DEF]->val2 / 100;
    						if (rdamage < 1) rdamage = 1;
    				}
    			}
    		}
    

    i already Remove the WS_CARTTERMINATION But Still Reflect

  5. int maxcount = (skill_id==AM_CANNIBALIZE)? 6-skill_lv : skill_get_maxcount(skill_id,skill_lv);

    Edit that line

    how to make like ?

     

    "Lv 1 - Summons 2 Monsters (LK + Prof)",

    "Lv 2 - Summons 3 Monsters (LK + Prof + Sniper)",

    "Lv 3 - Summons 4 Monsters (LK + Prof + Sniper + Stalker)",

    "Lv 4 - Summons 5 Monsters (LK + Prof + Sniper + Stalker + Creator)",

    "Lv 5 - Summons 6 Monsters (LK + Prof + Sniper + Stalker + Creator + Champion)",

  6. anyone have a Script VIP account system?

    Base EXP: +50%

    Job Exp: +50%

    Hourly Reward: +50%

    No Death Penalty

    85% HP and SP restoration when respawn

    (4,000 Pvp Points – 7 Days Premium)

    (7,000 PvP Points – 14 Days Premium)

    (10,000 PvP Points – 30 Days Premium

  7. On 9/18/2016 at 6:02 AM, imat1 said:

    Here's my version...

     

    itested still better my version hehe

    On 9/19/2016 at 3:24 AM, imat1 said:

    can you PM me your source code?

    Pm Send compare your code on my code check what is better

  8. Working 99%

    But the Problem is Knockback issue

     

    Can anyone How to Remove the Knockback Problem ?

    #ifndef RENEWAL
    	case NJ_ISSEN:
    #endif
    	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);
    			}
    		//Client expects you to move to target regardless of distance
    		//{
    			struct unit_data *ud = unit_bl2ud(src);
    			short dx,dy;
    			int i,speed;
    			i = skill_id == MO_EXTREMITYFIST?1:2; //Move 2 cells for Issen, 1 for Asura
    			dx = bl->x - src->x;
    			dy = bl->y - src->y;
    			if (dx < 0) dx-=i;
    			else if (dx > 0) dx+=i;
    			if (dy < 0) dy-=i;
    			else if (dy > 0) dy+=i;
    			if (!dx && !dy) dy++;
    			if (map_getcell(src->m, src->x+dx, src->y+dy, CELL_CHKNOPASS))
    			{
    				dx = bl->x;
    				dy = bl->y;
    			} else {
    				dx = src->x + dx;
    				dy = src->y + dy;
    			}
    
    			if(unit_walktoxy(src, dx, dy, 2) && ud) {
    				//Increase can't walk delay to not alter your walk path
    				ud->canmove_tick = tick;
    				speed = status_get_speed(src);
    				for (i = 0; i < ud->walkpath.path_len; i ++)
    				{
    					if(ud->walkpath.path[i]&1)
    						ud->canmove_tick+=7*speed/5;
    					else
    						ud->canmove_tick+=speed;
    				}
    			}
    		}
    		break;
  9. 	case AM_SPHEREMINE:
    	case AM_CANNIBALIZE:
    		{
    			int summons[5] = { MOBID_G_MANDRAGORA, MOBID_G_HYDRA, MOBID_G_FLORA, MOBID_G_PARASITE, MOBID_G_GEOGRAPHER };
    			int class_ = skill_id==AM_SPHEREMINE?MOBID_MARINE_SPHERE:summons[skill_lv-1];
    			int 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 = (enum mob_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;
    		case AM_CANNIBALIZE:
    		case AM_SPHEREMINE: {
    			int c=0;
    			int summons[5] = { MOBID_G_MANDRAGORA, MOBID_G_HYDRA, MOBID_G_FLORA, MOBID_G_PARASITE, MOBID_G_MANDRAGORA };
    			int maxcount = (skill_id==AM_CANNIBALIZE)? 6-skill_lv : skill_get_maxcount(skill_id,skill_lv);
    			int mob_class = (skill_id==AM_CANNIBALIZE)? summons[skill_lv-1] :MOBID_MARINE_SPHERE;
    			if(battle_config.land_skill_limit && maxcount>0 && (battle_config.land_skill_limit&BL_PC)) {
    				i = map_foreachinmap(skill_check_condition_mob_master_sub, sd->bl.m, BL_MOB, sd->bl.id, mob_class, skill_id, &c);
    				if(c >= maxcount ||
    					(skill_id==AM_CANNIBALIZE && c != i && battle_config.summon_flora&2))
    				{	//Fails when: exceed max limit. There are other plant types already out.
    					clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
    					return false;
    				}
    			}
    			break;
    		}

    i want to change it

     

    Per Level There will 2 monster

    Monster will Increase by Level

  10. i have but 99% only having knockback

    On 9/12/2016 at 10:08 PM, Influx said:

    Do you mind posting or PMing the source?

    PM Sent

    On 9/15/2016 at 6:21 AM, Influx said:

    Thanks man, and yeah it's incredibly close, just the knockback's the issue :v

    hehe 1% problem knockback issue

  11.  

    Finally found one and works fine on latest version. (Credits to the Owner/s)
     
    First : I got the main source codes edited by malufett here, but it allows you to use @pk anywhere.
     
     
    Second : So I keep on searching and I found this function suggested by Brynner to restrict anyone to use @pk state on/off only on towns/non-PVP maps. 
     
     
    if( map[sd->bl.m].flag.pvp || map[sd->bl.m].flag.gvg || map[sd->bl.m].flag.gvg_castle || map[sd->bl.m].flag.gvg_dungeon ) {
    clif_displaymessage(fd, "You can only change your PK state on non-PVP maps.");
    return -1;
    } 
     
    Third : I made a little editing on adding this function from Brynner.
     
    at atcommand.c
     
        int atcommand_pkmode( const int fd, struct map_session_data *sd, const char *command, const char *message ) {
    
            nullpo_retr(-1, sd);
    
            if( map[sd->bl.m].flag.pvp || map[sd->bl.m].flag.gvg || map[sd->bl.m].flag.gvg_castle || map[sd->bl.m].flag.gvg_dungeon ) {
                clif_displaymessage(fd, "You can only change your PK state on non-PVP maps.");
                return -1;
            }
            
            else if (!sd->state.pk_mode) {
                sd->state.pk_mode = 1;
                clif_displaymessage(sd->fd, "You are now no longer in PK mode.");
            }
            
            else {
                sd->state.pk_mode = 0;
                clif_displaymessage(sd->fd, "Returned to normal state.");
            }
            
            return 0;
        } 
    Im currently using this code and it works fine on my test server. Thanks to all!

     

    this file

     pk_mod_rA_r16215.PATCH?

×
×
  • Create New...