added script function 'getmonsterinfo'
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5659 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
16ebed91a0
commit
9a51949029
@ -5,6 +5,8 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV
|
|||||||
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
|
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
|
||||||
|
|
||||||
2006/03/18
|
2006/03/18
|
||||||
|
* Added 'GetMonsterInfo(MobID,Idx)' script function. [Lupus]
|
||||||
|
You can get monsters name,level,race, etc by its Id. Check npc\sample\getmonsterinfo.txt
|
||||||
* Fixed warnings on compilers again. [Lance]
|
* Fixed warnings on compilers again. [Lance]
|
||||||
|
|
||||||
2006/03/17
|
2006/03/17
|
||||||
|
22
db/const.txt
22
db/const.txt
@ -629,3 +629,25 @@ PET_LEVEL 3
|
|||||||
PET_HUNGRY 4
|
PET_HUNGRY 4
|
||||||
PET_INTIMATE 5
|
PET_INTIMATE 5
|
||||||
|
|
||||||
|
MOB_NAME 0
|
||||||
|
MOB_LV 1
|
||||||
|
MOB_MAXHP 2
|
||||||
|
MOB_BASEEXP 3
|
||||||
|
MOB_JOBEXP 4
|
||||||
|
MOB_ATK1 5
|
||||||
|
MOB_ATK2 6
|
||||||
|
MOB_DEF 7
|
||||||
|
MOB_MDEF 8
|
||||||
|
MOB_STR 9
|
||||||
|
MOB_AGI 10
|
||||||
|
MOB_VIT 11
|
||||||
|
MOB_INT 12
|
||||||
|
MOB_DEX 13
|
||||||
|
MOB_LUK 14
|
||||||
|
MOB_RANGE 15
|
||||||
|
MOB_RANGE2 16
|
||||||
|
MOB_RANGE3 17
|
||||||
|
MOB_SIZE 18
|
||||||
|
MOB_RACE 19
|
||||||
|
MOB_ELEMENT 20
|
||||||
|
MOB_MODE 21
|
||||||
|
18
npc/sample/getmonsterinfo.txt
Normal file
18
npc/sample/getmonsterinfo.txt
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
//by Lupus
|
||||||
|
|
||||||
|
prontera.gat,156,179,6 script test_getmonsterinfo 117,{
|
||||||
|
mes "Please enter a monster ID (1001 ... 2000)";
|
||||||
|
input @value;
|
||||||
|
if(getmonsterinfo(@value,MOB_LV)<0 || getmonsterinfo(@value,MOB_NAME)=="Dummy") {
|
||||||
|
mes "Wrong MOB ID.";
|
||||||
|
close;
|
||||||
|
}
|
||||||
|
mes "Monster ID: "+@value+" '"+getmonsterinfo(@value,MOB_NAME)+"'";
|
||||||
|
mes "Current Monster info:";
|
||||||
|
set @id,0;
|
||||||
|
L_LOOP:
|
||||||
|
mes " getmonsterinfo("+@value+","+@id+") = "+getmonsterinfo(@value,@id);
|
||||||
|
set @id,@id+1;
|
||||||
|
if(@id<22) goto L_LOOP;
|
||||||
|
close;
|
||||||
|
}
|
@ -434,6 +434,7 @@ int mapreg_setregstr(int num,const char *str);
|
|||||||
int buildin_setitemscript(struct script_state *st);
|
int buildin_setitemscript(struct script_state *st);
|
||||||
int buildin_disguise(struct script_state *st);
|
int buildin_disguise(struct script_state *st);
|
||||||
int buildin_undisguise(struct script_state *st);
|
int buildin_undisguise(struct script_state *st);
|
||||||
|
int buildin_getmonsterinfo(struct script_state *st); // [Lupus]
|
||||||
|
|
||||||
#ifdef PCRE_SUPPORT
|
#ifdef PCRE_SUPPORT
|
||||||
int buildin_defpattern(struct script_state *st); // MouseJstr
|
int buildin_defpattern(struct script_state *st); // MouseJstr
|
||||||
@ -732,6 +733,7 @@ struct {
|
|||||||
{buildin_setitemscript,"setitemscript","is"}, //Set NEW item bonus script. Lupus
|
{buildin_setitemscript,"setitemscript","is"}, //Set NEW item bonus script. Lupus
|
||||||
{buildin_disguise,"disguise","i"}, //disguise player. Lupus
|
{buildin_disguise,"disguise","i"}, //disguise player. Lupus
|
||||||
{buildin_undisguise,"undisguise","i"}, //undisguise player. Lupus
|
{buildin_undisguise,"undisguise","i"}, //undisguise player. Lupus
|
||||||
|
{buildin_getmonsterinfo,"getmonsterinfo","ii"}, //Lupus
|
||||||
// [zBuffer] List of player cont commands --->
|
// [zBuffer] List of player cont commands --->
|
||||||
{buildin_pcwalkxy,"pcwalkxy","iii"},
|
{buildin_pcwalkxy,"pcwalkxy","iii"},
|
||||||
{buildin_pctalk,"pctalk","is"},
|
{buildin_pctalk,"pctalk","is"},
|
||||||
@ -9829,6 +9831,96 @@ int buildin_delmonsterdrop(struct script_state *st)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
/*==========================================
|
||||||
|
* Returns some values of a monster [Lupus]
|
||||||
|
* Name, Level, race, size, etc...
|
||||||
|
getmonsterinfo(monsterID,queryIndex);
|
||||||
|
*------------------------------------------
|
||||||
|
*/
|
||||||
|
int buildin_getmonsterinfo(struct script_state *st)
|
||||||
|
{
|
||||||
|
struct mob_db *mob;
|
||||||
|
int mob_id;
|
||||||
|
|
||||||
|
mob_id = conv_num(st,& (st->stack->stack_data[st->start+2]));
|
||||||
|
if (mob_id <= 1000 || (mob = mob_db(mob_id))==NULL) {
|
||||||
|
ShowError("buildin_getmonsterinfo: Wrong Monster ID: %i", mob_id);
|
||||||
|
push_val(st->stack, C_INT, -1);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ( conv_num(st,& (st->stack->stack_data[st->start+3])) ) {
|
||||||
|
case 0: //Name
|
||||||
|
push_str(st->stack,C_CONSTSTR, (unsigned char *) mob->jname);
|
||||||
|
break;
|
||||||
|
case 1: //Lvl
|
||||||
|
push_val(st->stack,C_INT, mob->lv);
|
||||||
|
break;
|
||||||
|
case 2: //MaxHP
|
||||||
|
push_val(st->stack,C_INT, mob->max_hp);
|
||||||
|
break;
|
||||||
|
case 3: //Base EXP
|
||||||
|
push_val(st->stack,C_INT, mob->base_exp);
|
||||||
|
break;
|
||||||
|
case 4: //Job EXP
|
||||||
|
push_val(st->stack,C_INT, mob->job_exp);
|
||||||
|
break;
|
||||||
|
case 5: //Atk1
|
||||||
|
push_val(st->stack,C_INT, mob->atk1);
|
||||||
|
break;
|
||||||
|
case 6: //Atk2
|
||||||
|
push_val(st->stack,C_INT, mob->atk2);
|
||||||
|
break;
|
||||||
|
case 7: //Def
|
||||||
|
push_val(st->stack,C_INT, mob->def);
|
||||||
|
break;
|
||||||
|
case 8: //Mdef
|
||||||
|
push_val(st->stack,C_INT, mob->mdef);
|
||||||
|
break;
|
||||||
|
case 9: //Str
|
||||||
|
push_val(st->stack,C_INT, mob->str);
|
||||||
|
break;
|
||||||
|
case 10: //Agi
|
||||||
|
push_val(st->stack,C_INT, mob->agi);
|
||||||
|
break;
|
||||||
|
case 11: //Vit
|
||||||
|
push_val(st->stack,C_INT, mob->vit);
|
||||||
|
break;
|
||||||
|
case 12: //Int
|
||||||
|
push_val(st->stack,C_INT, mob->int_);
|
||||||
|
break;
|
||||||
|
case 13: //Dex
|
||||||
|
push_val(st->stack,C_INT, mob->dex);
|
||||||
|
break;
|
||||||
|
case 14: //Luk
|
||||||
|
push_val(st->stack,C_INT, mob->luk);
|
||||||
|
break;
|
||||||
|
case 15: //Range
|
||||||
|
push_val(st->stack,C_INT, mob->range);
|
||||||
|
break;
|
||||||
|
case 16: //Range2
|
||||||
|
push_val(st->stack,C_INT, mob->range2);
|
||||||
|
break;
|
||||||
|
case 17: //Range3
|
||||||
|
push_val(st->stack,C_INT, mob->range3);
|
||||||
|
break;
|
||||||
|
case 18: //Size
|
||||||
|
push_val(st->stack,C_INT, mob->size);
|
||||||
|
break;
|
||||||
|
case 19: //Race
|
||||||
|
push_val(st->stack,C_INT, mob->race);
|
||||||
|
break;
|
||||||
|
case 20: //Element
|
||||||
|
push_val(st->stack,C_INT, mob->element);
|
||||||
|
break;
|
||||||
|
case 21: //Mode
|
||||||
|
push_val(st->stack,C_INT, mob->mode);
|
||||||
|
break;
|
||||||
|
default: //wrong Index
|
||||||
|
push_val(st->stack,C_INT,-1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// [zBuffer] List of player cont commands --->
|
// [zBuffer] List of player cont commands --->
|
||||||
int buildin_pcwalkxy(struct script_state *st){
|
int buildin_pcwalkxy(struct script_state *st){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user