-
Posts
9,746 -
Joined
-
Days Won
305
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 Name: Red Potion Type: Healing Buy: 10 Weight: 70 Script: | #CASHPOINTS += 1000; dispbottom "You have "+callfunc("F_InsertComma", #CASHPOINTS)+" cash in your account” thanks!";
-
may refer this topic https://rathena.org/board/topic/101222-adding-sky-in-the-map/
-
bg_create_team(....) you dont have this script command added to your server, or forgotten recompile if you have already added it.
-
query the data from the char_reg_str table
-
conf/log_athena.conf#L92-L94 // Log MVP Monster Drops (Note 1) // Outdated. Use Pick_Log instead. But this log could be useful to keep track slayed MVPs log_mvpdrop: no
-
[email protected],82,112,2 script #102FShadowDust1 844,{ end; OnInstanceInit: donpcevent instance_npcname("#102FShadowDust")+"::OnEnable"; monster instance_mapname("[email protected]"),83,85,"Entweihen Crothen",1957,1,instance_npcname("#102FShadowDust1")+"::OnMyMobDead"; end; OnMyMobDead: set [email protected]$, instance_mapname("[email protected]"); set [email protected]_dead_num,mobcount([email protected]$,instance_npcname("#102FShadowDust1")+"::OnMyMobDead"); if ([email protected]_dead_num < 1) { mapannounce [email protected]$, "Mysterious Voice: Who are you to dare intrude upon my sanctuary?!",bc_map,"0xffff00"; donpcevent instance_npcname("#102FShadowDust")+"::OnDisable"; donpcevent instance_npcname("Lucid Crystal#102")+"::OnEnable"; enablenpc "Devil Square Guardian#2"; //SetItemPartyInMap in_102floor 100 hideoffnpc instance_npcname("et_reward_npc"); // <------- ADD THIS } end; } [email protected],83,85,4 script et_reward_npc 406,{ // rewards... end; OnInstanceInit: hideonnpc strnpcinfo(3); end; }
-
if( query_sql( "SELECT `team_name` FROM `tournament` WHERE `team_name` = '"+escape_sql( [email protected]_name$ )+"'", [email protected]_name$ ) ){ you need to assign a variable to store the data you query from database.
-
input @itemid; if (getiteminfo(@itemid, ITEMINFO_ID) <= 0) { mes @itemid+" has failed!"; next; goto INTRO; }
-
counting total member from the database? gm_room,76,56,5 script Tournament 757,{ mes "Team Name"; input [email protected]_name$; next; mes "Team Name: "[email protected]_name$; query_sql( "SELECT COUNT(1) FROM `tournament` WHERE `team_name` = '"+escape_sql([email protected]_name$)+"' GROUP BY `team_name`",[email protected] ); mes "Total Member: " + [email protected]; close; }
-
- script hourly_point_main -1,{ OnInit: .npc_name$ = strnpcinfo(3); bindatcmd "check",.npc_name$+"::OnAtcommand"; end; OnAtcommand: dispbottom "Accumulated "+#daily_minute_count; end; OnUpdate: if (checkvending()) { dispbottom "Hourly point stopped due to vending."; end; } #daily_minute_count++; deltimer .npc_name$+"::OnUpdate"; switch ( #daily_minute_count ) { default: break; case 60: // 60 minutes #CASHPOINT += 1; getitem 677,1; break; case 120: // 120 minutes #CASHPOINT += 1; getitem 677,1; break; case 180: // 180 minutes #CASHPOINT += 1; getitem 677,1; break; case 240: // 240 minutes #CASHPOINT += 1; getitem 677,1; break; case 300: // 300 minutes #CASHPOINT += 1; getitem 677,1; break; case 360: // 360 minutes #CASHPOINT += 1; getitem 677,1; break; case 420: // 420 minutes #CASHPOINT += 1; getitem 677,1; break; case 480: // 480 minutes #CASHPOINT += 1; getitem 677,1; #daily_minute_count = 0; // reset. break; } OnPCLoginEvent: addtimer ( 60 * 1000 ), .npc_name$+"::OnUpdate"; end; }
-
EquipScript: | addtimer (60 * 1000), "Sample::OnUpdate"; UnEquipScript: | deltimer "Sample::OnUpdate"; - script Sample -1,{ OnUpdate: if (checkvending()) { dispbottom "Hourly Point stopped due to vending."; } else if (checkchatting()) { dispbottom "Hourly Point stopped due to chatroom."; } else if (checkidle() >= 60) { // idled for 60 seconds dispbottom "Hourly Point stopped due to idle."; } else { #hourly_point_duration++; if (#hourly_point_duration >= 60) { #hourly_point++; dispbottom "Hourly Point +1. Total "+#hourly_point+" Points."; } addtimer (60 * 1000), strnpcinfo(3)+"::OnSample"; } end; }
-
- Id: 501 AegisName: Red_Potion Type: Healing Script: | callfunc("F_SignedItem", 501, IG_Taming); function script F_SignedItem { [email protected]_id = getarg(0, 0); [email protected] = getarg(1, 0); if ([email protected]_id && [email protected]) { getinventorylist; for ([email protected] = 0; [email protected] < @inventorylist_count; [email protected]++) { if (@inventorylist_id[[email protected]] == [email protected]_id && @inventorylist_card3[[email protected]] && @inventorylist_card4[[email protected]]) { [email protected]_cid = (@inventorylist_card3[[email protected]] | (@inventorylist_card4[[email protected]] << 0x10)); query_sql("SELECT `name` FROM `char` WHERE `char_id` = "[email protected]_cid, [email protected]_name$); [email protected]_name$ = getitemname([email protected]_id); if ([email protected]_name$ != "") [email protected]_name$ = [email protected]_name$+"'s " + [email protected]_name$; [email protected]_name$[[email protected]] = [email protected]_name$; [email protected]$ = [email protected]$ + [email protected]_name$; } [email protected]$ += ":"; } [email protected] = select([email protected]$) - 1; delitem2 @inventorylist_id[[email protected]],1,@inventorylist_identify[[email protected]],@inventorylist_refine[[email protected]],@inventorylist_attribute[[email protected]],@inventorylist_card1[[email protected]],@inventorylist_card2[[email protected]],@inventorylist_card3[[email protected]],@inventorylist_card4[[email protected]]; [email protected]_id = groupranditem([email protected]); getitem [email protected]_id, 1; announce "["+strcharinfo(0)+"] has obtained "+getitemname([email protected]_id)+" from ["[email protected]_name$[[email protected]]+"'s "+getitemname([email protected]_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([email protected]_parameters$, "reset")) { #killcount_mob_id = 0; #killcount_amount = 0; dispbottom [email protected]_command$+" reset successfully."; } else if (getmonsterinfo(atoi([email protected]_parameters$), MOB_NAME) != "null") { [email protected]_mob_id = atoi([email protected]_parameters$); if ([email protected]_mob_id != #killcount_mob_id) { #killcount_mob_id = [email protected]_mob_id; #killcount_amount = 0; dispbottom [email protected]_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 [email protected]_command$+" failed. Usage: "[email protected]_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([email protected] > 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 ([email protected] = 0; [email protected] < getarraysize(.t_maps$); [email protected]++) { if ( strcharinfo(3) == instance_mapname("06guild_01") ) end; if ( strcharinfo(3) == instance_mapname("force_1-1") ) end; if ( strcharinfo(3) == .t_maps$[[email protected]]) { 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([email protected]$, [email protected], [email protected], BL_PC); // <----- YOU MISSED OUT THIS LINE -
change all getmapxy([email protected]$,[email protected],[email protected],0); into getmapxy([email protected]$,[email protected],[email protected],BL_PC); always read the latest rAthena changelog after you updated the server revisions.
-
setarray [email protected]_item_list, 450086, 450087, 45088; if (inarray([email protected]_item_list, getequipid([email protected])) == -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 "[email protected]$; 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.