-
Posts
10018 -
Joined
-
Days Won
408
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Emistry
-
- Id: 501 AegisName: Red_Potion Type: Healing Script: | callfunc("F_SignedItem", 501, IG_Taming); function script F_SignedItem { .@item_id = getarg(0, 0); .@groupranditem = getarg(1, 0); if (.@item_id && .@groupranditem) { getinventorylist; for (.@i = 0; .@i < @inventorylist_count; .@i++) { if (@inventorylist_id[.@i] == .@item_id && @inventorylist_card3[.@i] && @inventorylist_card4[.@i]) { .@signed_cid = (@inventorylist_card3[.@i] | (@inventorylist_card4[.@i] << 0x10)); query_sql("SELECT `name` FROM `char` WHERE `char_id` = "+.@signed_cid, .@signed_name$); .@item_name$ = getitemname(.@item_id); if (.@signed_name$ != "") .@item_name$ = .@signed_name$+"'s " + .@item_name$; .@inventorylist_name$[.@i] = .@signed_name$; .@menu$ = .@menu$ + .@item_name$; } .@menu$ += ":"; } .@i = select(.@menu$) - 1; delitem2 @inventorylist_id[.@i],1,@inventorylist_identify[.@i],@inventorylist_refine[.@i],@inventorylist_attribute[.@i],@inventorylist_card1[.@i],@inventorylist_card2[.@i],@inventorylist_card3[.@i],@inventorylist_card4[.@i]; .@reward_id = groupranditem(.@groupranditem); getitem .@reward_id, 1; announce "["+strcharinfo(0)+"] has obtained "+getitemname(.@reward_id)+" from ["+.@inventorylist_name$[.@i]+"'s "+getitemname(.@item_id)+"]!!!", bc_all; } return; } you can try something like this.
- 1 reply
-
- 1
-
-
you may still able to download some of the oldschool hexed clients from 2005 ~ 2010 here. https://web.archive.org/web/20170106031705/http://svn.games-service.net/
-
if (getmapxy(@mapname$,@mapx,@mapy,0) == -1) goto L_Finish; change to if (getmapxy(@mapname$, @mapx, @mapy, BL_PC) == -1) goto L_Finish;
-
- script atcmd_example -1,{ OnInit: bindatcmd "killcount", strnpcinfo(3) + "::OnAtcommand"; end; OnAtcommand: if (compare(.@atcmd_parameters$, "reset")) { #killcount_mob_id = 0; #killcount_amount = 0; dispbottom .@atcmd_command$+" reset successfully."; } else if (getmonsterinfo(atoi(.@atcmd_parameters$), MOB_NAME) != "null") { .@killcount_mob_id = atoi(.@atcmd_parameters$); if (.@killcount_mob_id != #killcount_mob_id) { #killcount_mob_id = .@killcount_mob_id; #killcount_amount = 0; dispbottom .@atcmd_command$+" will start count "+getmonsterinfo(#killcount_mob_id, MOB_NAME)+"."; } } else if (#killcount_mob_id) { dispbottom getmonsterinfo(#killcount_mob_id, MOB_NAME)+" Kill: "+F_InsertComma(#killcount_amount); } else { dispbottom .@atcmd_command$+" failed. Usage: "+.@atcmd_command$+" <mob_id/reset>"; } end; OnNPCKillEvent: if (killedrid == #killcount_mob_id) { #killcount_amount++; dispbottom getmonsterinfo(#killcount_mob_id, MOB_NAME)+" Kill: "+F_InsertComma(#killcount_amount); } end; }
-
if(.@j > 3) { dispbottom "Sorry, only 3 IDs with same Unique ID are allowed on this map."; sleep2 500; dispbottom "Warping you back to Savepoint now..."; sleep2 1000; warp "SavePoint",0,0; }
-
OnNPCKillEvent: if (getgmlevel() >= .gm ) end; // If gm = event wont happen if ( getmonsterinfo( killedrid, MOB_MVPEXP )) { for (.@a = 0; .@a < getarraysize(.t_maps$); .@a++) { if ( strcharinfo(3) == instance_mapname("06guild_01") ) end; if ( strcharinfo(3) == instance_mapname("force_1-1") ) end; if ( strcharinfo(3) == .t_maps$[.@a]) { if (rand(100) < .chance) getitem .s_rwd[0], .s_rwd[1]; announce "[ System ] : Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" alone at "+ strcharinfo(3), bc_all; MVPKills = MVPKills+1; dispbottom "---------------------------------------------------"; dispbottom "You killed a total of "+MVPKills+" MVP"+((MVPKills == 1)?"":"s")+"."; dispbottom "---------------------------------------------------"; end; } } end; }
-
Skip High Novice and High Job 1st Job Classes
Emistry replied to MANG KANOR's question in Scripting Support
https://rathena.org/board/topic/105789-utility-sql-job-changer/ -
Check party member if within the cell and in the map
Emistry replied to Mutate's question in Scripting Support
OnNPCKillEvent: getmapxy(.@map$, .@x, .@y, BL_PC); // <----- YOU MISSED OUT THIS LINE -
change all getmapxy(.@map$,.@x,.@y,0); into getmapxy(.@map$,.@x,.@y,BL_PC); always read the latest rAthena changelog after you updated the server revisions.
-
setarray .@grace_item_list, 450086, 450087, 45088; if (inarray(.@grace_item_list, getequipid(.@part)) == -1) { emotion ET_OTL; mes "[Refine Master]"; mes "Oh, I'm sorry."; mes "This item is impossible to refine."; close; }
- 1 reply
-
- 1
-
-
atcommand "@petrename "+.@name$; use this instead. if you are using the SQL method above, your char need to be disconnected from server before the SQL query is executed to update the server, otherwise your current character data will override the changes when it saved into database upon logout.
-
+10 Checker on F_RefineSystem by Emistry
Emistry replied to celeron0134's question in Scripting Support
set the max refine value to 9 instead of 10. -
R> schg_cas01 - my map floor is broken on first entrance.
Emistry replied to budek's question in Graphics Requests
open up the map using GRF Editor, then you can easily find out what files you are missing. -
How can fix Access denied for user 'ragnarok'@'localhost' (using password: YES)
Emistry replied to eArt's question in Installation Support
i am sure you can find tons of guide to resolve your policy requirements by searching the internet. ex: https://ostechnix.com/fix-mysql-error-1819-hy000-your-password-does-not-satisfy-the-current-policy-requirements/ CREATE USER 'ragnarok'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD'; GRANT ALL PRIVILEGES ON ragnarok.* to 'ragnarok'@'%' IDENTIFIED BY 'YOUR_PASSWORD'; the IDENTIFIED BY is refer for your password. -
how to save higher value to Table rank
Emistry replied to LearningRO's question in Scripting Support
total kill count per session? when you warp into the room, reset the initial count @total_emperium_count = 0; when they killed the Emperium, @total_emperium_count++; if (@total_emperium_count > #count) { #count = @total_emperium_count; query_sql("INSERT INTO `breaker_ladder` SET `char_id` = "+getcharid(0)+", `count` = 1 ON DUPLICATE KEY UPDATE `count` = "+#count); } -
Clarification on Mapflag Restricted items on PVP maps
Emistry replied to AinsLord's question in Scripting Support
your Event_LMS script only assign mapflag, doesn't support assigning extra parameter for mapflag. Hence it wont work with the way you doing it. setmapflag "sec_pri", MF_RESTRICTED, 2; setmapflag "06guild_01", MF_RESTRICTED, 2; or sec_pri mapflag restricted 2 06guild_01 mapflag restricted 2 these would work. -
How can fix Access denied for user 'ragnarok'@'localhost' (using password: YES)
Emistry replied to eArt's question in Installation Support
make sure you are connecting using the correct username/password. and granted access to the database. CREATE USER 'ragnarok'@'localhost' IDENTIFIED BY 'ragnarok'; GRANT ALL PRIVILEGES ON ragnarok.* to 'ragnarok'@'%' IDENTIFIED BY 'ragnarok'; https://github.com/rathena/rathena/wiki/Install-MySQL -
try byako,83,154,4 script Who's Online Event 99,{ mes "[Who's Online Event]"; if (getgroupid() < 99) { mes "Only GM's are allowed to use this NPC."; } else { mes "Enable event?"; if (select("Yes", "No") == 1) { mes "Event started."; donpcevent strnpcinfo(3)+"::OnStart"; } } close; OnHour00: OnHour03: OnHour06: OnHour09: OnHour12: OnHour15: OnHour18: OnHour21: OnStart: do { query_sql "select `account_id`, `name` from `char` where online = 1 order by rand() limit 1", .@aid, .@name$; attachrid .@aid; } while (checkvending() || getgroupid() >= 2 || inarray(.map$, strcharinfo(3)) == -1); announce strcharinfo(0) +" won 1 Lucky Pick Box in Exiled Lucky Pick", bc_all, 0x00FF00; getitem 50043,1; end; OnInit: setarray .map$, "prontera", "izlude", "payon"; end; }
-
Auto kick members of guild in castle when they have 1 agit
Emistry replied to Bisuke's question in Script Requests
try - script Sample -1,{ OnInit: .max_limit = 1; setarray .castles$[0], "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; .castle_size = getarraysize(.castles$); for (.@i = 0; .@i < .castle_size; .@i++) setmapflag .castles$[.@i], mf_loadevent; end; OnPCLoadMapEvent: .@map$ = strcharinfo(3) if (inarray(.castles$, .@map$) != -1) { .@guild_id = getcharid(2); if (.@guild_id) { for (.@i = 0; .@i < .castle_size && .@match_count < .max_limit; .@i++) { if (.@map$ != .castles$[.@i] && .@guild_id == getcastledata(.castles$[.@i], CD_GUILD_ID)) .@match_count++; } getguildmember .@cid, 1; getguildmember .@aid, 2; if (.@match_count >= .max_limit) { for (.@i = 0; .@i < $@guildmembercount; .@i++) { if (isloggedin(.@aid[.@i], .@cid[.@i])) { if (attachrid(.@aid[.@i])) { if (strcharinfo(3) == .@map$) { dispbottom "There can only be "+.max_limit+" Knight per guild members inside a castle during woe."; warp "SavePoint", 0, 0; } detachrid; } } } } } } end; } -
Limit number of certain job per guild at woe
Emistry replied to erick26's question in Script Requests
https://rathena.org/board/topic/128705-woe-job-count-limit-updated/#comment-400262 -
how to save higher value to Table rank
Emistry replied to LearningRO's question in Scripting Support
when you warp into the room, reset the initial count #count = 0; when they killed the Emperium, #count++; if (#count == 1) .@point = 11; else if (#count == 2) .@point = 10; query_sql("INSERT INTO `breaker_ladder` SET `char_id` = "+getcharid(0)+", `count` = 1 ON DUPLICATE KEY UPDATE `count` = `count` + "+.@point); -
if (rand(100) < 10) { 10% } if (rand(100) < 20) { 20% }
-
also can try this https://rathena.org/board/topic/124827-utility-analyzeitem-count-item-in-your-server/
-
try - script Sample -1,{ OnInit: .max_limit = 10; setarray .castles$[0], "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; .castle_size = getarraysize(.castles$); for (.@i = 0; .@i < .castle_size; .@i++) setmapflag .castles$[.@i], mf_loadevent; end; OnPCLoadMapEvent: .@map$ = strcharinfo(3); if (inarray(.castles$, .@map$) != -1) { .@guild_id = getcharid(2); if (.@guild_id) { getguildmember .@cid, 1; getguildmember .@aid, 2; // skip check if member count less than limit if ($@guildmembercount < .max_limit) end; for (.@i = 0; .@i < $@guildmembercount && .@match_count < .max_limit; .@i++) { if (isloggedin(.@aid[.@i], .@cid[.@i])) { if (attachrid(.@aid[.@i])) { .@eac = eaclass(); if (.@eac & EAJ_SWORDMAN|EAJL_2_1 == EAJ_KNIGHT) .@match_count++; detachrid; } } } if (.@match_count >= .max_limit) { for (.@i = 0; .@i < $@guildmembercount; .@i++) { if (isloggedin(.@aid[.@i], .@cid[.@i])) { if (attachrid(.@aid[.@i])) { if (strcharinfo(3) == .@map$) { dispbottom "There can only be "+.max_limit+" Knight per guild members inside a castle during woe."; warp "SavePoint", 0, 0; } detachrid; } } } } } } end; }