diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/char/char.c | 2 | ||||
-rw-r--r-- | src/map/clif.c | 2 | ||||
-rw-r--r-- | src/map/npc.c | 4 | ||||
-rw-r--r-- | src/map/pc.c | 7 | ||||
-rw-r--r-- | src/map/script.c | 163 |
5 files changed, 105 insertions, 73 deletions
diff --git a/src/char/char.c b/src/char/char.c index 4ec06ca..2a46283 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -2825,9 +2825,9 @@ void parse_frommap (int fd) // loginサーバーへ送る if (login_fd > 0) { // don't send request if no login-server - WFIFOW (login_fd, 0) = 0x2728; memcpy (WFIFOP (login_fd, 0), RFIFOP (fd, 0), RFIFOW (fd, 2)); + WFIFOW (login_fd, 0) = 0x2728; WFIFOSET (login_fd, WFIFOW (login_fd, 2)); } // ワールドへの同垢ログインがなければmapサーバーに送る必要はない diff --git a/src/map/clif.c b/src/map/clif.c index 551147b..11b1f83 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -2606,7 +2606,7 @@ int clif_changelook_towards (struct block_list *bl, int type, int val, WBUFB (buf, 6) = type; if (sd->equip_index[equip_point] >= 0 - && sd->inventory_data[sd->equip_index[2]]) + && sd->inventory_data[sd->equip_index[equip_point]]) { if (sd-> inventory_data[sd->equip_index[equip_point]]->view_id > 0) diff --git a/src/map/npc.c b/src/map/npc.c index 5314916..a925430 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -2301,9 +2301,9 @@ int do_init_npc (void) || (j && line[j - 1] == ','))) line[j++] = ' '; } - else if (line[i] == '\t') + else if (line[i] == '\t' || line[i] == '|') { - if (!(j && line[j - 1] == '\t')) + if (!(j && (line[j - 1] == '\t' || line[j - 1] == '|'))) line[j++] = '\t'; } else diff --git a/src/map/pc.c b/src/map/pc.c index e3594e0..b76116b 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -1810,9 +1810,10 @@ int pc_calcstatus (struct map_session_data *sd, int first) // so critical chance can get multiplied by ~1.5 and setting def2 to a third when skill maxed out // def2 is the defence gained by vit, whereas "def", which is gained by armor, stays as is int spbsk = skill_power (sd, TMW_RAGING); - if (spbsk!=0) { - sd->critical *= (128 + spbsk)/256; - sd->def2 /= (128 + spbsk)/128; + if (spbsk != 0 && sd->attackrange <= 2) + { + sd->critical = (sd->critical * (128 + spbsk)) / 256; + sd->def2 = (sd->def2 * 128) / (128 + spbsk); } if (sd->base_atk < 1) diff --git a/src/map/script.c b/src/map/script.c index e4dde51..533c436 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -311,6 +311,9 @@ int buildin_shop (struct script_state *st); // [MadCamel] int buildin_isdead (struct script_state *st); // [Jaxad0127] int buildin_fakenpcname (struct script_state *st); //[Kage] int buildin_unequip_by_id (struct script_state *st); // [Freeyorp] +int buildin_getx (struct script_state *st); // [Kage] +int buildin_gety (struct script_state *st); // [Kage] + void push_val (struct script_stack *stack, int type, int val); int run_func (struct script_state *st); @@ -334,13 +337,13 @@ struct { buildin_close2, "close2", ""}, { - buildin_menu, "menu", "*"}, + buildin_menu, "menu", "sL*"}, { - buildin_goto, "goto", "l"}, + buildin_goto, "goto", "L"}, { - buildin_callsub, "callsub", "i*"}, + buildin_callsub, "callsub", "L*"}, { - buildin_callfunc, "callfunc", "s*"}, + buildin_callfunc, "callfunc", "F*"}, { buildin_return, "return", "*"}, { @@ -348,39 +351,39 @@ struct { buildin_jobchange, "jobchange", "i*"}, { - buildin_input, "input", "*"}, + buildin_input, "input", "N"}, { - buildin_warp, "warp", "sii"}, + buildin_warp, "warp", "Mxy"}, { - buildin_isat, "isat", "sii"}, + buildin_isat, "isat", "Mxy"}, { - buildin_areawarp, "areawarp", "siiiisii"}, + buildin_areawarp, "areawarp", "MxyxyMxy"}, { buildin_setlook, "setlook", "ii"}, { - buildin_set, "set", "ii"}, + buildin_set, "set", "Ne"}, { - buildin_setarray, "setarray", "ii*"}, + buildin_setarray, "setarray", "Ne*"}, { - buildin_cleararray, "cleararray", "iii"}, + buildin_cleararray, "cleararray", "Nei"}, { - buildin_copyarray, "copyarray", "iii"}, + buildin_copyarray, "copyarray", "NNi"}, { - buildin_getarraysize, "getarraysize", "i"}, + buildin_getarraysize, "getarraysize", "N"}, { - buildin_deletearray, "deletearray", "ii"}, + buildin_deletearray, "deletearray", "N*"}, { - buildin_getelementofarray, "getelementofarray", "ii"}, + buildin_getelementofarray, "getelementofarray", "Ni"}, { - buildin_if, "if", "i*"}, + buildin_if, "if", "iF*"}, { - buildin_getitem, "getitem", "ii**"}, + buildin_getitem, "getitem", "Ii**"}, { buildin_getitem2, "getitem2", "iiiiiiiii*"}, { - buildin_makeitem, "makeitem", "iisii"}, + buildin_makeitem, "makeitem", "IiMxy"}, { - buildin_delitem, "delitem", "ii"}, + buildin_delitem, "delitem", "Ii"}, { buildin_cutin, "cutin", "si"}, { @@ -398,9 +401,9 @@ struct { buildin_pow, "pow", "ii"}, { - buildin_countitem, "countitem", "i"}, + buildin_countitem, "countitem", "I"}, { - buildin_checkweight, "checkweight", "ii"}, + buildin_checkweight, "checkweight", "Ii"}, { buildin_readparam, "readparam", "i*"}, { @@ -464,11 +467,11 @@ struct { buildin_basicskillcheck, "basicskillcheck", "*"}, { - buildin_getgmlevel, "getgmlevel", "*"}, + buildin_getgmlevel, "getgmlevel", ""}, { buildin_end, "end", ""}, { - buildin_getopt2, "getopt2", "i"}, + buildin_getopt2, "getopt2", ""}, { buildin_setopt2, "setopt2", "i"}, { @@ -492,7 +495,7 @@ struct { buildin_savepoint, "save", "sii"}, { - buildin_savepoint, "savepoint", "sii"}, + buildin_savepoint, "savepoint", "Mxy"}, { buildin_gettimetick, "gettimetick", "i"}, { @@ -506,47 +509,47 @@ struct { buildin_itemskill, "itemskill", "iis"}, { - buildin_monster, "monster", "siisii*"}, + buildin_monster, "monster", "Mxysmi*"}, { - buildin_areamonster, "areamonster", "siiiisii*"}, + buildin_areamonster, "areamonster", "Mxyxysmi*"}, { - buildin_killmonster, "killmonster", "ss"}, + buildin_killmonster, "killmonster", "ME"}, { - buildin_killmonsterall, "killmonsterall", "s"}, + buildin_killmonsterall, "killmonsterall", "M"}, { - buildin_doevent, "doevent", "s"}, + buildin_doevent, "doevent", "E"}, { - buildin_donpcevent, "donpcevent", "s"}, + buildin_donpcevent, "donpcevent", "E"}, { - buildin_addtimer, "addtimer", "is"}, + buildin_addtimer, "addtimer", "tE"}, { - buildin_deltimer, "deltimer", "s"}, + buildin_deltimer, "deltimer", "E"}, { buildin_addtimercount, "addtimercount", "si"}, { - buildin_initnpctimer, "initnpctimer", "*"}, + buildin_initnpctimer, "initnpctimer", ""}, { - buildin_stopnpctimer, "stopnpctimer", "*"}, + buildin_stopnpctimer, "stopnpctimer", ""}, { buildin_startnpctimer, "startnpctimer", "*"}, { - buildin_setnpctimer, "setnpctimer", "*"}, + buildin_setnpctimer, "setnpctimer", "i"}, { - buildin_getnpctimer, "getnpctimer", "i*"}, + buildin_getnpctimer, "getnpctimer", "i"}, { buildin_announce, "announce", "si"}, { - buildin_mapannounce, "mapannounce", "ssi"}, + buildin_mapannounce, "mapannounce", "Msi"}, { - buildin_areaannounce, "areaannounce", "siiiisi"}, + buildin_areaannounce, "areaannounce", "Mxyxysi"}, { buildin_getusers, "getusers", "i"}, { - buildin_getmapusers, "getmapusers", "s"}, + buildin_getmapusers, "getmapusers", "M"}, { - buildin_getareausers, "getareausers", "siiii"}, + buildin_getareausers, "getareausers", "Mxyxy"}, { - buildin_getareadropitem, "getareadropitem", "siiiii*"}, + buildin_getareadropitem, "getareadropitem", "Mxyxyi*"}, { buildin_enablenpc, "enablenpc", "s"}, { @@ -560,9 +563,9 @@ struct { buildin_hideonnpc, "hideonnpc", "s"}, { - buildin_sc_start, "sc_start", "iii*"}, + buildin_sc_start, "sc_start", "iTi*"}, { - buildin_sc_start2, "sc_start2", "iiii*"}, + buildin_sc_start2, "sc_start2", "iTii*"}, { buildin_sc_end, "sc_end", "i"}, { @@ -602,15 +605,15 @@ struct { buildin_isloggedin, "isloggedin", "i"}, { - buildin_setmapflagnosave, "setmapflagnosave", "ssii"}, + buildin_setmapflagnosave, "setmapflagnosave", "MMxy"}, { - buildin_setmapflag, "setmapflag", "si"}, + buildin_setmapflag, "setmapflag", "Mi"}, { - buildin_removemapflag, "removemapflag", "si"}, + buildin_removemapflag, "removemapflag", "Mi"}, { - buildin_pvpon, "pvpon", "s"}, + buildin_pvpon, "pvpon", "M"}, { - buildin_pvpoff, "pvpoff", "s"}, + buildin_pvpoff, "pvpoff", "M"}, { buildin_gvgon, "gvgon", "s"}, { @@ -642,19 +645,19 @@ struct { buildin_failedremovecards, "failedremovecards", "ii"}, { - buildin_marriage, "marriage", "s"}, + buildin_marriage, "marriage", "P"}, { buildin_wedding_effect, "wedding", ""}, { - buildin_divorce, "divorce", "i"}, + buildin_divorce, "divorce", ""}, { - buildin_getitemname, "getitemname", "*"}, + buildin_getitemname, "getitemname", "I"}, { buildin_getspellinvocation, "getspellinvocation", "s"}, { buildin_getanchorinvocation, "getanchorinvocation", "s"}, { - buildin_getpartnerid, "getpartnerid2", "i"}, + buildin_getpartnerid, "getpartnerid2", ""}, { buildin_getexp, "getexp", "ii"}, { @@ -682,7 +685,7 @@ struct { buildin_soundeffect, "soundeffect", "si"}, { - buildin_strmobinfo, "strmobinfo", "ii"}, // display mob data [Valaris] + buildin_strmobinfo, "strmobinfo", "im"}, // display mob data [Valaris] { buildin_guardian, "guardian", "siisii*i"}, // summon guardians { @@ -696,7 +699,7 @@ struct { buildin_nude, "nude", ""}, // nude command [Valaris] { - buildin_mapwarp, "mapwarp", "ssii"}, // Added by RoVeRT + buildin_mapwarp, "mapwarp", "MMxy"}, // Added by RoVeRT { buildin_inittimer, "inittimer", ""}, { @@ -704,34 +707,38 @@ struct { buildin_cmdothernpc, "cmdothernpc", "ss"}, { - buildin_gmcommand, "gmcommand", "*"}, // [MouseJstr] + buildin_gmcommand, "gmcommand", "s"}, // [MouseJstr] // {buildin_movenpc,"movenpc","siis"}, // [MouseJstr] { - buildin_npcwarp, "npcwarp", "iis"}, // [remoitnane] + buildin_npcwarp, "npcwarp", "xys"}, // [remoitnane] { - buildin_message, "message", "s*"}, // [MouseJstr] + buildin_message, "message", "Ps"}, // [MouseJstr] { - buildin_npctalk, "npctalk", "*"}, // [Valaris] + buildin_npctalk, "npctalk", "s"}, // [Valaris] { - buildin_hasitems, "hasitems", "*"}, // [Valaris] + buildin_hasitems, "hasitems", ""}, // [Valaris] { - buildin_mobcount, "mobcount", "ss"}, + buildin_mobcount, "mobcount", "ME"}, { buildin_getlook, "getlook", "i"}, { buildin_getsavepoint, "getsavepoint", "i"}, { - buildin_areatimer, "areatimer", "siiiiis"}, + buildin_areatimer, "areatimer", "MxyxytE"}, { - buildin_isin, "isin", "siiii"}, + buildin_isin, "isin", "Mxyxy"}, { buildin_shop, "shop", "s"}, { - buildin_isdead, "isdead", "i"}, + buildin_isdead, "isdead", ""}, { buildin_fakenpcname, "fakenpcname", "ssi"}, { buildin_unequip_by_id, "unequipbyid", "i"}, // [Freeyorp] + { + buildin_getx, "getx", ""}, // [Kage] + { + buildin_gety, "gety", ""}, // [Kage] // End Additions { NULL, NULL, NULL},}; @@ -1247,7 +1254,7 @@ unsigned char *parse_subexpr (unsigned char *p, int limit) } add_scriptc (C_ARG); - do + while (*p && *p != ')' && i < 128) { plist[i] = p; p = parse_subexpr (p, -1); @@ -1262,7 +1269,6 @@ unsigned char *parse_subexpr (unsigned char *p, int limit) p = skip_space (p); i++; } - while (*p && *p != ')' && i < 128); plist[i] = p; if (*(p++) != ')') { @@ -1285,7 +1291,7 @@ unsigned char *parse_subexpr (unsigned char *p, int limit) } } } - else + else // not op == C_FUNC { p = parse_subexpr (p, opl); } @@ -7242,6 +7248,31 @@ int buildin_fakenpcname (struct script_state *st) return 0; } +/*============================ + * Gets the PC's x pos + *---------------------------- + */ + +int buildin_getx (struct script_state *st) +{ + struct map_session_data *sd = script_rid2sd (st); + + push_val (st->stack, C_INT, sd->bl.x); + return 0; +} + +/*============================ + * Gets the PC's y pos + *---------------------------- + */ +int buildin_gety (struct script_state *st) +{ + struct map_session_data *sd = script_rid2sd (st); + + push_val (st->stack, C_INT, sd->bl.y); + return 0; +} + // // 実行部main // |