-
Posts
776 -
Joined
-
Last visited
-
Days Won
22
Community Answers
-
crazyarashi's post in VIP: No Item Consumption was marked as the answer
- Id: 607 AegisName: Yggdrasilberry Name: Yggdrasil Berry Type: Healing Buy: 5000 Weight: 300 Flags: BuyingStore: true NoConsume: true Delay: Duration: 5000 Status: Reuse_Limit_F Script: | percentheal 100,100; if( !vip_status(VIP_STATUS_ACTIVE) ) { delitem 607, 1; }
-
crazyarashi's post in unitattack was marked as the answer
- script test_bot -1,{ OnInit: bindatcmd "testsc",strnpcinfo(3) + "::OnAtcommand"; end; OnAtcommand: if (getgroupid() > 90) { getmapxy(.@m$,.@x0,.@y0,BL_PC); .@plusx = .@x0 + 5; .@plusy = .@y0 + 5; .@minx = .@x0 - 5; .@miny = .@y0 - 5; dispbottom .@m$ + " " + .@x0 + " " + .@y0; .@num = getareaunits(BL_MOB,.@m$,.@plusx,.@plusy,.@minx,.@miny,.@array[0]); .@gid = getcharid(3); detachrid; dispbottom "the number of Monsters in Prontera in that Coordinates is " + .@num + " ."; dispbottom "list of Monsters GID :"; freeloop(1); // for if the list was too big. for(.@i=0;.@i<getarraysize(.@array);.@i++) { dispbottom (.@i + 1) + " " + .@array[.@i]; //unitskilluseid getcharid(3),"WL_JACKFROST",5,getcharid(3),-4; unitattack .@gid,.@array[.@i]; } freeloop(0); dispbottom "end"; end; } else { dispbottom "Currently for testing only."; end; } }
-
crazyarashi's post in How to set my offline server for Pre-Renewal? was marked as the answer
Changing the client files will just update your skill descriptions and other stuffs. As for the server side changes(NPC, Calculations) you need to remove the comment inside renewal.hpp
//#define PRERE to #define PRERE
-
crazyarashi's post in unexpected type for argrument 1 expected string . PVP script was marked as the answer
//This lines if (.msg_die) message .@victimaid, "You have been killed by "+ .@killername$; if (.msg_kill) message .@killeraid, "You just killed "+ .@victimname$; to if (.msg_die) message .@victimname$, "You have been killed by "+ .@killername$; if (.msg_kill) message .@killername$, "You just killed "+ .@victimname$;
-
crazyarashi's post in [ON] and [OFF] using switch(select was marked as the answer
switch(select("MENU 1","MENU 2",(case == 1 ? "ON" : "OFF"))){ case 1: //CODE case 2: //CODE case 3: case = (case == 1 ? 0 : 1); } Use ternary operator
-
crazyarashi's post in Looking for an Invasion Scriptwith mob selection was marked as the answer
- script invasion -1,{ OnInit: setarray .map$,"prontera","izlude"; function add_set; function create_set; create_set(); end; OnMinute00: function start_set; start_set(); end; OnMobDead: if(!mobcount(.current_map$,strnpcinfo(0) + "::OnMobDead")){ OnTimer900000: function end_set; end_set(); } end; //= Add your new set here. function create_set { //= add_set("Mob ID:Mob Amount{:Min amount:Max amount},....."); If min/max amount is added mob amount will be ignored. add_set("1001:50,1002:20:70:100"); add_set("1005:50:10:20,1001:20"); } function add_set { .set$[getarraysize(.set$)] = getarg(0); return; } function start_set { .current_map$ = .map$[rand(getarraysize(.map$))]; killmonster .current_map$,strnpcinfo(0) + "::OnMobDead"; explode(.@T$,.set$[rand(getarraysize(.set$))],","); for(.@i = 0; .@i < getarraysize(.@T$); .@i++){ explode(.@TT$,.@T$[.@i],":"); if(getarraysize(.@TT$) > 2){ if(atoi(.@TT$[3]) == 0) .@amount = atoi(.@TT$[1]); else .@amount = rand(atoi(.@TT$[2]),atoi(.@TT$[3])); } else .@amount = atoi(.@TT$[1]); monster .current_map$,0,0,"--ja--",atoi(.@TT$[0]),.@amount,strnpcinfo(0) + "::OnMobDead"; deletearray .@TT$[0],getarraysize(.@TT$); } announce "Invasion : Invasion has started in " + .current_map$ + ".",bc_blue; initnpctimer; end; } function end_set { announce "Invasion : All monster has been killed.",bc_blue; killmonster .current_map$,strnpcinfo(0) + "::OnMobDead"; end; } }
-
crazyarashi's post in Https, thor patcher issue was marked as the answer
It doesn't support https.. An alternative is to get a sub-domain for it which is usually free.
-
crazyarashi's post in Requesting for mvp points with different value was marked as the answer
- script mvp_point -1,{ end; OnNPCKillEvent: if(!getmonsterinfo(killedrid,MOB_MVPEXP) || inarray(.mvp_point, killedrid) == -1) end; .@index = inarray(.mvp_point, killedrid) + 1; if(!getcharid(1)){ #MVP_POINT += .mvp_point[.@index]; dispbottom "You got " + .mvp_point[.@index] + " MVP Points for killing " + getmonsterinfo(killedrid,MOB_NAME) +"."; } else { getmapxy(.@map$,.@x,.@y,BL_PC); getpartymember getcharid(1),1; getpartymember getcharid(1),2; for(.@i = 0; .@i < $@partymembercount; .@i++){ if(attachrid($@partymemberaid[.@i])){ if(strcharinfo(3) == .@map$ && isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])){ .@member_id[getarraysize(.@member_id)] = $@partymembercid[.@i]; } detachrid; } } .@size = getarraysize(.@member_id); if(.@size == 1){ #MVP_POINT += .mvp_point[.@index]; dispbottom "You got " + .mvp_point[.@index] + " MVP Points for killing " + getmonsterinfo(killedrid,MOB_NAME) +"."; end; } if(.@size > .mvp_point[.@index] || .@size == .mvp_point[.@index]){ .@point = 1; } else { .@point = (.mvp_point[.@index]/.@size); } for(.@i = 0; .@i < .@size; .@i++){ setd "#MVP_POINT",getd("#MVP_POINT") + .@point,.@member_id[.@i]; dispbottom "You got " + .mvp_point[.@index] + " MVP Points for killing " + getmonsterinfo(killedrid,MOB_NAME) +".",0x00FF00,.@member_id[.@i]; } } end; OnInit: setarray .mvp_point, //= MVP ID, Points 1039,10, 1046,20, 1112,30; end; } I haven't tested it yet. Just add all your MVP ID, Point on the array.
-
crazyarashi's post in Itemskill on item_db was marked as the answer
skill "BS_GREED",1; itemskill is for triggering skills when used. ex : fly wing, scrolls, etc..
-
crazyarashi's post in Requesting NPC was marked as the answer
I don't know why you are looking for Endless Tower, but here
https://github.com/rathena/rathena/blob/master/npc/instances/EndlessTower.txt
-
crazyarashi's post in Requesting NPC was marked as the answer
- shop food_vendor -1,12043:20000,12058:20000,12053:20000,12063:20000,12068:20000 map,123,123,1 script Food Vendor 123,{ if(!vendor_unlocked){ mes "[ Food Vendor ]"; mes "Can you give me one " + getitemname(12128) +"?"; next; if(countitem(12128)){ if(select("Give the "+getitemname(12128)+":Cancel") == 2){ mes "[ Food Vendor ]"; mes "That's unfortunate."; close; } mes "[ Food Vendor ]"; mes "Thank you, now I can prepare my foods."; delitem 12128,1; vendor_unlocked = 1; end; } else { mes "[ Food Vendor ]"; mes "Please bring me a " + getitemname(12128) +"?"; end; } } mes "[ Food Vendor ]"; mes "How can I help you?"; next; callshop "food_vendor",1; end; }
-
crazyarashi's post in Item Swap was marked as the answer
- script item_swap -1,{ for(.@i = 0; .@i < .size; .@i++){ .@menu$ += "List " + (.@i+1) + ":"; } mes "Select a list."; next; .@s = select(.@menu$) - 1; explode(.@item$,.item_list$[.@s],","); for(.@i = 0; .@i < getarraysize(.@item$); .@i++){ .@id = atoi(.@item$[.@i]); .@item[.@i] = .@id; if(countitem(.@id)){ .@temp[getarraysize(.@temp)] = .@id; .@data$ += getitemname(.@id) + ":"; } else { continue; } } mes "Select the item you want to swap."; next; .@s = select(.@data$) - 1; .@swap_id = .@temp[.@s]; .@index = inarray(.@item,.@swap_id); for(.@i = 0; .@i < getarraysize(.@item); .@i++){ if(.@i == .@index) continue; .@swap[getarraysize(.@swap)] = .@item[.@i]; .@swap$ += getitemname(.@item[.@i]) + ":"; } mes "select the item you want to swap into."; next; .@s = select(.@swap$) - 1; delitem .@swap_id,1; getitem .@swap[.@s],1; end; OnInit: setarray .item_list$,"501,502,503,504,505","506,507,508,509,510"; .size = getarraysize(.item_list$); end; } Haven't tested this but pretty sure it will work..
-
crazyarashi's post in Help to change skill damage SRC File problems was marked as the answer
Recompile your server. ?
-
crazyarashi's post in Change Korean language on some buttons was marked as the answer
Use a full translation file
Zackdreaver English Translation
-
crazyarashi's post in About : Item_DB 32302 +++ was marked as the answer
kRO should be in that range of ID's 32k+ except for the 100K > new range of ID in kRO, any missing database is either you make it or wait for updates.
-
crazyarashi's post in i need simple npc gift pls. was marked as the answer
you didn't mention about being equipped on the topic.
prontera,255,255,3 script Equip Freebies 123,{ if(#claimed){ mes "[ Freebies ]"; mes "You alreay receieved your freebies."; close; } getinventorylist; for(.@i = 0; .@i < 20; .@i++){ .@id = getequipid(.@i); if(.@id == -1) .@equip_id[.@i] = 0; // Dummy Data else .@equip_id[.@i] = .@id; } for(.@i = 0; .@i < getarraysize(.equip_id); .@i++){ if(inarray(.@equip_id[0],.equip_id[.@i]) >= 0 || inarray(@inventorylist_id[0],.equip_id[.@i]) >= 0){ .@fail = 1; break; } continue; } if(.@fail){ mes "[ Freebies ]"; mes "You already have a duplicated freebies in your inventory/equipment."; close; } #claimed = 1; for(.@i = 0; .@i < getarraysize(.equip_id); .@i++){ getitem .equip_id[.@i],1; equip .equip_id[.@i]; } mes "[ Freebies ]"; mes "Here is your freebies."; end; OnInit: setarray .equip_id,1208,2154; // Add your ID's here. end; } Here is the new script that it will automatically equip it after receiving :))
-
crazyarashi's post in requesting item script was marked as the answer
.@r = getrefine(); skill "SM_MAGNUM",10; bonus2 bHPRegenRate,5000,10000; bonus2 bSPRegenRate,100,10000; if(BaseLevel < 99){ bonus bStr,.@r*3; bonus bFlee,.@r*5; } else { bonus bStr,.@r*10; bonus bFlee,.@r*15; }
-
crazyarashi's post in problem in map server was marked as the answer
The devs already prepared a fix for this, if you look at the pull request.
https://github.com/rathena/rathena/pull/4065
-
crazyarashi's post in Costumes dropped from mobs was marked as the answer
- script costume_drop -1,{ OnNPCKillEvent: .@index = inarray(.mob_id[0],killedrid); if(.@index < 0) end; if(rand(1,10000) <= .chance){ explode(.@ID$,.drop_data$[.@index],":"); announce "Congratulations to the player "+ strcharinfo(0) +" who, after killing a "+ getmonsterinfo( killedrid, MOB_NAME ) +" in "+ strcharinfo(3) +", got a rare costume!",0,0x00FF00; getitem atoi(.@ID$[1]),1; deletearray .@ID$[0],getarraysize(.@ID$); } end; OnInit: .chance = 3; setarray .drop_data$, "1001:501","1002:502","1003:503","1005:504"; //= "Mob ID:Costume ID" for(.@i = 0; .@i < getarraysize(.drop_data$); .@i++){ explode(.@mob_id$,.drop_data$[.@i],":"); .mob_id[.@i] = atoi(.@mob_id$[0]); deletearray .@mob_id$[0],getarraysize(.@mob_id$); } end; } I haven't tested this yet, but it should work fine :))
-
crazyarashi's post in Freebies NPC was marked as the answer
getitembound2 1102,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1151,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1208,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1251,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1302,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1352,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1405,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1452,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1502,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1550,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1602,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1702,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1802,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1951,1,1,10,0,0,0,0,0,Bound_Account; getitembound2 1929,1,1,10,0,0,0,0,0,Bound_Account;
-
crazyarashi's post in script for max hp + 450000 was marked as the answer
prontera,255,55,5 script 450KHP 123,{ bonus_script "{ bonus bMaxHP,450000; }",60,512; dispbottom "Max HP increased by 450,000"; end; OnPCLoadMapEvent: bonus_script_clear 1; end; OnInit: setarray .maps$,"prontera","izlude","samplemap"; //= Maps for removing bonus HP for(.@i = 0; .@i < getarraysize(.maps$); .@i++){ setmapflag .maps$[.@i],MF_LOADEVENT; } end; }
-
crazyarashi's post in Allow Storage with 'can_trade: false' was marked as the answer
In your storage.cpp. Comment out the lines that checks the permission of the sd if they can trade. Though it's not suggestible this may solve your problem.
int storage_storageopen(struct map_session_data *sd) { nullpo_ret(sd); if(sd->state.storage_flag) return 1; //Already open? /* if( !pc_can_give_items(sd) ) { // check is this GM level is allowed to put items to storage clif_displaymessage(sd->fd, msg_txt(sd,246)); return 1; } */ sd->state.storage_flag = 1; storage_sortitem(sd->storage.u.items_storage, sd->storage.max_amount); clif_storagelist(sd, sd->storage.u.items_storage, sd->storage.max_amount, storage_getName(0)); clif_updatestorageamount(sd, sd->storage.amount, sd->storage.max_amount); return 0; }
-
crazyarashi's post in Where is this NPC script located? was marked as the answer
It's in the banquet of heroes quest. ^^
-
crazyarashi's post in Who To Change This massage.. was marked as the answer
It's in your client's msgstring table just search the word in there :))