Edit: Found a temporary solution. Ctrl + Alt + Del while RO client is open fixes it. If you have Trilinear on, it will crash the client, so make sure to turn it off beforehand. Otherwise, it's okay.
Dragonis1701's post in @Arealoot was marked as the answer
Oh, hey guys. Sorry, I didn't know you replied to this topic. I'm quoting you both so you both get a notification. Here is the code:
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[sd->packet_ver][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 == 1) {
//Now we give the variable
debug_i = map_foreachinrange(skill_greed,&sd->bl,3,BL_ITEM,&sd->bl);
//Now we print it to the map-server console so you can see what it is while playing
//ShowDebug("debug_i=%d", 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);
}
That code is located in clif.c. I also added a command @arealoot in the atcommand.c. If you need that code as well, just let me know.
I figured out the issue. It was because I clicked "Save" instead of "Save as..." Most programs default Save as if there is no file to just Save to, and I assume this one would do the same. This was my fault. Thanks for trying to help, Olrox.