Jump to content

Sunlight

Members
  • Content Count

    12
  • Joined

  • Last visited

Posts posted by Sunlight


  1. Andei percebendo que o asura do meu servidor não está sendo limitado a 6k de SP como deveria ser, alguém pode me ajudar, pois quanto mais SP o Monk possui mais Dano está tirando no asura, queria limitar a 6k de sp o dano máximo do asura.

    battle.c:

    				case MO_EXTREMITYFIST:
    	#ifndef RENEWAL
    					{
    						//Overflow check. [Skotlex]
    						unsigned int ratio = skillratio + 80*(8 + st->sp/35);
    						//You'd need something like 6K SP to reach this max, so should be fine for most purposes.
    						if (ratio > 60000) ratio = 60000; //We leave some room here in case skillratio gets further increased.
    						skillratio = (unsigned short)ratio;
    						status->set_sp(src, 0, 0);
    					}

     


  2. Olá galerinha, venho através desse tópico pedir vocês uma ajudinha para um problema que está me intrigando, video abaixo:

     

     

    Sei que o problema está no arquivo unit.c(eu acho) dei algumas pesquisadas em fórum internacionais, alguns desenvolvedores citaram que o problema se encontrava no mesmo. Más não obtive sucesso na correção do problema !!

     

    existe alguma possivel correção para o problema ?


  3. Troquei 

    case NJ_ISSEN:		case MO_EXTREMITYFIST:			{				short x, y, i = 2; // Move 2 cells for Issen(from target)				struct block_list *mbl = bl;				short dir = 0;								skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);				if( skill_id == MO_EXTREMITYFIST ) {					mbl = src;					i = 3; // for Asura(from caster)					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 // RENEWAL				} else {					status_change_end(src, SC_NJ_NEN, INVALID_TIMER);					status_change_end(src, SC_HIDING, INVALID_TIMER);#ifdef RENEWAL					status->set_hp(src, max(status_get_max_hp(src)/100, 1), 0);#else // not RENEWAL					status->set_hp(src, 1, 0);#endif // RENEWAL				}				dir = map->calc_dir(src,bl->x,bl->y);				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;				if( (mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground) ) // only NJ_ISSEN don't have slide effect in GVG				 && unit->movepos(src, mbl->x+x, mbl->y+y, 1, 1)				) {					//clif->slide(src, src->x, src->y);					clif->fixpos(src);					//clif->spiritball(src);				}			}			break;

     

    Por 

    case NJ_ISSEN:			status_change_end(src, SC_NEN, INVALID_TIMER);			status_change_end(src, SC_HIDING, INVALID_TIMER);			// fall through		case MO_EXTREMITYFIST:		if( skill_id == MO_EXTREMITYFIST )		{			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		}		//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;			}			skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);			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;

    Para voltar ao efeito antigo de movimentação do asura e do ataque mortal, compilei não deu nenhum erro. Mas quando o Monk asura o char trava, não podendo se movimentar ou asura novamente, so voltar a anda quando do @go 0 ou relogo.

     

    Por favor me ajudem.


  4. Fiz as seguintes alterações no arquivo skill.c para voltar a formula do effect e movimentação de champ após o asura.

     

    Troquei:

     

     

    case MO_EXTREMITYFIST:			{				short x, y, i = 2; // Move 2 cells for Issen(from target)				struct block_list *mbl = bl;				short dir = 0;								skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);				if( skill_id == MO_EXTREMITYFIST )				{					mbl = src;					i = 3; // for Asura(from caster)					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				}else					status_set_hp(src, 	#ifdef RENEWAL					max(status_get_max_hp(src)/100, 1)	#else					1	#endif					, 0);								dir = map_calc_dir(src,bl->x,bl->y);				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;				if( (mbl == src || (!map_flag_gvg(src->m) && !map[src->m].flag.battleground) ) && // only NJ_ISSEN don't have slide effect in GVG					unit_movepos(src, mbl->x+x, mbl->y+y, 1, 1) ) {					clif->slide(src, src->x, src->y);					//uncomment this if you want to remove MO_EXTREMITYFIST glitchy walking effect. [malufett]					//clif->fixpos(src);				}			}			break;

     

     

     

    Por:

     

     

    case MO_EXTREMITYFIST:		if( skill_id == MO_EXTREMITYFIST )		{			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		}		//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;			}			skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);			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;

     

     

     

    Funciono, más o problema é que o asura nao consome SP após as alterações, alguem poderia me ajudar ?


  5. Mesmo com as configurações:

     

    item_rate_card: 10000

    item_rate_card_boss: 10000

    item_drop_card_min: 1

    item_drop_card_max: 10000

     

    As cards não estão dropando 100% o drop ainda continua 1.0%.

     

    Alguem poderia me ajudar?

×
×
  • Create New...

Important Information

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