Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: db/pre-re/skill_unit_db.txt
- ======================================================================================================
- @@ -37,7 +37,7 @@
- 83,0x86, , 0, 3,1000,enemy, 0x010 //WZ_METEOR
- 85,0x86, , 0, 6:6:6:6:6:6:6:6:6:6:8,1250,enemy,0x018 //WZ_VERMILION
- 87,0x8d, , -1, 0, -1,all, 0x010 //WZ_ICEWALL
- - 89,0x86, , 0, 5, 450,enemy, 0x018 //WZ_STORMGUST
- + 89,0x86, , 0, 1, 450,enemy, 0x018 //WZ_STORMGUST
- 91,0x86, , 0, 2,1000,enemy, 0x010 //WZ_HEAVENDRIVE
- 92,0x8e, , 2, 0, -1,enemy, 0x010 //WZ_QUAGMIRE
- 115,0x90, , 0, 1,1000,enemy, 0x006 //HT_SKIDTRAP
- Index: src/map/skill.h
- ======================================================================================================
- @@ -38,7 +38,7 @@ struct status_change_entry;
- #define MAX_SQUARE_LAYOUT 5 // 11*11 Placement of a maximum unit
- #define MAX_SKILL_UNIT_COUNT ((MAX_SQUARE_LAYOUT*2+1)*(MAX_SQUARE_LAYOUT*2+1))
- #define MAX_SKILLTIMERSKILL 15
- -#define MAX_SKILLUNITGROUP 25
- +#define MAX_SKILLUNITGROUP 810
- #define MAX_SKILL_ITEM_REQUIRE 10
- #define MAX_SKILLUNITGROUPTICKSET 25
- #define MAX_SKILL_NAME_LENGTH 30
- @@ -1676,6 +1676,8 @@ struct skill_unit_group {
- int party_id;
- int guild_id;
- int bg_id;
- + int16 cux;
- + int16 cuy;
- int map;
- int target_flag; //Holds BCT_* flag for battle_check_target
- int bl_flag; //Holds BL_* flag for map_foreachin* functions
- Index: src/map/skill.c
- ======================================================================================================
- @@ -9947,7 +9950,6 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
- case WZ_FIREPILLAR:
- case WZ_QUAGMIRE:
- case WZ_VERMILION:
- - case WZ_STORMGUST:
- case WZ_HEAVENDRIVE:
- case PR_SANCTUARY:
- case PR_MAGNUS:
- @@ -10078,6 +10080,15 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
- skill_id,0,skill_lv,sg->group_id,skill->get_time(skill_id,skill_lv));
- flag|=1;
- break;
- + // Initialize SG cells on a 9x9 grind [GrumpyPanda]
- + case WZ_STORMGUST:
- + {
- + int i;
- + int j;
- + for(i=0;i<9;i++)
- + for(j=0;j<9;j++)
- + skill->unitsetting(src,skill_id,skill_lv,x-4+i,y-4+j,0);
- + }
- + break;
- case RG_CLEANER: // [Valaris]
- r = skill->get_splash(skill_id, skill_lv);
- map->foreachinarea(skill->graffitiremover,src->m,x-r,y-r,x+r,y+r,BL_SKILL);
- @@ -11047,6 +11058,8 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
- group->state.song_dance = (unit_flag&(UF_DANCE|UF_SONG)?1:0)|(unit_flag&UF_ENSEMBLE?2:0); //Signals if this is a song/dance/duet
- group->state.guildaura = ( skill_id >= GD_LEADERSHIP && skill_id <= GD_HAWKEYES )?1:0;
- group->item_id = req_item;
- + group->cux = x;
- + group->cuy = y;
- //if tick is greater than current, do not invoke onplace function just yet. [Skotlex]
- if (DIFF_TICK(group->tick, timer->gettick()) > SKILLUNITTIMER_INTERVAL)
- active_flag = 0;
- @@ -15572,6 +15611,8 @@ struct skill_unit_group* skill_initunitgroup (struct block_list* src, int count,
- group->val1 = 0;
- group->val2 = 0;
- group->val3 = 0;
- + group->cux = 0;
- + group->cuy = 0;
- group->skill_id = skill_id;
- group->skill_lv = skill_lv;
- group->unit_id = unit_id;
- @@ -15789,10 +15830,19 @@ int skill_unit_timer_sub_onplace(struct block_list* bl, va_list ap) {
- return 0;
- nullpo_ret(group);
- -
- + // This enables SG and MS to splash onto LP [GrumpyPanda]
- + switch(group->skill_id){
- + case WZ_METEOR:
- + case WZ_STORMGUST:
- + {
- + if(map->getcell(bl->m, group->cux, group->cuy, CELL_CHKLANDPROTECTOR))
- + return 0;
- + }
- + break;
- + default:
- if( !(skill->get_inf2(group->skill_id)&(INF2_SONG_DANCE|INF2_TRAP|INF2_NOLP)) && map->getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR) )
- return 0; //AoE skills are ineffective. [Skotlex]
- -
- + }
- if( battle->check_target(&su->bl,bl,group->target_flag) <= 0 )
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement