kadze
-
Posts
58 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by kadze
-
-
-
overflow
-
-
Solved. Problem with skillinfo
-
Hello. I'm using 2022-04-06 exe. And after login i see this window. I think problem in skillinfolist.lub (use ROenglishRE) but i dont have new. Can u help me?
-
he's out of town. come back and answer
-
close2; instead of close;
Remember, close; teminates the script execution, means everything below close; wont happen.
close2? why? he gets an apple every 15 minutes, why make another one?
-
it does not display the timer, but gives an apple every 15 minutes
-
if (time>gettimetick(2)) { mes "You take your apple"; close; }
set time, gettimetick ( 2 ) + 900;
getitem apple,1;
-
-
-
in vending.c
rewrite
pc_payzeny(sd, (int)z, LOG_TYPE_VENDING, vsd); if( battle_config.vending_tax ) z -= z * (battle_config.vending_tax/10000.); pc_getzeny(vsd, (int)z, LOG_TYPE_VENDING, sd);
to
else { pc_payzeny(sd, (int)z, LOG_TYPE_VENDING, vsd); if( battle_config.vending_tax ) z -= z * (battle_config.vending_tax/10000.); pc_getzeny(vsd, (int)z, LOG_TYPE_VENDING, sd); }
-
data/lua514/luafiles сюда положили луашки?
-
-
Annie,is not work(
-
not my,but i have this
maybe who fix it
[EXPAMLE] npcsetstatus STATUS_STR, 1; npcsetstatus STATUS_AGI, 9; npcsetstatus STATUS_VIT, 1; npcsetstatus STATUS_INT, 40; npcsetstatus STATUS_DEX, 55; npcsetstatus STATUS_LUK, 1; npcsetstatus STATUS_LEVEL, 65; npcsetstatus STATUS_JOBLV, 50; npcsetstatus STATUS_RECALC, 1; [NPC.H] struct npc_status { int blevel, jlevel; struct status_data sd; short head_top, head_mid, head_bottom; int castrate, delayrate, hprate, sprate, atk_rate,hprecov_rate,sprecov_rate, matk_rate,critical_rate,hit_rate,flee_rate,flee2_rate, def_rate,def2_rate,mdef_rate,mdef2_rate, double_rate, double_add_rate, perfect_hit, perfect_hit_add, splash_range, splash_add_range; }; struct npc_status* status; [sTATUS.C] int status_calc_npc_(struct npc_data* nd) { struct npc_status *status; const struct status_change *sc = &nd->sc; int i; struct item_data* itd; nullpo_ret(nd); nullpo_ret(nd->status); nullpo_ret(nd->status->sd); status = nd->status; status->sd.max_hp = status->sd.max_sp = 0; memset(&status->sd.batk, 0, sizeof(struct status_data) -sizeof(status->sd.hp) -sizeof(status->sd.sp) -sizeof(status->sd.max_hp) -sizeof(status->sd.max_sp) -sizeof(status->sd.str) -sizeof(status->sd.agi) -sizeof(status->sd.vit) -sizeof(status->sd.int_) -sizeof(status->sd.dex) -sizeof(status->sd.luk) ); status->castrate = status->delayrate = status->hprate = status->sprate = status->atk_rate = status->hprecov_rate = status->sprecov_rate = status->matk_rate = status->critical_rate = status->hit_rate = status->flee_rate = status->flee2_rate = status->def_rate = status->def2_rate = status->mdef_rate = status->mdef2_rate = 100; status->sd.mode = MD_MASK&~(MD_BOSS|MD_PLANT|MD_DETECTOR|MD_ANGRY|MD_TARGETWEAK); status->sd.size = (nd->class_&JOBL_BABY)?SZ_SMALL:SZ_MEDIUM; status->sd.speed = DEFAULT_WALK_SPEED; status->sd.aspd_rate = 1000; status->sd.ele_lv = 1; status->sd.race = RC_DEMIHUMAN; if( status->sd.rhw.range < 1 ) status->sd.rhw.range = 1; if( status->sd.lhw.range < 1 ) status->sd.lhw.range = 1; if( status->sd.rhw.range < status->sd.lhw.range ) status->sd.rhw.range = status->sd.lhw.range; status->double_rate += status->double_add_rate; status->perfect_hit += status->perfect_hit_add; status->splash_range += status->splash_add_range; // Relative modifiers from equipment if( status->hprate < 0 ) status->hprate = 0; if( status->hprate != 100 ) status->sd.max_hp = status->sd.max_hp * status->hprate/100; if( battle_config.hp_rate != 100 ) status->sd.max_hp = status->sd.max_hp * battle_config.hp_rate/100; if( status->sd.max_hp > (unsigned int)battle_config.max_hp ) status->sd.max_hp = battle_config.max_hp; else if( !status->sd.max_hp ) status->sd.max_hp = 1; // set the current HP to max HP if current HP is zero. if( status->sd.hp == 0 ) status->sd.hp = status->sd.max_hp; //----- SP Calculation i = 10 + status->blevel*sp_coefficient[pc_class2idx(nd->class_)]/100; i += i * status->sd.int_/100; if( nd->class_&JOBL_UPPER ) i += i * 25/100; else if ( nd->class_&JOBL_BABY ) i -= i * 30/100; status->sd.max_sp = cap_value(i, 0, INT_MAX); if( status->sprate < 0 ) status->sprate = 0; if( status->sprate != 100 ) status->sd.max_sp = status->sd.max_sp * status->sprate/100; if( battle_config.sp_rate != 100 ) status->sd.max_sp = status->sd.max_sp * battle_config.sp_rate/100; if( status->sd.max_sp > (unsigned int)battle_config.max_sp ) status->sd.max_sp = battle_config.max_sp; else if( !status->sd.max_sp ) status->sd.max_sp = 1; //----- Misc Calculation status_calc_misc(&nd->bl, &status->sd, status->blevel); if( status->matk_rate < 0 ) status->matk_rate = 0; if( status->matk_rate != 100 ) { status->sd.matk_max = status->sd.matk_max * status->matk_rate/100; status->sd.matk_min = status->sd.matk_min * status->matk_rate/100; } if( status->hit_rate < 0 ) status->hit_rate = 0; if( status->hit_rate != 100 ) status->sd.hit = status->sd.hit * status->hit_rate/100; if( status->flee_rate < 0 ) status->flee_rate = 0; if( status->flee_rate != 100 ) status->sd.flee = status->sd.flee * status->flee_rate/100; if( status->def2_rate < 0 ) status->def2_rate = 0; if( status->def2_rate != 100 ) status->sd.def2 = status->sd.def2 * status->def2_rate/100; if( status->mdef2_rate < 0 ) status->mdef2_rate = 0; if( status->mdef2_rate != 100 ) status->sd.mdef2 = status->sd.mdef2 * status->mdef2_rate/100; if( status->critical_rate < 0 ) status->critical_rate = 0; if( status->critical_rate != 100 ) status->sd.cri = status->sd.cri * status->critical_rate/100; if( status->flee2_rate < 0 ) status->flee2_rate = 0; if( status->flee2_rate != 100 ) status->sd.flee2 = status->sd.flee2 * status->flee2_rate/100; if( status->def_rate < 0 ) status->def_rate = 0; if( status->def_rate != 100 ) { i = status->sd.def * status->def_rate/100; status->sd.def = cap_value(i, CHAR_MIN, CHAR_MAX); } if( !battle_config.magic_defense_type && status->sd.mdef > battle_config.max_def ) { status->sd.mdef2 += battle_config.over_def_bonus*(status->sd.mdef - battle_config.max_def); status->sd.mdef = (signed char)battle_config.max_def; } //----- ASPD Calculation // PCs call function status_base_amotion_pc i=1000; // instead I set it to this status->sd.amotion = cap_value(i,battle_config.max_aspd,2000); status->sd.adelay = 2*status->sd.amotion; //----- DMOTION i = 800-status->sd.agi*4; status->sd.dmotion = cap_value(i, 400, 800); if( battle_config.pc_damage_delay_rate != 100 ) status->sd.dmotion = status->sd.dmotion*battle_config.pc_damage_delay_rate/100; return 1; } if( flag&SCB_BASE ) {// calculate the object's base status too switch( bl->type ) { case BL_PC: status_calc_pc_(BL_CAST(BL_PC,bl), first); break; case BL_MOB: status_calc_mob_(BL_CAST(BL_MOB,bl), first); break; case BL_PET: status_calc_pet_(BL_CAST(BL_PET,bl), first); break; case BL_HOM: status_calc_homunculus_(BL_CAST(BL_HOM,bl),first); break; case BL_MER: status_calc_mercenary_(BL_CAST(BL_MER,bl), first); break; case BL_ELEM: status_calc_elemental_(BL_CAST(BL_ELEM,bl), first); break; + case BL_NPC: status_calc_npc_(BL_CAST(BL_NPC,bl)); break; } } [sTATUS.H] #define status_calc_npc(nd) status_calc_bl_(&(nd)->bl, SCB_ALL, 0) [CONST.TXT] STATUS_HP 0 STATUS_SP 1 STATUS_MAXHP 2 STATUS_MAXSP 3 STATUS_STR 4 STATUS_AGI 5 STATUS_VIT 6 STATUS_INT 7 STATUS_DEX 8 STATUS_LUK 9 STATUS_MATK_MIN 10 STATUS_MATK_MAX 11 STATUS_SPEED 12 STATUS_AMOTION 13 STATUS_ADELAY 14 STATUS_DMOTION 15 STATUS_MODE 16 STATUS_HIT 17 STATUS_FLEE 18 STATUS_CRI 19 STATUS_PDODGE 20 STATUS_DEF2 21 STATUS_MDEF2 22 STATUS_ASPD 23 STATUS_DEF_ELE 24 STATUS_ELE_LV 25 STATUS_SIZE 26 STATUS_RACE 27 STATUS_DEF 28 STATUS_MDEF 29 STATUS_LEVEL 30 STATUS_JOBLV 31 STATUS_RECALC 32 [sCRIPT.C] BUILDIN_DEF(npcsetstatus, "ii"), BUILDIN_FUNC(npcsetstatus) { TBL_NPC* nd = (TBL_NPC*)map_id2bl(st->oid); int type = script_getnum(st,2); int value = script_getnum(st,3); struct status_data* status; if( !nd ) { ShowError("script:npcsetstatus: No NPC o.O\n"); return 0; } if( !nd->status ) { struct npc_status* status; status = (struct npc_status*)aMalloc(sizeof(struct npc_status)); memset(status, 0, sizeof(struct npc_status)); nd->status = status; status_calc_npc(nd); } status = status_get_status_data(&nd->bl); switch( type ) { case 0: // HP status->hp = value; if( status->max_hp < status->hp ) { // should this be an error or a feature? status->max_hp = value; } break; case 1: // SP status->sp = value; if( status->max_sp < status->sp ) { // should this be an error or a feature? status->max_sp = value; } break; case 2: // MAX_HP status->max_hp = value; if( status->hp > status->max_hp ) { // this I'm calling an error ShowError("script:npcsetstatus: NPC new max hp (%d) is less than current hp (%d). Setting current hp to max hp.\n", value, status->hp); status->hp = status->max_hp; } break; case 3: // MAX_SP status->max_sp = value; if( status->sp > status->max_sp ) { // this too! ShowError("script:npcsetstatus: NPC new max sp (%d) is less than current sp (%d). Setting current sp to max sp.\n", value, status->sp); status->sp = status->max_sp; } break; case 4: // str status->str = value; break; case 5: // agi status->agi = value; break; case 6: // vit status->vit = value; break; case 7: // int_ status->int_ = value; break; case 8: // dex status->dex = value; break; case 9: // luk status->luk = value; break; case 10: // matk_min status->matk_min = value; break; case 11: // matk_max status->matk_max = value; break; case 12: // speed status->speed = value; break; case 13: // amotion status->amotion = value; break; case 14: // adelay status->adelay = value; break; case 15: // dmotion status->dmotion = value; break; case 16: // mode (I don't think this will do anything ><!) status->mode = value; break; case 17: // hit status->hit = value; break; case 18: // flee status->flee = value; break; case 19: // cri status->cri = value; break; case 20: // perfect dodge status->flee2 = value; break; case 21: // def2 status->def2 = value; break; case 22: // mdef2 status->mdef2 = value; break; case 23: // aspd_rate status->aspd_rate = value; break; case 24: // def_ele status->def_ele = value; break; case 25: // ele_lv status->ele_lv = value; break; case 26: // size status->size = value; break; case 27: // race status->race = value; break; case 28: // def status->def = value; break; case 29: // mdef status->mdef = value; break; case 30: // level nd->status->blevel = value; break; case 31: // jlevel nd->status->jlevel = value; break; case 32: // RECALCULATE VALUES BASED ON STATS status_calc_npc(nd); break; default: ShowError("script:npcsetstatus: Unknown type: %d\n", type); return 1; } return 0; }
- 1
-
для проверки наверно поможет это:
BUILDIN_FUNC(getpartyid) { const char* nombre; struct party_data* pd; TBL_PC* sd; nombre = script_getstr(st,2); sd = script_rid2sd(st); if( sd == NULL ) return 0; //No est� enganchado a un usuario pd = party_searchname(nombre); //Obtiene el party_data de la party de nombre "nombre" if( pd == NULL ) { script_pushint(st, 0); return 0; //No encontr� la party } script_pushint(st, pd->party.party_id); return 0; }
-
not in client... in src =)
-
1.пиши скрипт на 2 языках и в начале поставь определение языка.
Например:
set lang,1;
if (!lang) mes ololo; else mes ололо;
2. WoE Prize Giver?
-
а как ты выведешь отображение нового слота в эквипе для ожерелья? речь шла об этом,а не о двухслотовой клипе
мой же постпереписать itemslotcounttableitemslotcounttable = itemslotcounttable.txt в папке дата либо в грф файле. Но таки да, видимо открыть текстовый файл это снова челленж для избранных
@Лилит, есть ли возможность забубенить привязку спрайта к чармам? Ну или ауру чтоли... Тоесть чарм попадает к тебе в инвентарь и у тебя меняется аура... Просто не хочу никаких бонусов итд, хочу внешних изменений ) и аура как-то больше мне нравится как вариант чем спрайты... Надеюсь, на чистой рА можно использовать несколько видов аур без изменения сорса?
Просто кто то не понимает о чем идет речь и начинает строить из себя умного
-
Хоть кто-то чему-то учится сам)
-
Это большое ололо,скрипт в 100 строк за такие деньги.
ну да небольшая срц модификация нужна,но это все делается быстро.
Напиши в лс сумму,которую готов заплатить может я возьмусь сделать.
И подробней скрипт опиши
-
выдают картинку монстра?оО зачем?
а так в скрипте действительно ничего сложного
-
здравствуй,дерево
Поиск базы знаний
in Основной раздел
Posted
Клиента? Нпц на серверной части хранятся. или я не понял вопроса?