Перейти к содержанию

Рекомендуемые сообщения

Помогите исправить ошибку скила WS_WEAPONREFINE у вайтсмита !

использую pre-renewal Hercules

Пытаюсь заточить Weapon LV 1 ломается на +2

при 200 luk

Помогите разораться в чём проблема

Ссылка на комментарий
Поделиться на другие сайты

Помогите исправить ошибку скила WS_WEAPONREFINE у вайтсмита !

использую pre-renewal Hercules

Пытаюсь заточить Weapon LV 1 ломается на +2

при 200 luk

Помогите разораться в чём проблема

Заходим в clif.c ищем кусок начинается он с


/// Presents a list of weapon items that can be refined [Taken from jAthena] (ZC_NOTIFY_WEAPONITEMLIST).

заканчивается



sd->menuskill_id = WS_WEAPONREFINE;
sd->menuskill_val = skill_lv;
}
}

и весь этот кусок меняем на



/// Presents a list of weapon items that can be refined [Taken from jAthena] (ZC_NOTIFY_WEAPONITEMLIST).
/// 0221 <packet len>.W { <index>.W <name id>.W <refine>.B <card1>.W <card2>.W <card3>.W <card4>.W }*
void clif_item_refine_list(struct map_session_data *sd)
{
int i,c;
int fd;
uint16 skill_lv;
int refine_item[5];

nullpo_retv(sd);

skill_lv = pc_checkskill(sd,WS_WEAPONREFINE);

fd=sd->fd;

refine_item[0] = -1;
refine_item[1] = pc_search_inventory(sd,ITEMID_PHRACON);
refine_item[2] = pc_search_inventory(sd,ITEMID_EMVERETARCON);
refine_item[3] = refine_item[4] = pc_search_inventory(sd,ITEMID_ORIDECON);

WFIFOHEAD(fd, MAX_INVENTORY * 13 + 4);
WFIFOW(fd,0)=0x221;
for(i=c=0;i<MAX_INVENTORY;i++){
unsigned char wlv;
if(sd->status.inventory[i].nameid > 0 && sd->status.inventory[i].refine < skill_lv &&
sd->status.inventory[i].identify && (wlv=itemdb_wlv(sd->status.inventory[i].nameid)) >=1 &&
refine_item[wlv]!=-1 && !(sd->status.inventory[i].equip&EQP_ARMS)){
WFIFOW(fd,c*13+ 4)=i+2;
WFIFOW(fd,c*13+ 6)=sd->status.inventory[i].nameid;
WFIFOB(fd,c*13+ 8)=sd->status.inventory[i].refine;
clif_addcards(WFIFOP(fd,c*13+9), &sd->status.inventory[i]);
c++;
}
}
WFIFOW(fd,2)=c*13+4;
WFIFOSET(fd,WFIFOW(fd,2));
if (c > 0) {
sd->menuskill_id = WS_WEAPONREFINE;
sd->menuskill_val = skill_lv;
}
}

и пробуем компилировать серв)

так же советую проверить db/pre-re/refine_db.txt

там должно быть вот так


// Armors
0,70,0,0,100:0,100:0,100:0,100:0,60:0,30:0,30:0,15:0,15:0,10:0
// Level 1 weapons
1,200,8,300,100:0,100:0,100:0,100:0,100:0,100:0,100:0,30:0,30:0,10:0
// Level 2 weapons
2,300,7,500,100:0,100:0,100:0,100:0,100:0,100:0,40:0,20:0,20:0,10:0
// Level 3 weapons
3,500,6,800,100:0,100:0,100:0,100:0,100:0,60:0,40:0,15:0,15:0,10:0
// Level 4 weapons
4,700,5,1300,100:0,100:0,100:0,100:0,60:0,30:0,30:0,15:0,15:0,10:0

Изменено пользователем Fizik
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Спасибо помогло

Всегда пожалуйста) На самом деле refinedb.txt и скил Смита (точка) связанны если поставить в дб 100 на всё то и смит точит с шансом 100% если правильно помню там разница 20-25%, Если шанс заточки например (mace [4]+9 20-25%) то смитом шанс 40-45%

Изменено пользователем Fizik
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика