Jump to content

Lord Ganja

Members
  • Content Count

    161
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Lord Ganja


  1.  

    @@Lord Ganja

    that method was old, you probably got this script from eathena forum

    EDIT: found it -> https://www.eathena.ws/board/index.php?s=&showtopic=177722&view=findpost&p=1001559

    at that time, *monster and *clone command doesn't return the GID

     

    now that these command returns the GID of the monster, don't have to do that anymore

     

    -	script	clonecheck	FAKE_NPC,{OnInit:	setitemscript Bow, "{ getmapxy .@map$, .@x, .@y, 0; @bow_clone = clone( .@map$,.@x,.@y,"clonecheck::OnDead", getcharid(0), getcharid(0), 0x8D, 1, 40 ); }", 1;	setitemscript Bow, "{ unitkill @bow_clone; }", 2;OnDead:	end;}
    .

    btw move to script support

     

    Thank you @@AnnieRuru. I'll try it later once I get to my computer :)


  2. I was using this script fight your clone. 

     

    One thing I wanted to change is I don't want clones to be freezed. What mode should I change with it?

    The current mode of the clones there is 0x8D

     

    I just don't understand the explanation in mob_db_mode_list.txt.

     

    I don't know what mode is 0x8D has since I don't know how did it come up in the first place..

     

    Any explanation would be highly appreciated. Thanks!

     

     


  3. clone "prontera",150,150,"clonecheck::On"+getcharid(0), getcharid(0), getcharid(0), 0x8D, 1, 40;

    See you have only declared it, " clonecheck::On"+getcharid(0) , so when dead it will call that function, just change it...

    I don't have idea what to change it. I used On"+getcharid(0) so when the player unequip the item it calls the function unequip_item to kill the specific clone of the user.

     

    If i'm going to change it to something not unique, like clonecheck::OnCloneDead. And someone unequip the item(calls the function unequip_item), all clones on the same map are going to die since they're on the same type of event.


  4. I use an item that has a bonus that summons a slave clone, and whenever I unequipped the item it will call this functions for the clone to die.

    function script unequip_item {  killmonster strcharinfo(3), "clonecheck::On"+ getcharid(0);  end;}

     

     

    Here's the script that summons the clone:

    clone "prontera",150,150,"clonecheck::On"+getcharid(0), getcharid(0), getcharid(0), 0x8D, 1, 40;

     

    BUT whenever another player killed the clone I got this error.

    [Error]: npc_event: event not found [clonecheck::On150031]

     

    Since 150031 is the clone master's id, I don't have any idea how to make the npc event for that so I can avoid the error.

     

    Any ideas? Thanks in advance!

     

     


  5. You have to copy the mini map from kRO files then rename it to s_mall.bmp and put it on your grf.. datatexture유저인터페이스map

     

    For the clouds, i think you have to add a mapflag clouds or clouds2.

     

    Hope this helps.

     

    EDIT:

    sorry. Didn't saw the picture you posted. I thought only the cloud effect xD


  6. Is there any way to increase all boss monsters hit without modifying the dex in mob_db? Since modifying the DEX of a mob would also increase their damage.

    I only wanted to increase their hit coz my server is a high rate server. And characters flee are too high so the boss normal attacks miss.

     

    Anyone could tell me where to edit monsters/mobs hit in source?

     

    Thanks in advance!


  7. @@raPalooza~

    Thank you for the info :) I'll just create the new mapflag. I just wanted to know where should I put the src that increases a monster's attack & skill damage.

     

    Anyway can you tell me what part of mob.c should I put those? Should I put it under int64 c = 0; ?

    /*========================================== * Mob spawning. Initialization is also variously here. *------------------------------------------*/int mob_spawn (struct mob_data *md){	int i=0;	int64 tick = timer->gettick();	int64 c = 0;	md->last_thinktime = tick;	if (md->bl.prev != NULL)		unit->remove_map(&md->bl,CLR_RESPAWN,ALC_MARK);	else if (md->spawn && md->class_ != md->spawn->class_) {		md->class_ = md->spawn->class_;		status->set_viewdata(&md->bl, md->class_);		md->db = mob->db(md->class_);		memcpy(md->name,md->spawn->name,NAME_LENGTH);	}	if (md->spawn) { //Respawn data		md->bl.m = md->spawn->m;		md->bl.x = md->spawn->x;		md->bl.y = md->spawn->y;		if( (md->bl.x == 0 && md->bl.y == 0) || md->spawn->xs || md->spawn->ys ) {			//Monster can be spawned on an area.			if( !map->search_freecell(&md->bl, -1, &md->bl.x, &md->bl.y, md->spawn->xs, md->spawn->ys, battle_config.no_spawn_on_player?4:0) ) {				// retry again later				if( md->spawn_timer != INVALID_TIMER )					timer->delete(md->spawn_timer, mob->delayspawn);				md->spawn_timer = timer->add(tick+5000,mob->delayspawn,md->bl.id,0);				return 1;			}		} else if( battle_config.no_spawn_on_player > 99 && map->foreachinrange(mob->count_sub, &md->bl, AREA_SIZE, BL_PC) ) {			// retry again later (players on sight)			if( md->spawn_timer != INVALID_TIMER )				timer->delete(md->spawn_timer, mob->delayspawn);			md->spawn_timer = timer->add(tick+5000,mob->delayspawn,md->bl.id,0);			return 1;		}	}	memset(&md->state, 0, sizeof(md->state));	status_calc_mob(md, SCO_FIRST);	md->attacked_id = 0;	md->target_id = 0;	md->move_fail_count = 0;	md->ud.state.attack_continue = 0;	md->ud.target_to = 0;	md->ud.dir = 0;	if( md->spawn_timer != INVALID_TIMER )	{		timer->delete(md->spawn_timer, mob->delayspawn);		md->spawn_timer = INVALID_TIMER;	}	//md->master_id = 0;	md->master_dist = 0;	md->state.aggressive = (md->status.mode&MD_ANGRY) ? 1 : 0;	md->state.skillstate = MSS_IDLE;	md->next_walktime = tick+rnd()%1000+MIN_RANDOMWALKTIME;	md->last_linktime = tick;	md->dmgtick = tick - 5000;	md->last_pcneartime = 0;	for (i = 0, c = tick-MOB_MAX_DELAY; i < MAX_MOBSKILL; i++)		md->skilldelay[i] = c;	memset(md->dmglog, 0, sizeof(md->dmglog));	md->tdmg = 0;	if (md->lootitem)		memset(md->lootitem, 0, sizeof(*md->lootitem));	md->lootitem_count = 0;	if(md->db->option)		// Added for carts, falcons and pecos for cloned monsters. [Valaris]		md->sc.option = md->db->option;	// MvP tomb [GreenBox]	if ( md->tomb_nid )		mob->mvptomb_destroy(md);	map->addblock(&md->bl);	if( map->list[md->bl.m].users )		clif->spawn(&md->bl);	skill->unit_move(&md->bl,tick,1);	mob->skill_use(md, tick, MSC_SPAWN);	return 0;}

     

    And can you explain these to me? What are those for?

    md->attacked_id = 0;
    md->target_id = 0;
    md->move_fail_count = 0;
     
     
    Thank you so much.

  8. @@Dastgir,

    Exactly what Winterfox posted. But I was looking for something like script command, if it even exists.

     

    e.g

    setarray .@mob_ids, 1002, 1003, 1004, 1005;

    .@mob_ids[3]; <-- The index here is 3

    getvarindex(.@mob_ids); <-- getvarindex is just an example, which returns the index of the attached variable

    -> so 'getvarindex' will return '1005'

     

    @@Winterfox

    Is there any alternative? Or is it the only way? Thanks btw.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.