Leaderboard
Popular Content
Showing content with the highest reputation on 02/03/13 in all areas
-
Preview: [media=] [/media]This is my old script and I just do a little update. Equip pickaxe and helmet, hit the stone and see did any mineral drop. * Download : Your pickaxe (item_db.txt) : http://pastebin.com/y40BYB82 Script : Minner.txt2 points
-
I make a continuation of this topic this topic mainly concern about unpopular but useful scripting techniques ... should wiki this up someday Randomize item reward Method 1: use F_Rand function. Method 2: use temporary variables. Method 3: use array. Method 1: use F_Rand function Method 2: use temporary variables Method 3: use array sigh ... I seriously need someone to make the english better, my explanation always sux any staff member here feels like can make this topic better, please do so2 points
-
This is designed for the incompetent. The same information can be found in my nfo file. If you wish to keep a little pice of me with you. You can download it off of my public cloud. Spread me around like a cancer! Pour some sugar on me~ P.S. This will be updated, improved regularly. If I miss something please get in touch with me. Keep it up everyone, let's work together! ^_^V SVN rAthena GIT~ https://github.com/rathena/rathena SVN Downloader TortoiseSVN ~ http://tortoisesvn.net/downloads.html Codeplex ~ http://downloadsvn.codeplex.com/ SmartSVN ~ http://www.syntevo.c...n/download.html KRO Installer Miruku ~ http://miruku.rathena.org/ RateMyServer ~ http://ratemyserver....wnload_kROLinks RSU ~ http://nn.nachtwolke.com/dev/rsu/ Clients & Diff Patchers k3dT 2013 Clients - http://k3dt.eu/Ragexe/unpacked/ Weetools Clients ~ https://subversion.a...etools/clients/ Supportmii Clients ~ http://supportmii.com/ro1/Clients/ Earthlingz CleintSide ~ http://www.assembla....bversion/nodes/ ShinsDiffPatcher ~ https://subversion.a...insDiffPatcher/ rAthena's Online Diff Patcher ~ http://rathena.org/t...iff_patcher.php LUA/LUB & Data LUA/Data ~ http://svn6.assembla...svn/ClientSide/ LUB ~ http://code.google.c.../downloads/list Packet_dbs & Packet_lengths Packets ~ http://svn6.assembla...ntSide/Packets/ actRO, Browedit, GRF, Sprite, Client Tools Ratemyserver Tools ~ http://ratemyserver....e=download_tool Supportmii Tools ~ http://supportmii.com/ro1/tools/ Browedit ~ http://browedit.exca...com/?a=download Shins Programs WeeMapCache ~ https://subversion.a...nk/WeeMapCache/ WeeThumbnail ~ https://subversion.a...k/WeeThumbnail/ rAthena's Tools rA's Login Background Screen Generator ~ http://rathena.org/t...gin_background/ Game Server Patchers Thor ~ http://thor.aeomin.net/ Triad ~ http://www.nitroconc...d/index_eng.php Control Panels FluxCP ~ https://github.com/c.../fluxcp-renewal CeresCP ~ http://sourceforge.n.../cerescp/files/ Guides & Info Judas Bible ~ http://supportmii.co.../JudasBible.pdf rAthena Wiki ~ http://rathena.org/wiki/ Misc Helpful Links eAthena Board ~ http://eathena.ws/forum/ RMS Sprite Bible ~ http://ratemyserver....riot_bible_main Web Host Talk ~ http://www.webhostingtalk.com/ Codes / Scripts Paste Sites kPaste ~ http://rathena.kpaste.net/ uPaste ~ http://upaste.me Pastebin ~ http://pastebin.com/ Security / Client Protection Harmony ~ https://harmonize.it/ Setup.exe BlueGhost Setup.exe ~ http://rathena.org/b...up/#entry144124 OpenSetup ~ http://www.mediafire...abj2jau2wxbvoiu1 point
-
jTynne: One of the things I'm seeing across many of the more established private servers these days is a live vend database displayed on each server's website. Such a feature is extremely useful, however, I've never seen the coded publicly shared. I was given a code snippet from Trojal a long while back that I only half understood (thus it was deleted after many failed attempts at getting it to work) that provided similar results to that of the auction system; that is, the data was stored in the database rather than, presumably, system memory. So, what I'm getting at is, providing built-in support for server owners to be able to display vending information easily on their websites by storing vend data in a SQL table. To my understanding, adding the support for such a feature isn't too difficult, and I'd commit it myself if I was proficient in C and if everyone was alright with such a feature being added in as an optional feature. Thoughts? GodLesZ:1 point
-
/* create table log.gm_item_giver ( id int(11) not null auto_increment primary key, `time` datetime, gm_give varchar(23), receiver varchar(23), nameid smallint(6), amount smallint(6), refine tinyint(4), card0 smallint(6), card1 smallint(6), card2 smallint(6), card3 smallint(6) ) engine = archive; */ // ~~~~~ show time left in days, hours, minutes and seconds ~~~~~ function script timeleft__ { if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0); set .@day, .@left / 86400; set .@hour, .@left % 86400 / 3600; set .@min, .@left % 3600 / 60; set .@sec, .@left % 60; if ( .@day ) return .@day +" day "+ .@hour +" hour"; else if ( .@hour ) return .@hour +" hour "+ .@min +" min"; else if ( .@min ) return .@min +" min "+ .@sec +" sec"; else return .@sec +" sec"; } prontera,155,184,4 script dksfjskjf 100,{ if ( getgmlevel() < .eventgmlevel ) end; mes "input the player name"; next; if ( input( .@name$, 4, 23 ) ) close; else if ( !( .@aid = getcharid(3, .@name$) ) ) { mes "player not exist or not online"; close; } else if ( .@aid == getcharid(3) ) { mes "that's you ... baka"; close; } .@name$ = rid2name(.@aid); mes "select the item to give"; next; .@s = select( .menu$ ) -1; if ( getd( "#gm_give_"+ .itemid[.@s] ) + .delay[.@s] * 60 > gettimetick(2) ) { mes "you still can't give this prize to players"; mes "time left: "+ callfunc( "timeleft__", getd( "#gm_give_"+ .itemid[.@s] ) + .delay[.@s] * 60 - gettimetick(2) ); close; } mes "input amount to give."; mes "max = "+ .maxamount[.@s]; next; if ( input( .@amount, 1, .maxamount[.@s] ) ) close; mes "input refine"; next; if ( input( .@refine, 0, 100 ) ) close; for ( .@i = 0; .@i < 4; .@i++ ) { mes "input card "+ ( .@i +1 ); if ( input( .@card[.@i], 0, 32767 ) ) close; else if ( !.@card[.@i] ) ; else if ( getitemname( .@card[.@i] ) == "null" ) { mes "no such item exist"; close; } else if ( getiteminfo( .@card[.@i], 2 ) != 6 ) { mes "the input itemID is not a card"; close; } } next; mes "are you sure want to give"; .@itemid = .itemid[.@s]; mes .@name$ +" "+ .@amount +" "+ callfunc( "getitemname2", .@itemid, 1, .@refine, 0, .@card[0], .@card[1], .@card[2], .@card[3] ) +" ?"; next; if ( select ( "Yes", "No" ) == 2 ) close; else if ( !isloggedin(.@aid) ) { mes "player suddenly log off"; close; } .@origin = getcharid(3); attachrid .@aid; if ( !checkweight( .itemid[.@s], .@amount ) ) { attachrid .@origin; mes "player is currently overweight"; close; } getitem2 .itemid[.@s], .@amount, 1, .@refine, 0, .@card[0], .@card[1], .@card[2], .@card[3]; attachrid .@origin; announce strcharinfo(0) +" give "+ .@name$ +" "+ .@amount +" "+ callfunc( "getitemname2", .@itemid, 1, .@refine, 0, .@card[0], .@card[1], .@card[2], .@card[3] ), 0; setd "#gm_give_"+ .itemid[.@s], gettimetick(2); query_logsql "insert into gm_item_giver values ( null, now(), '"+ escape_sql( strcharinfo(0) ) +"', '"+ escape_sql(.@name$) +"', "+ .itemid[.@s] +", "+ .@amount +", "+ .@refine +", "+ .@card[0] +","+ .@card[1] +","+ .@card[2] +","+ .@card[3] +")"; close; OnInit: .eventgmlevel = 60; // event gm level setarray .itemid, 501, 502, 1201, 1101; // the only item id to give setarray .maxamount, 1000, 100, 1, 1; // maximum amount of item to give. this is give 1000 red pot maximum setarray .delay, 1, 2, 1, 1; // delay in minute // can give red potion , max 1000, delay 1 minute // can give orange potion, max 100, delay 2 minute .@size = getarraysize( .itemid ); for ( .@i = 0; .@i < .@size; .@i++ ) .menu$ = .menu$ + getitemname( .itemid[.@i] ) +":"; end; }1 point
-
1 point
-
1 point
-
Hi enjay, You need to change your server communication user/pass combo in both 'char_athena.conf' and 'map_athena.conf', it can not be s1/p1. You'll have to also update your `login` SQL table in your RO MySQL Database with the new user/pass combo when you change it in the conf files.1 point
-
Hey guys! I know it's been a while, but thanks for the kind words. Thought I'd share a pretty big update to liven up the map board a bit. The island's getting bigger and bigger- I've been busting my butt on fields galore! The east village! The bridge into town! A humble estate! A good ol' swamp boat! Farms! Burial grounds... spooky! The smallest of villages. What could this be? I wonder who lives here... A campsite! One of many. Lost ruins! More ruins! -Even- more ruins! A shrine in the swamp... An overview of a whole field. And a little peak of what's to come... (Work in progress!) A roadside inn! Such fancy buildings...1 point
-
BUILDIN_FUNC(checkidle) { TBL_PC *sd; if ( script_hasdata(st,2) ) { if ( data_isstring( script_getdata(st,2) ) ) sd = map_nick2sd( script_getstr(st,2) ); else sd = map_id2sd( script_getnum(st,2) ); } else sd = script_rid2sd(st); if ( sd ) script_pushint( st, DIFF_TICK(last_tick, sd->idletime) ); else script_pushint(st,0); return 0; } BUILDIN_DEF(checkidle, "?"), wonder whats taking this so long ...1 point
-
1 point
-
I also think its weird, his script has "Test_Headgear" card shop npc as float,but doesn't have any callshop "Test_Headgear"; command around dunno whats the meaning of it http://rathena.org/board/topic/75216-itemizer-with-delay/#entry161901 I dunno if you couldn't find hard enough, but here's mine is the armor enchant has anything to do with this topic ?1 point
-
// ~~~~~ show time left in days, hours, minutes and seconds ~~~~~ function script timeleft__ { if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0); .@day = .@left / 86400; .@hour = .@left % 86400 / 3600; .@min = .@left % 3600 / 60; .@sec = .@left % 60; if ( .@day ) return .@day +" day "+ .@hour +" hour"; else if ( .@hour ) return .@hour +" hour "+ .@min +" min"; else if ( .@min ) return .@min +" min "+ .@sec +" sec"; else return .@sec +" sec"; } prontera,156,179,5 script Player Promoter 947,{ mes "[Player Promoter]"; if ( getgmlevel() == 99 ) { mes "Hi Admin, do you want to distribute ^00CC00Player Promoter Cards^000000 with your name on it ?"; next; for ( .@i = 1; .@i <= .total_group; .@i++ ) .@menu$ = .@menu$ +"Distribute "+ getitemname( .group_idreq[.@i] ) +":"; .@s = select( .@menu$ ); getitem2 .group_idreq[.@s], 1,1,0,0, 254, 0, getcharid(0) % ( 1 << 16 ), getcharid(0) >> 16; close; } else if ( getgmlevel() > 1 ) { mes "Only Admin can use me"; close; } for ( .@i = 1; .@i <= .total_group; .@i++ ) .@menu$ = .@menu$ +( ( getgroupid() < .@i && countitem( .group_idreq[.@i] ) )? "upgrade to "+ .group_name$[.@i] : "" )+":"; if ( getstrlen( #pp_accupgrade$ ) ) { sscanf #pp_accupgrade$, "%d %d", .@id, .@time; mes "Your account is currently a ^00CC00"+ .group_name$[.@id] +"^000000. You still have ^0000FF"+ callfunc( "timeleft__", .@time - gettimetick(2) )+"^000000."; if ( getstrlen( .@menu$ ) == .total_group ) close; } else if ( getstrlen( .@menu$ ) == .total_group ) { mes "Make a donation and you can upgrade your account to become Super Players ^^"; close; } mes "Do you want to upgrade your account ?"; next; .@s = select( .@menu$ ); delitem .group_idreq[.@s], 1; #pp_accupgrade$ = .@s +" "+( gettimetick(2) + 2592000 ); // 1 month atcommand "@adjgroup "+ .@s; mes "[Player Promoter]"; mes "Your account has successfully upgraded to "+ .group_name$[1]; sc_start sc_expboost, 2147483647, 100; sc_start sc_itemboost, 2147483647, 100; close; OnPCLoginEvent: if ( getgmlevel() > 1 ) #pp_accupgrade$ = ""; if ( !getstrlen( #pp_accupgrade$ ) ) end; sscanf #pp_accupgrade$, "%d %d", .@id, .@time; .@left = .@time - gettimetick(2); if ( .@left > 0 ) { atcommand "@adjgroup "+ .@id; if ( .@left >= 2147483 ) { sc_start sc_expboost, 2147483647, 100; sc_start sc_itemboost, 2147483647, 100; } else { addtimer .@left *1000, "player_demoter::Ondemote"; sc_start .@left *1000, 2147483647, 100; sc_start .@left *1000, 2147483647, 100; } end; } Ondemote: atcommand "@adjgroup 0"; message strcharinfo(0), "Your account has demoted to normal player"; #pp_accupgrade$ = ""; end; OnInit: // setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>; ... must follow the sequence in 1,2,3,4,5 ... setarray .group_idreq[1], 31061, 31062, 31063; setarray .group_name$[1], "Super Player", "Hyper Player", "Ultra Player"; .total_group = 3; end; } speechless with goddameit's edit...1 point
-
// ~~~~~ show time left in days, hours, minutes and seconds ~~~~~ function script timeleft__ { if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0); .@day = .@left / 86400; .@hour = .@left % 86400 / 3600; .@min = .@left % 3600 / 60; .@sec = .@left % 60; if ( .@day ) return .@day +" day "+ .@hour +" hour"; else if ( .@hour ) return .@hour +" hour "+ .@min +" min"; else if ( .@min ) return .@min +" min "+ .@sec +" sec"; else return .@sec +" sec"; } prontera,156,179,5 script Player Promoter 947,{ mes "[Player Promoter]"; if ( getgmlevel() == 99 ) { mes "Hi Admin, do you want to distribute ^00CC00Player Promoter Cards^000000 with your name on it ?"; next; for ( .@i = 1; .@i <= .total_group; .@i++ ) .@menu$ = .@menu$ +"Distribute "+ getitemname( .group_idreq[.@i] ) +":"; .@s = select( .@menu$ ); getitem2 .group_idreq[.@s], 1,1,0,0, 254, 0, getcharid(0) % ( 1 << 16 ), getcharid(0) >> 16; close; } else if ( getgmlevel() > 1 ) { mes "Only Admin can use me"; close; } for ( .@i = 1; .@i <= .total_group; .@i++ ) .@menu$ = .@menu$ +( ( getgroupid() < .@i && countitem( .group_idreq[.@i] ) )? "upgrade to "+ .group_name$[.@i] : "" )+":"; if ( getstrlen( #pp_accupgrade$ ) ) { sscanf #pp_accupgrade$, "%d %d", .@id, .@time; mes "Your account is currently a ^00CC00"+ .group_name$[.@id] +"^000000. You still have ^0000FF"+ callfunc( "timeleft__", .@time - gettimetick(2) )+"^000000."; if ( getstrlen( .@menu$ ) == .total_group ) close; } else if ( getstrlen( .@menu$ ) == .total_group ) { mes "Make a donation and you can upgrade your account to become Super Players ^^"; close; } mes "Do you want to upgrade your account ?"; next; .@s = select( .@menu$ ); delitem .group_idreq[.@s], 1; #pp_accupgrade$ = .@s +" "+( gettimetick(2) + 2592000 ); // 1 month atcommand "@adjgroup "+ .@s; mes "[Player Promoter]"; mes "Your account has successfully upgraded to "+ .group_name$[1]; sc_start SC_EXPBOOST,1,0; close; OnPCLoginEvent: if ( getgmlevel() > 1 ) #pp_accupgrade$ = ""; if ( !getstrlen( #pp_accupgrade$ ) ) end; sscanf #pp_accupgrade$, "%d %d", .@id, .@time; .@left = .@time - gettimetick(2); if ( .@left > 0 ) { atcommand "@adjgroup "+ .@id; if ( .@left >= 2147483 ) end; addtimer .@left *1000, "player_demoter::Ondemote"; sc_start SC_EXPBOOST,1,0; end; } Ondemote: atcommand "@adjgroup 0"; message strcharinfo(0), "Your account has demoted to normal player"; #pp_accupgrade$ = ""; sc_start SC_DROPBOOST,1,0; end; OnInit: // setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>; ... must follow the sequence in 1,2,3,4,5 ... setarray .group_idreq[1], 31061, 31062, 31063; setarray .group_name$[1], "Super Player", "Hyper Player", "Ultra Player"; .total_group = 3; end; }1 point
-
@AnnieRuru There is a small error in typo for .peak_date_time$ .peak_date_time = gettime(8); $peak_date$ = .peak_date_num +" "+ .peak_date_time$; >> .peak_date_time1 point
-
.@castle_guild_id = getcastledata( getvariableofnpc( .Castles$[.@i], "WOE_CONTROL" ), 1 ); if ( getvariableofnpc( .Active[0], "WOE_CONTROL" ) & 1 << .@i && .@castle_guild_id ) query_sql "update guild set woe_points = woe_points +1 where guild_id = "+ .@castle_guild_id; yes it will, can't read these 3 lines ? in euphy's woe controller script, many variables are already preset there I just have to use some getvariableofnpc retrieve the value directly from there1 point
-
1 point
-
http://rathena.org/board/topic/76130-i-have-script-npc-refine-100-1-to-max-with-item-event-item/page__hl__%2Bsafe+%2Brefine Or search for 'safe refine' in the search box in the upper right of this page http://rathena.org/board/topic/66190-refine/page__p__114564__hl__+safe%20+refine#entry1145641 point
-
1 point
-
A rental item which give unlimit box ? I hope you will understand my example : prontera,155,168,5 script yuio 456,{ rentitem 13531, 86400 * 30; // 30 days end; } A NPC give a rental item. // ID,AegisName,Name,Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } 13531,Light_Red_Pot_Box,Light Red Potion Box,11,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 603,1; },{},{} An item (not consumed - type 11) give unlimit item.1 point
-
1 point
-
Who the hell cares what the project is? I'm loyal to the code, not the name. Also posting to add legend to the thread.1 point
-
Are there some staff issues going around? Seeing how the activity has dropped a bit.1 point
-
I never really understood how there could be so much political trouble in emulator projects. You don't even need to do many coding decisions as you already have a clear definition on how it should be (= like official servers). That devs are lazy, well that's a different story, an open source project always depends on how many people are willing to work for it. You can't really blame devs for doing nothing. Want more work done? Then join the project instead of doing the fixes just for your own server.1 point
-
1 point
-
Please do let me know if there are any improvements or requests you have for the file. I've not yet had time to implement a timer warp delay or a check on whether or not the player is dead, but will in v3/v4.1 point
-
1 point
-
try this....start from fresh ............. Client Parts get a 2012-04-10 Client here. http://supportmii.co...10aRagexeRE.exe get a Diffpatcher here http://supportmii.co...f2012Pack_v3.7z Diff your client.....but make sure you included this diff file http://supportmii.co...Obfuscation.dll and ...IGNORE these....... Load LUA before LUB Read Data Folder First Client should be ready by now........with a working Setup.exe ( i using Blue Ghost Setup.exe ) Data Folder / GRF Parts Download the Basic Data Folder here .... http://subversion.as...n_Project/data/ Download your Lub File Package here... http://subversion.as...Translated].rar Okay.....after the LUB files is downloaded, inside you will saw 2 folder ... data folder src folder We only need the "Data Folder" not the "Src Folder" ........ put the "Data Folder" that you found inside the LUB File Package ....into the Basic Data Folder you have downloaded. the final directory of your LUB files should look like these.... data\luafiles514 Remember..... you are copy paste the LUB Files folder into your Basic Data Folder's Folder ...... get a GRF Builder ... ( i using GRF Builder , get from RMS ) Create a New GRF File with whatever name you want ...... Merge the WHOLE folder of your Basic Data Folder into the GRF .... Repack ......... DONE .............. inside your DATA.INI [data] 0=yourserver.grf 1=rdata.grf 2=data.grf you're done ....should be able to connect to your server without fail....and items are also suppose to be translated since 2012-04-10 clients still reading the data from plain text files for items....... If still got problems....please post some Screenshot ....kinda lazy to read your essay >.< too long ..... Sorry for bad english ~1 point
-
Latest Stable Client Latest Stable LUB Latest Stable Data Files/GRF Clean RO Folder PM Judas if you have any useful content to add, suggestions, or information to make this setup process much easier! Thanks!1 point