Leaderboard
Popular Content
Showing content with the highest reputation on 04/23/17 in all areas
-
1 point
-
View File Yuchinin Common Library //===== rAthena Script ======================================= //= Yuchinin Common Library //===== By: ================================================== //= Yuchinin //===== Current Version: ===================================== //= 2.2 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A common useful function I wrote to make my life easier. //= Most of my release script will need this to work //=====******** Note ********================================= //= This will be the core of my other script. //= Better let it load first before adding my other script. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Change function arrdel from using 'value' to 'index' //= 1.2 Fixed sql query bug //= 1.3 Added Url, npcmes //= 1.4 Added strcharinfo2 to avoid offline player return empty //= String //= 1.4a Fixed arrdel //= 1.4b Fixed arrfind //= 1.4c Add arrdel, arrfind notsensitive bool //= 1.5 Add answer_chk to check input value from define value //= 1.5a Optimize npcindistance //= 1.5b Try to fix npcindistance //= 1.6 Added marketshopcountitem, marketshopdelitem //= 1.7 Added itemcheck, varcheck //= 1.8 Added itemname //= 1.9 Revamped itemcheck and varcheck //= 1.9a Comment out the debugmes of function arradd //= 2.0 Added running Marquee //= 2.1 Added function itemtype to return item type in string //= 2.2 Added getcharid2 to counter getcharid which need attached //============================================================ Submitter yuchinin Submitted 04/18/2017 Category Utilities Content Author1 point
-
*cutin "<filename>",<position>; This command will display a picture, usually an NPC illustration, also called cutin, for the currently attached client. The position parameter determines the placement of the illustration and takes following values: 0 - bottom left corner 1 - bottom middle 2 - bottom right corner 3 - middle of screen in a movable window with an empty title bar 4 - middle of screen without the window header, but still movable The picture is read from data\texture\유저인터페이스\illust, from both the GRF archive and data folder, and is required to be a bitmap. The file extension .bmp can be omitted. Magenta color (#ff00ff) is considered transparent. There is no limit placed on the size of the illustrations by the client, although loading of large pictures (about 700x700 and larger) causes the client to freeze shortly (lag). Typically the size is about 320x480. New illustrations can be added by just putting the new file into the location above. The client is able to display only one cutin at the same time and each new one will cause the old one to disappear. To delete the currently displayed illustration without displaying a new one, an empty file name and position 255 must be used. // Displays the Comodo Kafra illustration in lower right corner. cutin "kafra_07",2; // Typical way to end a script, which displayed an illustration during a // dialog with a player. mes "See you."; close2; cutin "",255; end;1 point
-
Thos feature is not implement in either rAthena or hercules.. both emulator currently in progress supporting this feature.. https://github.com/rathena/rathena/pull/2044 https://github.com/HerculesWS/Hercules/pull/16661 point
-
What git hash are you using? I once had an issue about this. The data modification is being dispelled when the mobs element changed. but it was fixed. Check this LINK If you are using a git hash higher than the fix. Try to execute this code and check if the mob data is being changed. .@mon_count = 3; monster "payon",0,0,"Bigfoot (Weakened)",1060,.@mon_count,"Room of Dungeon::OnMyMobDead"; //Bigfoot for (.@i = 0; .@i < .@mon_count; .@i++) { .@mobgid = $@mobid[.@i]; setunitdata .@mobgid,UMOB_LEVEL,5; setunitdata .@mobgid,UMOB_MAXHP,100; setunitdata .@mobgid,UMOB_HP,100; setunitdata .@mobgid,UMOB_ATKMIN,40; setunitdata .@mobgid,UMOB_ATKMAX,45; setunitdata .@mobgid,UMOB_DEF,15; setunitdata .@mobgid,UMOB_MDEF,15; setunitdata .@mobgid,UMOB_FLEE,70; // Will check the monster current data if modified by the above script getunitdata .@mobgid,.@param; dispbottom ""+.@param[UMOB_LEVEL]+""; dispbottom ""+.@param[UMOB_MAXHP]+""; dispbottom ""+.@param[UMOB_HP]+""; dispbottom ""+.@param[UMOB_ATKMIN]+""; dispbottom ""+.@param[UMOB_ATKMAX]+""; dispbottom ""+.@param[UMOB_DEF]+""; dispbottom ""+.@param[UMOB_MDEF]+""; dispbottom ""+.@param[UMOB_FLEE]+""; }1 point
-
1 point
-
prontera,155,187,5 script cardcheck 100,{ mes "blah"; next; select "search by input player name/ID", "search by card ID"; if ( @menu == 1 ) { switch ( select ( "Char Name", "Account ID", "Char ID" ) ) { case 1: input .@id$; if ( isloggedin( getcharid( 3, .@id$ ) ) ) { .@cid = getcharid( 0, .@id$ ); .@aid = getcharid( 3, .@id$ ); .@name$ = rid2name( getcharid( 3, .@id$ ) ); } else { if ( !query_sql( "select char_id, account_id, name from `char` where name = '"+ escape_sql( .@id$ ) +"'", .@cid, .@aid, .@name$ ) ) { mes "There is no such Character Name exist"; close; } } break; case 2: input .@id; if ( !( .@nb = query_sql( "select char_id, name, char_num, account_id from `char` where account_id = "+ .@id +" order by char_num asc", .@cid, .@name$, .@gid, .@aid ) ) ) { mes "There is no such Account ID"; close; } for ( .@i = 0; .@i < .@nb; .@i++ ) { mes ( .@gid[.@i] +1 )+". "+ .@cid[.@i] +" "+ .@name$[.@i]; .@menu$ = .@menu$ +( .@gid[.@i] +1 )+". "+ .@cid[.@i]; } next; .@s = select( .@menu$ ) -1; .@cid = .@cid[.@s]; .@aid = .@aid[.@s]; .@name$ = .@name$[.@s]; break; case 3: input .@id; if ( !query_sql( "select char_id, account_id, name from `char` where char_id = "+ .@id, .@cid, .@aid, .@name$ ) ) { mes "There is no such Character ID exist"; close; } } mes "The player ^0000FF"+ .@name$ +"^000000 is "+( ( isloggedin(.@aid) )?"^00FF00Online":"^FF0000Offline" )+"^000000"; if ( isloggedin( .@aid, .@cid ) ) { .@origin = getcharid(3); attachrid .@aid; getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) { if ( compare( .mvpcard_compare$, "#"+ @inventorylist_id[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card1[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card2[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card3[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card4[.@i] +"#" ) ) { .@itemid[.@c] = @inventorylist_id[.@i]; .@amount[.@c] = @inventorylist_amount[.@i]; .@identify[.@c] = @inventorylist_identify[.@i]; .@refine[.@c] = @inventorylist_refine[.@i]; .@broken[.@c] = @inventorylist_attribute[.@i]; .@card1[.@c] = @inventorylist_card1[.@i]; .@card2[.@c] = @inventorylist_card2[.@i]; .@card3[.@c] = @inventorylist_card3[.@i]; .@card4[.@c] = @inventorylist_card4[.@i]; attachrid .@origin; mes @itemname2_info$[0] + callfunc( "getitemname2", .@itemid[.@c], .@identify[.@c], .@refine[.@c], .@broken[.@c], .@card1[.@c], .@card2[.@c], .@card3[.@c], .@card4[.@c] ) +":^000000 "+ .@amount[.@c] +" ea."; attachrid .@aid; .@c++; } } attachrid .@origin; } else { .@nb = query_sql( "select nameid, amount, identify, refine, attribute, card0, card1, card2, card3 from inventory where "+ .query_sql$ +" and char_id = "+ .@cid, .@itemid, .@amount, .@identify, .@refine, .@broken, .@card0, .@card1, .@card2, .@card3 ); for ( .@i = 0; .@i < .@nb; .@i++ ) mes @itemname2_info$[0] + callfunc( "getitemname2", .@itemid[.@i], .@identify[.@i], .@refine[.@i], .@broken[.@i], .@card0[.@i], .@card1[.@i], .@card2[.@i], .@card3[.@i] )+":^000000 "+ .@amount[.@i] +" ea."; } } close; OnInit: query_sql "select dropcardid from mob_db where mexp != 0 and dropcardper = 1", .mvpcard; .mvpcard_size = getarraysize( .mvpcard ); .mvpcard_compare$ = "#"; for ( .@i = 1; .@i < .mvpcard_size; .@i++ ) { .@nameid$ = .@nameid$ +","+ .mvpcard[.@i]; .@card0$ = .@card0$ +","+ .mvpcard[.@i]; .@card1$ = .@card1$ +","+ .mvpcard[.@i]; .@card2$ = .@card2$ +","+ .mvpcard[.@i]; .@card3$ = .@card3$ +","+ .mvpcard[.@i]; .mvpcard_compare$ = .mvpcard_compare$ + .mvpcard[.@i] +"#"; } for ( .@i = 0; .@i < .mvpcard_size; .@i++ ) { } .query_sql$ = "( nameid in ("+ .mvpcard + .@nameid$ +") or card0 in ("+ .mvpcard + .@card0$ +") or card1 in ("+ .mvpcard + .@card1$ +") or card2 in ("+ .mvpcard + .@card2$ +") or card3 in ("+ .mvpcard + .@card3$ +") )"; end; }1 point
-
1 point
-
prt_in,38,107,7 script Meleis 97,{ set .@coinid,7179; mes "[^0000FFMelies^000000]"; mes "Hi ^ff8800"+strcharinfo(0)+"^000000,"; mes "What can i do for you?"; mes "The Exchange ratio is 10:1"; mes "Your RoK Point: [^ff0000"+#ROK_POINTS+"^000000]"; switch(select("Cancel: coins to RoK points:RoK points to Chaos coins")) { case 1: break; case 2: next; mes "[^0000FFMelies^000000]"; mes "Please input the amount of coins that you want to exchange."; mes "Note: Put ^0000ff0^000000 to exit."; L_inpcoin: input @hcoins; set @hhcoins,@hcoins; if(@hhcoins == 0) { break; } if(countitem(.@coinid) < @hhcoins) { mes "* ^ff0000Please input a valid amount^000000"; mes "(Put ^0000ff0^000000 to exit)."; goto L_inpcoin; } next; delitem .@coinid,@hhcoins; set #ROK_POINTS,#ROK_POINTS+@hhcoins; mes "[^0000FFMeleis^000000]"; mes "You've exchanged (^ff0000"+@hhcoins+"^000000) "+getitemname(.@coinid)+"(s). Total RoK Points: [^0000ff"+#ROK_POINTS+"^000000]"; dispbottom "[Meleis] You've exchanged ("+@hhcoins+") "+getitemname(.@coinid)+"(s). Total RoK Points: ["+#ROK_POINTS+"]"; break; case 3: next; mes "[^0000FFMeleis^000000]"; mes "Please input the amount of RoK that you want to exchange."; mes "Note: Put ^0000ff0^000000 to exit."; L_inpcash: input @hcash; set @hhcash,@hcash; if(@hhcash == 0) { break; } if(#ROK_POINTS < @hhcash) { mes "* ^ff0000Please input a valid amount^000000"; mes "(Put ^0000ff0^000000 to exit)."; goto L_inpcash; } //I know they weight 0 but just in case you change its weight if (!checkweight(.@coinid,@hhcash)) { mes "* ^ff0000You're overweight please store some items.^000000"; dispbottom "[Meleis] You're overweight please store some items."; break; } next; set #ROK_POINTS,#ROK_POINTS - @hhcash; getitem .@coinid,@hhcash; mes "[^0000FFMeleis^000000]"; mes "You've exchanged (^ff0000"+@hhcash+"^000000) RoK Points to "+getitemname(.@coinid)+"(s). Total RoK Points: [^0000ff"+#ROK_POINTS+"^000000]"; dispbottom "[Meleis] You've exchanged ("+@hhcash+") RoK Points to "+getitemname(.@coinid)+"(s). Total RoK Points: ["+#ROK_POINTS+"]"; break; } close; OnInit: waitingroom "RoK Exchanger",0; end; } try this script1 point
-
Sample: prontera,156,160,4 script Monster Trainer 757,{ mes "Need monster assistant?"; menu "Yes",-; atcommand "@summon "+.monster+" "+.time; end; OnInit: set .monster,2068; // monster Biotata set .time,5; // Duration in minutes end; }1 point
-
because there was a close outside the bracket. if(Zeny <= 100000){mes "You dont have enough zeny";}close; Just remove it and it should work fine.1 point
-
if(Zeny <= 100000){ mes "You dont have enough zeny"; close; } else{ set Zeny, Zeny-100000; skilleffect 34,0; sc_start SC_BLESSING,500000,10; skilleffect 29,0; sc_start SC_INCREASEAGI,500000,10; skilleffect 33,0; sc_start SC_ANGELUS,500000,10; skilleffect 74,0; sc_start SC_MAGNIFICAT,500000,5; skilleffect 75,0; sc_start SC_GLORIA,500000,5; skilleffect 66,0; sc_start SC_IMPOSITIO,500000,5; skilleffect 361,0; sc_start SC_ASSUMPTIO,500000,5; close; }1 point
-
I made a torrent to help you and to those who do not want to download divided by parts, please to those who download remain of seeds! thank you http://www.mediafire.com/file/qint5z3c0ffps3t/kRO_FullClient_20170411.rar.torrent Doubt: I had heard that they changed izlude and prontera, why in the original data.grf Kro are not these changes? Or have they not yet been activated?1 point
-
Minor issue: Do not provide rsu-*.ini, these are user settings.1 point
-
- script pvp_point -1,{ OnPCKilLEvent: if ( getcharid(3) != killedrid && strcharinfo(3) == "yourmanonamhere" ) { getotem 7227,1; dispbottom "One Tcg card"; } end; }1 point
-
you can use db/<pre_>re/item_noequip.txt Since its show error like this Cant it be like.. give password to the room ? so it wont show the errors on console? XD Put it on OnInit Label so it will not be created over again when the player talk to the npc something like below prontera,163,152,3 script PvP Battle Room#01::pvparena 810,{ goto Talk; OnInit: waitingroom "PVP Room",0; end; Talk: mes "[PvP Battle Room]"; mes "Pilih Ruangan";1 point
-
prontera,163,152,3 script PvP Battle Room#01::pvparena 810,{ waitingroom "PVP Room",0; mes "[PvP Battle Room]"; mes "Pilih Ruangan"; menu "All Class [" + getmapusers("pvp_y_1-2") + "]",pvp1, "Non Donate [" + getmapusers("pvp_n_8-5") + "]",spvp, "Trans Class [" + getmapusers("guild_vs1") + "]",pvp2, "Guild vs Guild [" + getmapusers("guild_vs3") + "]",gvg1, "Novice [" + getmapusers("guild_vs2") + "]",novc; pvp1: warp "pvp_y_1-2",0,0; announce ""+ strcharinfo(0) +" Has Entered The PVP Room.",bc_all; close; gvg1: warp "",0,0; announce ""+ strcharinfo(0) +" Has Entered The GVG Room.",bc_all; close; pvp2: if(Class >= 4008 && Class <= 4021){ warp "guild_vs1",0,0; announce ""+ strcharinfo(0) +" Has Entered The PVP Room Trans Class.",bc_all; close; } mes "Trans Class Only."; close; spvp: if(countitem(20450) > 0 || countitem(32171) > 0 || countitem(32423) > 0 || countitem(32422) > 0 || countitem(32424) > 0 || countitem(32440) > 0 || countitem(32441) > 0 || countitem(32442) > 0 || countitem(32210) > 0 || countitem(32214) > 0 || countitem(32202) > 0) goto donator; warp "pvp_n_8-5",0,0; announce ""+ strcharinfo(0) +" Has Entered The PVP Room Non Donate.",bc_all; close; novc: if (Class != 0) goto nchamp; warp "guild_vs2",0,0; announce ""+ strcharinfo(0) +" Has Entered The PVP Room Novice.",bc_all; close; nchamp: next; mes "[PvP Warper]"; mes "You're not a Novice."; close; donator: mes "You are a donator you are not allowed to this room"; close; } //Mapflag guild_vs1 mapflag pvp guild_vs1 mapflag nocommand 90 pvp_y_1-2 mapflag nocommand 90 guild_vs3 mapflag gvg guild_vs3 mapflag nocommand 90 guild_vs2 mapflag pvp guild_vs2 mapflag nocommand 90 //==================================================================================== ///Duplicates morocc,152,94,0 duplicate(pvparena) PvP Battle Room#2 810 geffen,127,63,0 duplicate(pvparena) PvP Battle Room#3 810 alberta,114,64,0 duplicate(pvparena) PvP Battle Room#5 810 izlude,123,147,0 duplicate(pvparena) PvP Battle Room#6 810 aldebaran,134,113,0 duplicate(pvparena) PvP Battle Room#7 810 xmas,141,127,0 duplicate(pvparena) PvP Battle Room#8 810 comodo,194,158,0 duplicate(pvparena) PvP Battle Room#9 810 yuno,150,184,0 duplicate(pvparena) PvP Battle Room#10 810 amatsu,101,143,0 duplicate(pvparena) PvP Battle Room#11 810 gonryun,152,114,0 duplicate(pvparena) PvP Battle Room#12 810 umbala,126,137,0 duplicate(pvparena) PvP Battle Room#13 810 louyang,214,106,0 duplicate(pvparena) PvP Battle Room#14 810 ayothaya,154,116,0 duplicate(pvparena) PvP Battle Room#15 810 einbroch,68,203,0 duplicate(pvparena) PvP Battle Room#16 810 lighthalzen,150,91,0 duplicate(pvparena) PvP Battle Room#17 810 jawaii,206,208,0 duplicate(pvparena) PvP Battle Room#18 810 hugel,99,161,4 duplicate(pvparena) PvP Battle Room#19 810 rachel,123,142,0 duplicate(pvparena) PvP Battle Room#20 810 veins,211,119,0 duplicate(pvparena) PvP Battle Room#21 810 brasilis,191,185,0 duplicate(pvparena) PvP Battle Room#22 810 dewata,191,185,0 duplicate(pvparena) PvP Battle Room#23 810 dicastes01,199,194,0 duplicate(pvparena) PvP Battle Room#24 810 malangdo,200,149,0 duplicate(pvparena) PvP Battle Room#25 810 malaya,271,364,0 duplicate(pvparena) PvP Battle Room#26 810 mora,121,113,0 duplicate(pvparena) PvP Battle Room#27 810 splendide,191,152,0 duplicate(pvparena) PvP Battle Room#28 810 eclage,277,289,0 duplicate(pvparena) PvP Battle Room#29 810 moscovia,217,193,0 duplicate(pvparena) PvP Battle Room#30 810 louyang,91,245,0 duplicate(pvparena) PvP Battle Room#31 810 moscovia,173,77,0 duplicate(pvparena) PvP Battle Room#32 810 manuk,292,181,0 duplicate(pvparena) PvP Battle Room#33 810 Hi Try this! havent tested it though :))1 point
-
You can use @slaveclone to summon friendly clone, Else you can use mercenary system If you want a monster kill another monster by itself Refer to this link1 point
-
using codec box instead quote makes it look clean when you pasting some code regarding shop there is already five shops enabled within the script - shop qshop1 -1,909:-1 - shop qshop2 -1,909:-1 - shop qshop3 -1,909:-1 - shop qshop4 -1,909:-1 - shop qshop5 -1,909:-1 if you want different npc's use this prontera,155,264,4 script Quest Shop#1 909,{ callfunc "qshop2"; } prontera,155,264,4 script Quest Shop#2 909,{ callfunc "qshop3"; } prontera,155,264,4 script Quest Shop#3 909,{ callfunc "qshop4"; }1 point
-
dispbottom "Your total cash points is "+#ROK_POINTS+"."; Change the #ROKPOINTS to #ROK_POINTS1 point
-
here is command to check your rok points sec_in02,158,179,4 script pointsCheck 620,{ mes "type @points to check points anywhere"; OnPOINTS: dispbottom "Your total cash points is "+#ROKPOINTS+"."; end; OnInit: bindatcmd "points",strnpcinfo(3)+"::OnPOINTS"; end; }1 point
-
rok point shop prontera,155,181,5 pointshop rok Point Shop 757,#ROK_POINT,909:1,607:1 cashshop prontera,155,181,5 cashshop cash Point Shop 757,909:1,607:11 point
-
Yes it is correct for a cashshop :)) but i personally think it's better to use a dynamic shop with #CASHPOINT Currency :))1 point
-
according to doc/script_commands.txt <map name>,<x>,<y>,<facing>%TAB%cashshop%TAB%<NPC Name>%TAB%<sprite id>,<itemid>:<price>{,<itemid>:<price>...} so, yes and remove coma , at the end1 point
-
If the pods vanished from your inventory, that means the pods become ROK Points. I saw from your script you are using npctalk which will make the npc talk publicly about how much Rok Points. Try to replace npctalk with dispbottom so you can check how much rok points you got. prontera,155,181,5 script Sample 757,{ .@pod = countitem(7179); if( .@pod ){ delitem 7179,.@pod; #ROK_POINTS += ( 50 * .@pod ); dispbottom "You gained "+.@pod+" ROK Points. Total : "+#ROK_POINTS+" points."; } end; }1 point
-
@Cyro this one #ROK_POINTS += ( 50 * .@pod ); is the same as set #ROK_POINTS, #ROK_POINTS + (50 * .@pod); The npc doesn't have dialogue though. It just automatically converts pods to rok points when you click it.1 point
-
1 point
-
1 point
-
Yes ! As long as you copy all mob db and item db needed in instance the there would be no error also the map and the instance db came from renewal files .1 point
-
This is caused by instance_db.txt Probably you don't have the RE instance ID on your instance_db.txt so the server cant create the instance and then crash.1 point
-
1 point
-
Some of them can't due to restrictions with required items/mobs that are specific to the RE databases. Not to mention most of the maps aren't available in Pre-RE's mapcache. You do so at your own risk.1 point
-
yes, i think so just add the instance on the instance db and the quest db, and also the script to pre-re npc's :))1 point
-
Video Coming Soon Edit: January 2, 2014 Please pm me for more updated/recently changed about custom item, any update for this guide would be appreciated. Thank you 1st Step: go to: add your sprite for Example: Blood_Helm Blood_Helm 2nd Step: go to data Open idnum2itemdesctable idnum2itemdisplaynametable idnum2itemresnametable 3rd Step: go to This file is for drop 4th Step: goto This sign is for female account, "¿©" put the file here 5th Step: goto This sign is for male account "³²" put the file here 6th Step: go to data\lua files\datainfo Open accessoryid.lua as Notepad Open accname.lua as notepad And now you are done to client side now go to SVN go to svn/db/item_db2.txt Find this line and the 2nd Quote is for example you can add this part to the end of line. The last part of script you will see 1001 this is View ID, that you do earlier in accessoryid.lua Hope this will help you, don't forget to hit green button, Have a good day1 point
-
You mean limit of item carried? cant bring? try emistry script here put it -1 for amount1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point