All Activity

This stream auto-updates     

  1. Today
  2. HELP! Stuck with basic SQL install

    Part 7: Installing Files - sub-part: Freya's Guide https://rathena.org/board/topic/110108-server-side-guide/
  3. First of all, I don't know where have you got VS 2010 C++ Express (its hard to find in current days). And it was very long ago when I tried to compile emulator with VS2010. Try VS 2010, if it does not work, something is incorrect. I suggest you install VS 2017 community (if you can), yes, the size is heavy (~7-8GB) but it will worth it (you can use it for up to date rAthena code compilations). And use _15.sln for it.
  4. FluxCP Mailing system trouble

    Everything above is correct, looks like a hoster restriction against spam. Are you using any shared web hosting, or cPanel hosting? Usually such companies just lock mailing functions for avoiding spam.
  5. Release: ALL monster drop item with Random Option

    i stop selling but still want old buyers to be able to download.
  6. DeepBlueRO

    To whom it may concern: I have opened a new private server (on beta) and just waiting for the integration of Gepard Shield before we launch officially. I am looking for a developer who can help us make the game available on Google Playstore (Android Platform) I need a dev who has a good reputation in this community and has actual experience of Android Development for Ragnarok online. Im aware that I will be incurring costs and Im sure you'd all undertand that I would be keen go for the dev who could offer me the most competitive price and good technical support. Iam REALLY SERIOUS about this endeavour so pls do not take this ppst lightly. I have already spent on Singapore-based host, paying for our own domain, prizes to be given away on our official launch (Sony XZ as our top prize) so I hope Devs who have the same dedication and passion PM me here or whatsapp me on my personal mobile number +6590011011. I hope to hear from you guys soon. Thanks. Yours sincerely, Admin of DeepBlueRO
  7. Hi, Sorry but I am really stuck at this error at my sql. Please tell me what to do. Thanks in advance! Edit: Solved
  8. Floating Droprates.

    As for the x3, exchange callsub(S_changeRates, 2); With callsub(S_changeRates, 3); Not sure about the other error yet.
  9. Alayne's Scripts Collection

    alayne last room has some kind of error , the first post u made about the last room is good , the updated in github had some error
  10. Hallo , ich habe eine Frage , habe vor kurzem Rathena neu aufgesetzt. Jetzt musste ich feststellen das es bei einigen alten Dungeons zb. Toy Fac, Bialan und anderen so ist das die Monster nicht agro sind und auch nichts droppen ? Kann mir da vielleicht einer nen Rat geben woran das liegen kann ? DIe configs habe ich so gelassen wie sie eingestellt waren . Gruß
  11. R> Feint Bomb(SC) skill fix.

    I have noticed this huge nerf too I've been searching if this is confirmed kro behavior but at this date, it seems it isn't correct behavior on "iro" https://irowiki.org/wiki/Feint_Bomb
  12. H> get_val_: fatal error ! player not attached!

    @Quesooo at this part //AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...); AddHunting("Wolf",1,99,32008,5,1000,1152725,1152725,1013,30); The script already block player above 99 can't take the quest. i'm already test that script before.
  13. thank you how to insert baselvl for each boards
  14. i don't see what to explain --------------------------------------- *checkquest(<ID>{,PLAYTIME|HUNTING{,<char_id>}}) If no additional argument supplied, return the state of the quest: -1 = Quest not started (not in quest log) 0 = Quest has been given, but the state is "inactive" 1 = Quest has been given, and the state is "active" 2 = Quest completed If parameter "PLAYTIME" is supplied: -1 = Quest not started (not in quest log) 0 = the time limit has not yet been reached 1 = the time limit has not been reached but the quest is marked as complete 2 = the time limit has been reached If parameter "HUNTING" is supplied: -1 = Quest not started (not in quest log) 0 = you haven't killed all of the target monsters and the time limit has not been reached. 1 = you haven't killed all of the target monsters but the time limit has been reached. 2 = you've killed all of the target monsters --------------------------------------- can you tell us what the errors you get or what wrong ?
  15. H> get_val_: fatal error ! player not attached!

    you can't use (Baselvl) variable while OnInit it's a Character variable not npc variable remove this line
  16. can anyone help me whats wrong with the script? can tell also what will be the solution? here's the script heres the error [Error]: get_val_: fatal error ! player not attached! [Debug]: Source (NPC): Class C+ Quest 1-99#Welga at roy_in01 (131,44) [Warning]: script:get_val: cannot access player variable 'Baselvl', defaulting to 0 //===== rAthena Script ======================================= //= tr0n's Questboard //===== By: ================================================== //= tr0n //===== Current Version: ===================================== //= 1.4.4 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Easily add collection and hunting quests. //===== Additional Comments: ================================= // 1.0.0 Release // 1.1.0 Added zeny reward // 1.2.0 Rewrote checkmob and killcounter // 1.3.1 Added level restriction // 1.3.4 Added Reward Item Amount // 1.4.4 Added Quest delay //============================================================ roy_in01,131,44,4 script Class C+ Quest 1-99#Welga 837,{ if(c_run==1){ mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + currentquest$ + "_collectionname$")+"^000000"; mes "--------------------------------"; for( set [email protected], 0; [email protected] < getarraysize(getd("."+ currentquest$ + "_collectionitem")); set [email protected],[email protected]+2) { mes "^FF0000"+getitemname(getd("."+currentquest$+"_collectionitem["[email protected]+"]"))+" - "+countitem(getd("."+currentquest$+"_collectionitem["[email protected]+"]"))+"/"+getd("."+currentquest$+"_collectionitem["+([email protected]+1)+"]")+" ea.^000000"; } mes "--------------------------------"; mes "[Reward]"; mes "Item: ^0000FF"+((getd("." +currentquest$+"_collectionprize"))?getitemname(getd("." +currentquest$+"_collectionprize"))+" - "+getd("." +currentquest$+"_collectionamount")+" ea.^000000":"Nothing^000000"); mes "Zeny: ^0000FF"+getd("." +currentquest$+"_collectionzeny")+"^000000"; mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+0+"]")+"^000000"; mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+1+"]")+"^000000"; next; if(select("Finish:Abort") == 2){ mes "[^FF7700Questboard^000000]"; mes "Quest aborted."; set currentquest$, ""; set c_run, 0; close; } goto L_checkitems; } if(h_run==1){ mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + currentquest$ + "_huntingname$")+"^000000"; mes "--------------------------------"; for( set [email protected], 0; [email protected] < getarraysize(getd("."+ currentquest$ + "_huntingmob")); set [email protected],[email protected]+2) { set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]"); mes "^FF0000"+strmobinfo(1,getd("."+currentquest$+"_huntingmob["[email protected]+"]"))+" - "+getd(currentquest$+"_"[email protected]+"_"+([email protected]+1)+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+([email protected]+1)+"]")+" ea.^000000"; } mes "--------------------------------"; mes "[Reward]"; mes "Item: ^0000FF"+((getd("." +currentquest$+"_huntingprize"))?getitemname(getd("." +currentquest$+"_huntingprize"))+" - "+getd("." +currentquest$+"_huntingamount")+" ea.^000000":"Nothing^000000"); mes "Zeny: ^0000FF"+getd("." +currentquest$+"_huntingzeny")+"^000000"; mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+0+"]")+"^000000"; mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+1+"]")+"^000000"; next; if(select("Finish:Abort") == 2){ mes "[^FF7700Questboard^000000]"; mes "Quest aborted."; for(set [email protected], 1; [email protected] < getarraysize(getd("."+currentquest$+"_huntingmob")); set [email protected],[email protected]+2){ set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]"); setd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount", 0); } set currentquest$, ""; set h_run, 0; close; } goto L_checkmobs; } L_questmenu: mes "[^FF7700Questboard^000000]"; mes "Select category:"; next; switch(select((.collection)?"Collection Quests":"", (.hunting)?"Hunting Quests":"", "Exit")) { case 1: set [email protected]$, ""; for( set [email protected],0; [email protected] < .collectionquestcount; set [email protected],[email protected]+1) { if ([email protected]) set [email protected]$,[email protected]$+":"; set [email protected]$, [email protected]$ + "[" + getd("." +([email protected]+1)+"_collectionmin") + " - " + getd("." +([email protected]+1)+"_collectionmax") + "] " + getd("." + ([email protected]+1) + "_collectionname$"); } set [email protected],select([email protected]$); if(gettimetick(2) < getd([email protected] + "_collection_delay")){ set [email protected]_left, getd([email protected] + "_collection_delay")-gettimetick(2); mes "[^FF7700Questboard^000000]"; if([email protected]_left < 60) mes "You have to wait ^0000FF"[email protected]_left+" seconds^000000 to do this quest again."; if([email protected]_left < 3600) mes "You have to wait ^0000FF"[email protected]_left/60+" minutes^000000 to do this quest again."; mes "You have to wait ^0000FF"[email protected]_left/60/60+" hours^000000 to do this quest again."; close; } mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + [email protected] + "_collectionname$")+"^000000"; mes "--------------------------------"; for( set [email protected], 0; [email protected] < getarraysize(getd("."+ [email protected] + "_collectionitem")); set [email protected],[email protected]+2) { mes "^FF0000"+getitemname(getd("."[email protected]+"_collectionitem["[email protected]+"]"))+" - "+getd("."[email protected]+"_collectionitem["+([email protected]+1)+"]")+" ea.^000000"; } mes "--------------------------------"; mes "[Reward]"; mes "Item: ^0000FF"+((getd("." [email protected]+"_collectionprize"))?getitemname(getd("." [email protected]+"_collectionprize"))+" - "+getd("." [email protected]+"_collectionamount")+" ea.^000000":"Nothing^000000"); mes "Zeny: ^0000FF"+getd("." [email protected]+"_collectionzeny")+"^000000"; mes "Base EXP: ^0000FF"+getd("." [email protected]+"_collectionexp["+0+"]")+"^000000"; mes "Job EXP: ^0000FF"+getd("." [email protected]+"_collectionexp["+1+"]")+"^000000"; next; if(select("Accept:Decline") == 2){ close; } if(BaseLevel >= getd("." [email protected]+"_collectionmin") && BaseLevel <= getd("." [email protected]+"_collectionmax")) { mes "[^FF7700Questboard^000000]"; mes "Quest accepted."; set c_run, 1; set currentquest$, [email protected]; close; } else { mes "[^FF7700Questboard^000000]"; mes "You don't have the required"; mes "level to do this quest."; close; } case 2: set [email protected]$, ""; for( set [email protected],0; [email protected] < .huntingquestcount; set [email protected],[email protected]+1) { if ([email protected]) set [email protected]$,[email protected]$+":"; set [email protected]$, [email protected]$ + "[" + getd("." +([email protected]+1)+"_huntingmin") + " - " + getd("." +([email protected]+1)+"_huntingmax") + "] " + getd("." + ([email protected]+1) + "_huntingname$"); } set [email protected],select([email protected]$); if(gettimetick(2) < getd([email protected] + "_hunting_delay")){ set [email protected]_left, getd([email protected] + "_hunting_delay")-gettimetick(2); mes "[^FF7700Questboard^000000]"; if([email protected]_left < 60) mes "You have to wait ^0000FF"[email protected]_left+" seconds^000000 to do this quest again."; if([email protected]_left < 3600) mes "You have to wait ^0000FF"[email protected]_left/60+" minutes^000000 to do this quest again."; mes "You have to wait ^0000FF"[email protected]_left/60/60+" hours^000000 to do this quest again."; close; } mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + [email protected] + "_huntingname$")+"^000000"; mes "--------------------------------"; for( set [email protected], 0; [email protected] < getarraysize(getd("."+ [email protected] + "_huntingmob")); set [email protected],[email protected]+2) { mes "^FF0000"+strmobinfo(1,getd("."[email protected]+"_huntingmob["[email protected]+"]"))+" - "+getd("."[email protected]+"_huntingmob["+([email protected]+1)+"]")+" ea.^000000"; } mes "--------------------------------"; mes "[Reward]"; mes "Item: ^0000FF"+((getd("." [email protected]+"_huntingprize"))?getitemname(getd("." [email protected]+"_huntingprize"))+" - "+getd("." [email protected]+"_huntingamount")+" ea.^000000":"Nothing^000000"); mes "Zeny: ^0000FF"+getd("." [email protected]+"_huntingzeny")+"^000000"; mes "Base EXP: ^0000FF"+getd("." [email protected]+"_huntingexp["+0+"]")+"^000000"; mes "Job EXP: ^0000FF"+getd("." [email protected]+"_huntingexp["+1+"]")+"^000000"; next; if(select("Accept:Decline") == 2){ close; } if(BaseLevel >= getd("." [email protected]+"_huntingmin") && BaseLevel <= getd("." [email protected]+"_huntingmax")) { mes "[^FF7700Questboard^000000]"; mes "Quest accepted."; specialeffect2 328; set h_run, 1; set currentquest$, [email protected]; close; } else { mes "[^FF7700Questboard^000000]"; mes "You don't have the required"; mes "level to do this quest."; close; } case 3: close; } L_checkitems: for( set [email protected],0; [email protected] < getarraysize(getd("."+currentquest$+"_collectionitem")); set [email protected],[email protected]+2) { if(countitem(getd("."+currentquest$+"_collectionitem["[email protected]+"]"))>=getd("."+currentquest$+"_collectionitem["+([email protected]+1)+"]")){ set [email protected],[email protected]+2; } } if([email protected]<getarraysize(getd("."+currentquest$+"_collectionitem"))){ mes "[^FF7700Questboard^000000]"; mes "You don't have everything."; close; } for( set [email protected],0; [email protected] < getarraysize(getd("."+currentquest$+"_collectionitem")); set [email protected],[email protected]+2) { delitem getd("."+currentquest$+"_collectionitem["[email protected]+"]"),getd("."+currentquest$+"_collectionitem["+([email protected]+1)+"]"); } mes "[^FF7700Questboard^000000]"; mes "Congratulation! Here is your Reward."; if(getd("." +currentquest$+"_collectionprize")!=0) getitem(getd("." +currentquest$+"_collectionprize"),getd("." +currentquest$+"_collectionamount")); set Zeny,Zeny+getd("." +currentquest$+"_collectionzeny"); getexp getd("." +currentquest$+"_collectionexp["+0+"]"),getd("." +currentquest$+"_collectionexp["+1+"]"); setd(currentquest$ + "_collection_delay"),gettimetick(2)+.quest_delay; set currentquest$, ""; set c_run, 0; close; L_checkmobs: set [email protected], (getarraysize(getd("."+currentquest$+"_huntingmob"))/2); for(set [email protected], 1; [email protected] < getarraysize(getd("."+currentquest$+"_huntingmob")); set [email protected],[email protected]+2){ set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]"); if(getd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount")==getd("."+currentquest$+"_huntingmob["[email protected]+"]")){ set [email protected], [email protected]+1; if([email protected][email protected]){ goto L_checkmobs2; } continue; } goto L_checkmobs2; } L_checkmobs2: if([email protected]<[email protected]){ mes "[^FF7700Questboard^000000]"; mes "You didn't kill everything."; close; } mes "[^FF7700Questboard^000000]"; mes "Congratulation! Here is your Reward."; for(set [email protected], 1; [email protected] < getarraysize(getd("."+currentquest$+"_huntingmob")); set [email protected],[email protected]+2){ set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]"); setd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount", 0); } if(getd("." +currentquest$+"_huntingprize")!=0) getitem(getd("." +currentquest$+"_huntingprize"),getd("." +currentquest$+"_huntingamount")); set Zeny, Zeny+getd("." +currentquest$+"_huntingzeny"); getexp getd("." +currentquest$+"_huntingexp["+0+"]"),getd("." +currentquest$+"_huntingexp["+1+"]"); setd(currentquest$ + "_hunting_delay"),gettimetick(2)+.quest_delay; set currentquest$, ""; set h_run, 0; close; OnNPCKillEvent: if(h_run!=1) end; for(set [email protected], 1; [email protected] < getarraysize(getd("."+currentquest$+"_huntingmob")); set [email protected],[email protected]+2){ if(killedrid==getd("."+currentquest$+"_huntingmob["+([email protected])+"]")){ set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]"); if(getd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount")>=getd("."+currentquest$+"_huntingmob["[email protected]+"]")) end; setd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount", getd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount")+1); dispbottom getd("."+currentquest$+"_huntingname$")+": ["+strmobinfo(1,[email protected])+"] ("+ getd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["[email protected]+"]")+")"; end; } continue; } end; OnInit: function AddCollection; function AddHunting; //Activate/Deactive quest categories here set .collection, 0; set .hunting, 1; //Quest Delay (seconds) //24 hours = 3600 seconds set .quest_delay, 0; //Checks if quests are loaded (prevents out of index) if(.questsloaded==1) end; set .questsloaded, 1; //Add Collection Quests here //AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...); //Add Hunting Quests here //AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...); AddHunting("Wolf",1,99,32008,5,1000,1152725,1152725,1013,30); AddHunting("Archer Skeleton",1,99,32008,5,1200,1152725,1154300,1016,30); AddHunting("Orc Warrior",1,99,32008,5,1500,1152725,1158225,1023,30); AddHunting("Munak",1,99,32008,5,1000,1152725,1154300,1026,30); AddHunting("Isis",1,99,32008,5,2500,1152725,1155975,1029,30); AddHunting("Golem",1,99,32008,5,1000,1152725,1157100,1040,30); AddHunting("Steel Chonchon",1,99,32008,5,1200,1152725,1155975,1042,30); AddHunting("Marc",1,99,32008,5,1500,1152725,1150475,1045,30); AddHunting("Kukre",1,99,32008,5,1000,1152725,1154200,1070,30); waitingroom "Quest C+ 1-99",0; if(Baselvl < 100); end; function AddCollection { set .collectionquestcount,.collectionquestcount+1; setd ("." +.collectionquestcount+"_collectionname$", getarg(0)); setd ("." +.collectionquestcount+"_collectionmin", getarg(1)); setd ("." +.collectionquestcount+"_collectionmax", getarg(2)); setd ("." +.collectionquestcount+"_collectionprize", getarg(3)); setd ("." +.collectionquestcount+"_collectionamount", getarg(4)); setd ("." +.collectionquestcount+"_collectionzeny", getarg(5)); set [email protected], 6; set [email protected], getarraysize(getd("."+ .collectionquestcount + "_collectionexp")); setd ("." +.collectionquestcount+"_collectionexp["[email protected]+"]",getarg([email protected])); setd ("." +.collectionquestcount+"_collectionexp["+([email protected]+1)+"]",getarg([email protected]+1)); set [email protected], [email protected]+2; while(getarg([email protected],-1)!=-1 && getarg([email protected]+1,-1)!=-1) { set [email protected], getarraysize(getd("."+ .collectionquestcount + "_collectionitem")); setd ("."+.collectionquestcount+"_collectionitem["[email protected]+"]",getarg([email protected])); setd ("."+.collectionquestcount+"_collectionitem["+([email protected]+1)+"]",getarg([email protected]+1)); set [email protected],[email protected]+2; } return; } function AddHunting { set .huntingquestcount,.huntingquestcount+1; setd ("." +.huntingquestcount+"_huntingname$", getarg(0)); setd ("." +.huntingquestcount+"_huntingmin", getarg(1)); setd ("." +.huntingquestcount+"_huntingmax", getarg(2)); setd ("." +.huntingquestcount+"_huntingprize", getarg(3)); setd ("." +.huntingquestcount+"_huntingamount", getarg(4)); setd ("." +.huntingquestcount+"_huntingzeny", getarg(5)); set [email protected], getarraysize(getd("."+ .huntingquestcount + "_huntingexp")); set [email protected], 6; setd ("." +.huntingquestcount+"_huntingexp["[email protected]+"]",getarg([email protected])); setd ("." +.huntingquestcount+"_huntingexp["+([email protected]+1)+"]",getarg([email protected]+1)); set [email protected], [email protected]+2; while(getarg([email protected],-1)!=-1 && getarg([email protected]+1,-1)!=-1) { set [email protected], getarraysize(getd("."+ .huntingquestcount + "_huntingmob")); setd ("."+.huntingquestcount+"_huntingmob["[email protected]+"]",getarg([email protected])); setd ("."+.huntingquestcount+"_huntingmob["+([email protected]+1)+"]",getarg([email protected]+1)); set [email protected], [email protected]+2; } return; } } credits to owner thank you
  17. Item Link <item></item> Question

    Wish we could call something about it
  18. Can anyone please Help, send me a link to download the classic ragnarok offline 2nd job, Emulator etc.. Will wait for your reply Thanks in advance
  19. I hope the pricing is a joke, because It's nearly $10k of pricing right now.
  20. Item Link <item></item> Question

    How are we able to call upon that client side interpretation and is it impossible to call upon it from the server itself? (like opening UI windows)
  21. Yesterday
  22. Poring Race Working

    Hi Guys, I'm really needing the poring race running, in the latest version of rathena. Anyone have and could you help me? Thanks!
  23. change picklog

    Hi guys, Does anyone know how to record in the picklog the sending player and the receiving player on the same line. Sorry my bad English. Thanks.
  24. Update command getstorageitem

    Hi guys, Could someone help me convert this command to the latest version of rathena? Index: src/map/script.c /* =============================================================== * +-> [Carlos H] * -> getstorageitem(<item_id>,<quant>{,"<name>"}); --------------------------------------------------------------- */ BUILDIN_FUNC(getstorageitem){ TBL_PC * sd = ((script_hasdata(st,4)) ? map_nick2sd(script_getstr(st,4)):script_rid2sd(st)); struct script_data* data; struct item_data * item_data; struct item item_tmp; int nameid = 0, amount = script_getnum(st,3),x = 0; data = script_getdata(st,2); get_val(st,data); if( data_isstring(data) ){ const char * nameitem = conv_str(st,data); if( (item_data = itemdb_searchname(nameitem)) != NULL ) nameid = item_data->nameid; }else if( (item_data = itemdb_exists(conv_num(st,data))) != NULL ) nameid = item_data->nameid; if( nameid && sd ){ sd->state.storage_flag = 1; memset(&item_tmp,0,sizeof(item_tmp)); item_tmp.nameid = nameid; item_tmp.identify = 1; if( !itemdb_isstackable2(item_data) && amount ) for( ; x < amount; x++ ) storage_additem(sd,&item_tmp,amount); else storage_additem(sd,&item_tmp,amount); storage_storageclose(sd); script_pushint(st,amount); }else script_pushint(st,0); return 0; } Index: src/map/storage.c int storage_additem(struct map_session_data* sd, struct item* item_data, int amount) Index: src/map/storage.h int storage_additem(struct map_session_data* sd, struct item* item_data, int amount); Sorry my bad English. Thank you.
  25. Hi guys, Does anyone have a change in source to add items directly to storage? Ex: getitemstorage? Sorry my bad English. Thanks.
  1. Load more activity