Jump to content

Metahego

Members
  • Posts

    12
  • Joined

  • Last visited

Posts posted by Metahego

  1. @wakefield21 i try with @arealoot active and disactive, and i didn't see any error i my console, i don't know how to reproduce yours ^^
     

    I think it come from this function

    void clif_parse_TakeItem(int fd, struct map_session_data *sd)
    {
    	struct flooritem_data *fitem;
    	int map_object_id;
    	int skill_greed(struct block_list *bl, va_list ap);
    
    	//First we declare a variable that gets the return value
    	int debug_i = 0;
    
    	map_object_id = RFIFOL(fd,packet_db[RFIFOW(fd,0)].pos[0]);
    
    	fitem = (struct flooritem_data*)map_id2bl(map_object_id);
    
    	do {
    		if (pc_isdead(sd)) {
    			clif_clearunit_area(&sd->bl, CLR_DEAD);
    			break;
    		}
    
    		if (fitem == NULL || fitem->bl.type != BL_ITEM || fitem->bl.m != sd->bl.m)
    			break;
    
    		if (pc_cant_act(sd))
    			break;
    
    		if (sd->state.arealoot) {
    				//Config in .\conf\import\battle_conf.txt
    				int range = battle_config.arealoot_range;
    
    				//Show range value in the console if need it
    				//ShowDebug("arealoot_range: %d\n", range);
    
    				//Now we give the variable
    				debug_i = map_foreachinrange(skill_greed, &sd->bl, range, BL_ITEM, &sd->bl);
    
    				//Now we print it to the map-server console so you can see what it is while playing
    				//ShowDebug("@arealoot commands, debug_i = %d\n", debug_i);
    				
    				//Give fail packet if no item was looted
    				if (debug_i != 0)
    					break;
    		}
    		else {
    			if (!pc_takeitem(sd, fitem))
    				break;
    		}
    		return;
    	} while (0);
    	// Client REQUIRES a fail packet or you can no longer pick items.
    	clif_additem(sd,0,0,6);
    }

    have you exact the same as me ?

  2. In skill.cpp :


    change :

    		case UNT_POEMBRAGI:
    		case UNT_APPLEIDUN:
    		case UNT_HUMMING:
    		case UNT_DONTFORGETME:
    		case UNT_FORTUNEKISS:
    		case UNT_SERVICEFORYOU:
    			if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_BARDDANCER))
    				return 0;
    			if (!sc)
    				return 0;
    			if (!sce)
    				sc_start4(ss, bl, type, 100, sg->skill_lv, sg->val1, sg->val2, 0, sg->limit);
    			else if (sce->val4 == 1) { //Readjust timers since the effect will not last long.
    				sce->val4 = 0; //remove the mark that we stepped out
    				delete_timer(sce->timer, status_change_timer);
    				sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type); //put duration back to 3min
    			}
    			break;
    
    		case UNT_FOGWALL:

    to :

    		case UNT_POEMBRAGI:
    		case UNT_APPLEIDUN:
    		case UNT_HUMMING:
    		case UNT_DONTFORGETME:
    		case UNT_FORTUNEKISS:
    		case UNT_SERVICEFORYOU:
    			if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_BARDDANCER))
    				return 0;
    			if (!sc) return 0;
    			if (!sce)
    			{
    				struct map_session_data *sd = (struct map_session_data *)bl;
    				if(sg->unit_id == UNT_POEMBRAGI && bl->type == BL_PC && (sd->class_&MAPID_BASEMASK) == MAPID_ARCHER)
    				{
    					sc_start4(ss, bl, type, 100, sg->skill_lv, (sg->val1 / 2), (sg->val2 / 2), 0, sg->limit);
    					break;
    				}
    				else
    					sc_start4(ss, bl, type, 100, sg->skill_lv, sg->val1, sg->val2, 0, sg->limit);
    			}
    			else if (sce->val4 == 1) { //Readjust timers since the effect will not last long.
    				sce->val4 = 0; //remove the mark that we stepped out
    				delete_timer(sce->timer, status_change_timer);
    				sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type); //put duration back to 3min
    			}
    			break;
    
    		case UNT_FOGWALL:

     

  3. Look in console if you have some loading error, about grf or other, when you open brow edit and open your map.

    But it's better to work on BrowEdit 620, and save your map with BrowEdit 586 when you've finished it.

  4. 3 hours ago, utofaery said:

    Thanks for 1 and 3.

    but for 2 .. I meant normal attack and skill attack for job gunslinger can't target any kind of trap at all while archer class can easily poke them out of existence aka kill all the trap they can target on by skill or normal attack.

     

    4.  I was thinking of getitem but instead of player getting the item,  cart / storage would get the item and not the player.

    so I was wondering if existance of such command is anywhere... 

    hence the auto storage of item with scripts if exist that kind of command...

    btw getitembound is almost like getitem with little difference but not what I wanted.

     

    5.

    I mean like on a case of normal attack 

    when player equipped certain bow which has the command script to detect the monster element.

    say a mob is neutral when attacked and it trigger attribute change

    and then it change element to say ghost

    then player arrow will auto switch to counter element arrow if exist depending on monster element.

    will this be source edit or item script only??

     

    2) I presume it's a pre-re server, but they are not a lot of skill that can hit traps excepted Hunter, if you want to change that look at 
    battle.cpp - > int battle_check_target

    4) Are you talking about command script storeitem, the eamod feature ? i have just finished to included that code in my emulator for a script i can give you if you need

    5)Can't help you, i've never seen something like that ^^

  5. Finally i make this .diff manualy, it work on my rathena's version

    Edit: Resolved some issues, and added possibility to config range in battle_conf
    But don't know why, when i put range to 10 that make not difference with 3

     

    @arealoot.diff

×
×
  • Create New...