-
Posts
1282 -
Joined
-
Last visited
-
Days Won
41
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Everything posted by Skorm
-
Doing anything in sql dealing with guild information doesn't updating instantly and uselessly requires a server restart. So, unless there's a new command I don't know about. A request like this just isn't very practical. On the other hand I did build a script that allows GMs to change guild leaders while they're offline... - script GLC -1,{ function f_recovery; OnWhisperGlobal: if(@whispervar0$ == "" || getgmlevel() < 60) end; set .@a, getcharid(2,@whispervar0$)?getcharid(2,@whispervar0$):atoi(@whispervar0$); set .@e, getcharid(3,@whispervar1$)?getcharid(3,@whispervar1$):atoi(@whispervar1$); set .@g, getarraysize(.recovery$); set .@d$, getguildmaster(.@a); set .@f$, strcharinfo(0); if(@whispervar1$ == "" && .@a) set .@b$, @whispervar0$; if(!getcharid(0,@whispervar0$)) { if(!f_recovery()) { set(.recovery$[.@g],@whispervar0$); message .@f$,"Character is offline but will be granted guild leader when logged in."; } else message .@f$,"Character has been removed from the list!"; end; } if(isloggedin(.@e)) { set .@b$, rid2name(.@e); if( rid2name(.@e) == @whispervar1$ ) set .@b$, @whispervar1$; } if(!.@a) { message .@f$,"No guild was found!"; end; } if(.@d$ == .@b$) { message .@f$,"He's already the guild master!"; end; } message .@f$, guildchangegm(.@a,.@b$)? "Guild leader successfully changed!":"Player not found!"; end; OnPCLoginEvent: function f_recovery; sleep2 2000; if(f_recovery()) guildchangegm(getcharid(2),strcharinfo(0)); function f_recovery { while(.@i<getarraysize(.recovery$)) { if(.recovery$[.@i]==strcharinfo(0)) { deletearray .recovery$[.@i],1; return 1; } set .@i,.@i+1; } return 0; } }
-
spotted !you are not using rAthena rathena has Option_Invisible https://github.com/rathena/rathena/blob/master/db/const.txt#L311 hercules doesn't has https://github.com/HerculesWS/Hercules/blob/master/db/const.txt#L301 actually just copy these constants into your const.txt file and it should work Lol I actually have 7 different test servers consisting of the mainly used RO Emulators. I prefer to use an older version of rAthena because it has the older instance system and most of my test projects. Thank you, I'll try to add this it seems useful.
-
Although, I feel you're demanding this request rather then asking kindly. I'll give you something to work with... But, (next time) remember to use kind words like please and thank you. alde_gld,53,79,3 script Guild Information#0 837,{ set(.@guild_id,getcastledata(getd(".guild_n_"+strnpcinfo(2)+"$"),1)); mes "[Guild Information]"; if(.@guild_id) { mes "Guild Leader: "+getguildmaster(.@guild_id); mes "Guild: "+getguildname(.@guild_id); } else mes "This castle is vacant."; close; OnInit: setarray .guild_n$, "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "nguild_alde","nguild_gef","nguild_pay","nguild_prt", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05"; setd(".guild_n_"+strnpcinfo(2)+"$",.guild_n$[atoi(strnpcinfo(2))]); waitingroom getcastlename(getd(".guild_n_"+strnpcinfo(2)+"$")),0; }
-
I think option 6 (Petrifying) is better for these things... It disables the use of NPCs etc. Even if they did abuse it their character is rather useless. I do agree with the post above you should add a check that they remain on the designated map... prontera,157,183,4 script kjsdhfkjsdf 100,{ if ( select( "Enter as Spectator", "Enter as candidates" ) == 1 ) { setoption 0x40 | Option_Xmas, 1; addtimer 1000,"kjsdhfkjsdf::OnCheckEvent"; } warp "guild_vs2", 0,0; end; OnCheckEvent: if( strcharinfo(3) != "guild_vs2" && checkoption(0x40 | Option_Xmas) ) setoption 0x40 | Option_Xmas, 0; addtimer 1000,"kjsdhfkjsdf::OnCheckEvent"; end; OnPCLogoutEvent: if ( strcharinfo(3) == "guild_vs2" ) setoption 0x40 | Option_Xmas, 0; end; } guild_vs2 mapflag pvp guild_vs2 mapflag pvp_noguild guild_vs2 mapflag nowarpto guild_vs2 mapflag nowarp guild_vs2 mapflag noteleport guild_vs2 mapflag nomemo guild_vs2 mapflag nosave SavePoint Option_Invisible didn't seem to work for me either I'm sure it probably has something to do with my revision.
-
I'm not sure if this as even a script related request let alone a request at all... So I was going to redirect you to our French support but I realized we have none. Anyways you may want to ask http://rathena.org/board/user/5984-capuche/ I believe he speaks French and may be of more assistance.
-
I'm getting an error when I try. rid2name(killedrid) Replace it with... getmonsterinfo(killedrid,0)
-
getmapxy(.@map$,.@x,.@y,0); savepoint .@map$,.@x,.@y; Or you can try detaching the player from the script so the npc uses the command. mes "^00C5EF[Kafra Employee]^000000"; mes "Your Respawn Point"; mes "has been saved here."; set(.@char$,strcharinfo(0)); close2; cutin "",255; detachrid; atcommand "@save "+.@char$; end;
-
Npc for Guild Master and Guild Members @gstorage
Skorm replied to Kido's question in Script Requests
I suppose I had meant to say that I intended to replace the need for an SQL table to store access data; the queries in the previous version were to return a specific player's name or ID, for lack of an alternative method. Thanks for the feedback though; I concede that the revised version turned out much better, after some consideration. I agree -
Yeah my friend has also been having this same problem. I've mentioned it to the staff although I'm not sure if they've acted on it.
-
Npc for Guild Master and Guild Members @gstorage
Skorm replied to Kido's question in Script Requests
You should avoid using global variables for things like this... Especially if it isn't bitwise or compact string... Reason being it's updated very frequently as opposed to a new sql table which is only used when the script requires it. Soon you'll have a very large set of strings or numbers being constantly updated. You've effectively created an array of many global variables. x_x;; I also recommend you add some kind of clear command to your script. If a GM ever decides to remove your script all your unused variables will litter their server. Ideally you'd save all information into its own sql scheme and load it to the script via temporary global variables when the server starts. -
Npc for Guild Master and Guild Members @gstorage
Skorm replied to Kido's question in Script Requests
Lucid Truth by Blackmill http://grooveshark.com/s/Lucid+Truth/4LwoOr?src=5 -
Npc for Guild Master and Guild Members @gstorage
Skorm replied to Kido's question in Script Requests
I made something like this awhile ago. http://code.google.com/p/ea-addicts/downloads/detail?name=guildwarehousesql.txt&can=2&q=#makechanges This is a video tutorial of how to use the script. -
Indeed, I've used OpenKore in the past you'd be better off spawning a monster that is the same as your gold mobs with the same trigger attached and co-routine it lets say every 100 of those mobs killed and it asks you a few random human questions... Ex: Down stream without a _____. A: paddle B: bridge C: hamster D: goat
-
Hmm try... - script treasurebox_event -1,{ OnInit: setarray .treasure_box,1902,1; // treasure box id + amount to spawn setarray .map$, "geffen"; // map list set .gain_zeny, 1000000; // zeny gain upon killing box setarray .item,607,3,671,5; // item gain upon killing box set .map_size, getarraysize( .map$ ); set .item_size, getarraysize( .item ); set .npc_name$, strnpcinfo(0); // end; OnClock0200: OnClock0400: OnClock0600: OnClock0800: OnClock1000: OnClock1200: OnClock1400: OnClock1600: OnClock1800: OnClock2000: OnClock2200: OnClock0000: set .@index, rand( .map_size ); announce "A Rare Treasure Box has Been Spawned "+.treasure_box[1]+" x "+getmonsterinfo( .treasure_box[0],MOB_NAME )+" at "+.map$[.@index],bc_all; monster .map$[.@index],0,0,"--ja--",.treasure_box[0],.treasure_box[1],.npc_name$+"::OnKill"; end; OnKill: set .@box_amount, mobcount( strcharinfo(3),.npc_name$+"::OnKill" ); set Zeny, Zeny+.gain_zeny; if( .item_size > 1 ) for( set(.@i, 0); .@i < ( .item_size - 1 ); set(.@i,.@i + 2) ) getitem .item[.@i],.item[.@i+1]; announce strcharinfo(0)+" Gained "+.gain_zeny+" Zeny, 3 Yggdrasil Berries & 5 RO Coins for Killing the Treasure Box. "+( ( .@box_amount )?"Left "+.@box_amount+" at "+.map_name$:"" )+".",bc_all; end; }
-
O_O;; I'm sorry I hadn't realized you were going to make it. I'm sure you're script will be just as good or even better!
-
Honestly, I had though about making this... I'm glad someone did! ;P
-
izlude_in,30,171,5 script gm_house 139,{ end; OnRefreshCount: set(.gms,0); set(.usr,0); deletearray .a_gms; addrid(1); if(getgmlevel()>=.gmlvl) set .a_gms[set(.gms,.gms+1)], getcharid(3); else set(.usr,.usr+1); end; OnPlayerHelp: if(getgmlevel()>=.gmlvl) { warp .map$,.x,.y; end; } donpcevent "gm_house::OnRefreshCount"; if(.gms&&!.usr&&!.que) { donpcevent "gm_house::OnAttachGms"; message strcharinfo(0),"You'll be warped to the help desk in 10 seconds."; set(.que,1); showdigit -10,2; sleep2(10000); if(playerattached()) { showdigit 0,0; warp .map$,.x,.y; } set(.que,0); } else { message strcharinfo(0),"The GMs are currently busy or unavailable please try again later."; } end; OnAttachGms: for(set(.@a,1);.@a<=.gms;set(.@a,.@a+1)) { attachrid(.a_gms[.@a]); showdigit -10,2; soundeffect "aster_die.wav",0; message strcharinfo(0),"A player is entering you have 10 seconds to prepare."; sleep2(10000); showdigit 0,0; } end; OnInit: bindatcmd "gmhelpme","gm_house::OnPlayerHelp"; getmapxy(.map$,.x,.y,1); set .gmlvl, 60; } prontera,155,179,5 script gm_house 45,2,2,{ OnTouch: doevent("gm_house::OnPlayerHelp"); } It's not pretty but anyways just move the first npc to the map you're using as the GM House or whatever you want to call it. Where you move the npc will also be the location of where the players and gms get warped in when using @gmhelpme command also I added an example of how you could use it as a warp portal.
-
Where do we submit our contributions for administration's observation, and do they have to be new or just frequented and maintained?
-
Yes by default it is set to group 5 you can find the setting in conf/login_athena.conf // Which group (ID) will be denoted as the VIP group? // Default: 5 vip_group: 5
-
Replace all instances of Zeny with #CASHPOINTS and no you don't need to query the sql db.
-
By cash do you mean zeny? or? This is currently untested but yeah. prontera,100,100,5 script Hime-sama 72,{ if(getgmlevel()>=60){ mes "[^0000FFSlave-sama^000000]"; mes "Hello, Master, would you like to proceed with your official duties or view the player menu?"; next; if(select("Take me to the GM menu!:I'd like to view the player menu.")==1) { mes "[^0000FFSlave-sama^000000]"; mes "Alright, Master, please entire the characters name that you'd like to edit!"; next; input(.@character$); if(!getcharid(0,.@character$)) { mes "[^0000FFSlave-sama^000000]"; mes "Master, I'm sorry but that character doesn't seem to exist."; emotion e_sob,0; close; } L_Menu: mes "[^0000FFSlave-sama^000000]"; mes "So you'd like to modify ^0000FF"+.@character$+"^000000, good choice!"; mes "What would you like to do?"; next; switch(select("Modify players time.:View players vip status.:I'm leaving!")){ case 1: mes "[^0000FFSlave-sama^000000]"; mes "Input a positive value in minutes to increase VIP status and a negative value to decrease it."; mes "Put 0 to return."; next; input(.@time); if(!.@time) goto "L_Menu"; vip_time .@time,.@character$; mes "[^0000FFSlave-sama^000000]"; mes "VIP time updated!"; next; goto L_Menu; case 2: mes "[^0000FFSlave-sama^000000]"; mes vip_status(1,.@character$)?"^0000FF"+.@character$+" is currently a VIP Member.^000000":"^FF0000"+.@character$+" is not a VIP Member.^000000"; mes .@character$+"'s VIP status will expire on ^FF0000"+vip_status(2,.@character$)+"^000000"; mes .@character$+" has "+vip_status(3,.@character$)+" remaining."; next; goto L_Menu; case 3: mes "[^0000FFSlave-sama^000000]"; mes "Thank you Master please come again!"; close; } } } mes "Hello, "+strcharinfo(0)+(vip_status(1)||getgmlevel()>=60?"-sama":"")+", what would you like to do?"; switch (select("Purchase VIP:View VIP Status:Explain")) { case 1: mes "[^0000FFHime-sama^000000]"; mes "Here you can purchase VIP status for a number of days."; next; set @menu, select(.purchase$)-1; if(Zeny<.cost[@menu]) { mes "[^0000FFHime-sama^000000]"; mes "Look, you don't have enough money, so how about... YOU STOP WASTING MY TIME!"; emotion e_pif,0; close; } mes "[^0000FFHime-sama^000000]"; mes "You're now an official member of the VIP gang for "+.time[@menu]+" day(s). ^EE82EE<3^000000"; set Zeny, Zeny-.cost[@menu]; vip_time(.time[@menu]*1440); emotion e_lv,0; close; case 2: mes "[^0000FFHime-sama^000000]"; mes vip_status(1)?"^0000FFYou're currently a VIP Member.^000000":"^FF0000You're not a VIP Member.^000000"; mes "You're VIP status will expire on ^FF0000"+vip_status(2)+"^000000"; mes "You have "+vip_status(3)+" remaining."; close; case 3: mes "[^0000FFHime-sama^000000]"; mes "I'm a princess I shouldn't have to explain myself to you!"; close; } end; OnInit: setarray .time, 1, 10, 20, 30, 40; //Time in days. setarray .cost, 10, 20, 30 40, 50; //Cash? for(set .@a,0; .@a<getarraysize(.time); set .@a,.@a+1) set .purchase$, .purchase$+.time[.@a]+" day(s) for "+.cost[.@a]+" cash.:"; } Paste: xdrin9s027d
-
For town block try... - script buster -1,{ OnPCLoadMapEvent: if(strcharinfo(3)=="prontera"&&eaclass()&EAJL_THIRD) warp "map",x,y; end; } prontera mapflag loadevent To single out third job classes and give them items example. if(eaclass()&EAJL_THIRD) { getitem(1220,1); }
-
X_X
-
In all honestly I think this would actually be slower than my version... You're running the entire map through more checks. I attached the main player called a new event then re-attached him to get the map location but all other players only go through 1 check and one condition. Instead of 2 checks with a subsequent conditional count.
-
It's past 6am Annie I haven't slept a wink. Can you cut me some slack x_x Thanks for pointing that out though. <3