- Spirit of Wizard will now consume an item 7321 each time it blocks reflected magic.

- Added script command jobname, retrieves a given's class name as per the appropiate msg_athena.txt entry (this command should had been added years ago)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8320 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-08-16 19:50:52 +00:00
parent 7d04689685
commit 1079f53d4c
5 changed files with 34 additions and 3 deletions

View File

@ -4,6 +4,11 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/08/16 2006/08/16
* Spirit of Wizard will now consume an item 7321 each time it blocks
reflected magic. [Skotlex]
* Added script command jobname, retrieves a given's class name as per the
appropiate msg_athena.txt entry (this command should had been added years
ago) [Skotlex]
* Fixed null-pointer crash on Evolving a homunculus. [Skotlex] * Fixed null-pointer crash on Evolving a homunculus. [Skotlex]
* @produce now can make any kind of equipment [Skotlex] * @produce now can make any kind of equipment [Skotlex]
* Made HLIF_AVOID and HAMI_DEFENCE cause the status change on both caster * Made HLIF_AVOID and HAMI_DEFENCE cause the status change on both caster

View File

@ -1257,6 +1257,16 @@ changing jobs, which can be checked for later in scripts.
--------------------------------------- ---------------------------------------
*jobname <job number>
This command retrieves the name of the given job using the msg_athena entries 550->650.
mes "[Kid]";
mes "I never thought I'd met a "+jobname(Class)+" here of all places.";
close;
---------------------------------------
*input <variable>; *input <variable>;
This command will make an input box pop up on the client connected to the This command will make an input box pop up on the client connected to the

View File

@ -3267,6 +3267,7 @@ int buildin_heal(struct script_state *st);
int buildin_itemheal(struct script_state *st); int buildin_itemheal(struct script_state *st);
int buildin_percentheal(struct script_state *st); int buildin_percentheal(struct script_state *st);
int buildin_jobchange(struct script_state *st); int buildin_jobchange(struct script_state *st);
int buildin_jobname(struct script_state *st);
int buildin_input(struct script_state *st); int buildin_input(struct script_state *st);
int buildin_setlook(struct script_state *st); int buildin_setlook(struct script_state *st);
int buildin_set(struct script_state *st); int buildin_set(struct script_state *st);
@ -3583,6 +3584,7 @@ struct script_function buildin_func[] = {
{buildin_return,"return","*"}, {buildin_return,"return","*"},
{buildin_getarg,"getarg","i"}, {buildin_getarg,"getarg","i"},
{buildin_jobchange,"jobchange","i*"}, {buildin_jobchange,"jobchange","i*"},
{buildin_jobname,"jobname","i"},
{buildin_input,"input","*"}, {buildin_input,"input","*"},
{buildin_warp,"warp","sii"}, {buildin_warp,"warp","sii"},
{buildin_areawarp,"areawarp","siiiisii"}, {buildin_areawarp,"areawarp","siiiisii"},
@ -4566,6 +4568,17 @@ int buildin_jobchange(struct script_state *st)
return 0; return 0;
} }
/*==========================================
*
*------------------------------------------
*/
int buildin_jobname(struct script_state *st)
{
int class_=conv_num(st,& (st->stack->stack_data[st->start+2]));
push_str(st->stack,C_CONSTSTR,job_name(class_));
return 0;
}
/*========================================== /*==========================================
* *
*------------------------------------------ *------------------------------------------

View File

@ -1877,8 +1877,11 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
tsd = (bl->type == BL_PC)?(TBL_PC*)bl:NULL; tsd = (bl->type == BL_PC)?(TBL_PC*)bl:NULL;
if (sc && !sc->count) if (sc && !sc->count)
sc = NULL; //Don't need it. sc = NULL; //Don't need it.
if (sc && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_WIZARD) //Spirit of Wizard blocks bounced back spells.
{ //Spirit of Wizard blocks bounced back spells. if (sc && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_WIZARD
&& !(tsd && (type = pc_search_inventory (tsd, 7321)) < 0))
{
if (tsd) pc_delitem(tsd, type, 1, 0);
dmg.damage = dmg.damage2 = 0; dmg.damage = dmg.damage2 = 0;
dmg.dmg_lv = ATK_FLEE; dmg.dmg_lv = ATK_FLEE;
} }