Тайминг скилл из Абры
-
В качестве темы для разговора (флуд)
Поскольку я люблю все понимать до конца, залез в jathena-1735 и 2060
Что нашел:
case SA_TAMINGMONSTER:
clif_skill_nodamage(src,bl,skillid,skilllv,1);
** if (dstmd){**
** int i;**
** for(i=0;i<MAX_PET_DB;i++){**
** if(dstmd->class == pet_db**.class){**
** pet_catch_process1(sd,dstmd->class);**
** break;**
** }}}**
** break;**
**
**
**
т.е. вызывается не стандартная процедура pet_catch_process1 тайминга мобов ( стандартная pet_catch_process2):
**
int pet_catch_process1(struct map_session_data sd,int target_class)
{ nullpo_retr(0, sd);
** sd->catch_target_class = target_class;
** clif_catch_process(sd);
** return 0;*
}
**
**
**
вот clif_catch_process
**
int clif_catch_process(struct map_session_data sd)
{
** int fd;
** nullpo_retr(0, sd);
** fd=sd->fd;*
** WFIFOW(fd,0)=0x19e;**
** WFIFOSET(fd,packet_db[0x19e].len);**
** return 0;**
}
**
**
**
**Дальше мозга не хватило.
**
**Кто знает почему все-таки у нас все пишут формулу стантдартного тайминга которая прописана в pet_catch_process2? или был фикс?
**
Объясните для общего развития. -
@"FateFull":
В качестве темы для разговора (флуд)т.е. вызывается не стандартная процедура pet_catch_process1 тайминга мобов ( стандартная pet_catch_process2):
Дальше мозга не хватило.Мозга не хватило не дальше, а ближе. Как раз pet_catch_process1 и есть стандартная процедура тайминга мобов:
@"script.c":
{buildin_catchpet,"pet","i"},
int buildin_catchpet(struct script_state *st)
{
int pet_id;
pet_id= conv_num(st,& (st->stack->stack_data[st->start+2]));
pet_catch_process1(script_rid2sd(st),pet_id);
return 0;
}А pet_catch_process2, AFAIK, вызывается уже после того, как клиент отправит на сервер сообщение, что барабан рандома благополучно остановлен.