-
Posts
782 -
Joined
-
Last visited
-
Days Won
5
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Everything posted by Bin4ry
-
@Ziu, I'd like to know how too! Could you please write again in English? Thanks in advance.
-
help add custom costume suit like santa suit/summer suit
Bin4ry replied to dikapramantya's question in Graphics Support
I believe the Akatsuki sprite used by many servers are headgear, you can make it an custome headgear instead. -
Fix Backpack with Crusader animate walking The Official KRO Bug.
Bin4ry replied to boylive's question in Graphics Support
One of many in data\sprite\·Îºê\¸ðÇè°¡¹è³¶\ I couldn't help at this -
Fix Backpack with Crusader animate walking The Official KRO Bug.
Bin4ry replied to boylive's question in Graphics Support
Bad .ACT positioning in kRO, you can edit yourself anyway or maybe you can rename the sprite/act from other job who looks like crusader in height/size -
1. Yes you just have to comment out Renewal features in renewal.h 2. If not mistaken the rAthena currently only have 1 mapcache with all latest map, you'll have to compile your mapcache for preRE maps. (I heard they are in discussion to make seperate mapcache) 3. Yes the skills will turn to PreRE behavior automatically as there are #IF Renewal block checking in every src files. Thanks to the great devs of rA 4. You will have to import PreRE mob db / item db if you are using SQL. If TXT, it will automatically read from PreRE folder instead.
-
/npc/merchant/refine.txt prt_in,63,60,0 script Hollgrehenn 85,{ callfunc "refinemain","Hollgrehenn",0; end; } change to prt_in,63,60,0 script Hollgrehenn 85,{ callfunc "refinemain","Hollgrehenn",1; end; }
-
Latest SVN and only installed [system]_item_bound_v1.1.1.diff and that only adds few line of msg_athena which I think is not the reason. Bump...
-
http://rathena.org/board/topic/70634-rewards-npc-in-game-set/
-
Well now I understand what's your point.
-
You can still use string array. and the way you talk is a lil bit arrogant.
-
Not sure why you need to use the SQL, unless you want to keep a log of those codes. You don't have to reload the NPC everytime because it uses temp var that your GM account input.
-
This maybe? *getcharid(<type>{,"<character name>"}) This function will return a unique ID number of the invoking character, or, if a character name is specified, of that character. Type is the kind of associated ID number required: 0 - Character ID number. 1 - Party ID number. 2 - Guild ID number. 3 - Account ID number. 4 - Battle ground ID For most purposes other than printing it, a number is better to have than a name (people do horrifying things to their character names). If the character is not in a party or not in a guild, the function will return 0 if guild or party number is requested. If a name is specified and the character is not found, 0 is returned. If getcharid(0) returns a zero, the script got called not by a character and doesn't have an attached RID. Note that this will cause the map server to print "player not attached!" error messages, so it is preferred to use "playerattached" to check for the character attached to the script. if( getcharid(2) == 0 ) mes "Only members of a guild are allowed here!";
-
No need of SQL db tho. Just use following elements: // CP input .PromoCode$; mes "Promo code is set to " + .PromoCode$ + "."; set .PromoClaimed,0; close; // Redeem input @PromoCode$; if (@PromoCode$ != .PromoCode$) { mes "Code not exist!"; close; } if (.PromoClaimed == 1) { mes "Code has redeemed by someone else."; close; } getitem <item id>,<quantity>; set .PromoClaimed,1; close;
-
In-game email how could I send zeny with real email lol.
-
As title. This script command will work as *sendmail <mail title>,<writer's name>,<msg body>,<zeny>,<item>{,<extra item info like card 0, card 1>} Wonder why there isn't one in the SVN yet. I know SQL query in script will work too but it required player to re-loggin.
-
When I use @job <empty> When I use @help job (It shows correctly) Here is my atcommand.c's jobchange block: /*========================================== * Changes a character's class *------------------------------------------*/ ACMD_FUNC(jobchange) { //FIXME: redundancy, potentially wrong code, should use job_name() or similar instead of hardcoding the table [ultramage] int job = 0, upper = 0; nullpo_retr(-1, sd); if (!message || !*message || sscanf(message, "%d %d", &job, &upper) < 1) { int i, found = 0; const struct { char name[24]; int id; } jobs[] = { { "novice", 0 }, { "swordman", 1 }, { "swordsman", 1 }, { "magician", 2 }, { "mage", 2 }, { "archer", 3 }, { "acolyte", 4 }, { "merchant", 5 }, { "thief", 6 }, { "knight", 7 }, { "priest", 8 }, { "priestess", 8 }, { "wizard", 9 }, { "blacksmith", 10 }, { "hunter", 11 }, { "assassin", 12 }, { "crusader", 14 }, { "monk", 15 }, { "sage", 16 }, { "rogue", 17 }, { "alchemist", 18 }, { "bard", 19 }, { "dancer", 20 }, { "super novice", 23 }, { "supernovice", 23 }, { "gunslinger", 24 }, { "gunner", 24 }, { "ninja", 25 }, { "novice high", 4001 }, { "high novice", 4001 }, { "swordman high", 4002 }, { "swordsman high", 4002 }, { "magician high", 4003 }, { "mage high", 4003 }, { "archer high", 4004 }, { "acolyte high", 4005 }, { "merchant high", 4006 }, { "thief high", 4007 }, { "lord knight", 4008 }, { "high priest", 4009 }, { "high priestess", 4009 }, { "high wizard", 4010 }, { "whitesmith", 4011 }, { "sniper", 4012 }, { "assassin cross", 4013 }, { "paladin", 4015 }, { "champion", 4016 }, { "professor", 4017 }, { "stalker", 4018 }, { "creator", 4019 }, { "clown", 4020 }, { "gypsy", 4021 }, { "baby novice", 4023 }, { "baby swordman", 4024 }, { "baby swordsman", 4024 }, { "baby magician", 4025 }, { "baby mage", 4025 }, { "baby archer", 4026 }, { "baby acolyte", 4027 }, { "baby merchant", 4028 }, { "baby thief", 4029 }, { "baby knight", 4030 }, { "baby priest", 4031 }, { "baby priestess", 4031 }, { "baby wizard", 4032 }, { "baby blacksmith",4033 }, { "baby hunter", 4034 }, { "baby assassin", 4035 }, { "baby crusader", 4037 }, { "baby monk", 4038 }, { "baby sage", 4039 }, { "baby rogue", 4040 }, { "baby alchemist", 4041 }, { "baby bard", 4042 }, { "baby dancer", 4043 }, { "super baby", 4045 }, { "taekwon", 4046 }, { "taekwon boy", 4046 }, { "taekwon girl", 4046 }, { "star gladiator", 4047 }, { "soul linker", 4049 }, { "gangsi", 4050 }, { "bongun", 4050 }, { "munak", 4050 }, { "death knight", 4051 }, { "dark collector", 4052 }, { "rune knight", 4054 }, { "warlock", 4055 }, { "ranger", 4056 }, { "arch bishop", 4057 }, { "mechanic", 4058 }, { "guillotine", 4059 }, { "rune knight2", 4060 }, { "warlock2", 4061 }, { "ranger2", 4062 }, { "arch bishop2", 4063 }, { "mechanic2", 4064 }, { "guillotine2", 4065 }, { "royal guard", 4066 }, { "sorcerer", 4067 }, { "minstrel", 4068 }, { "wanderer", 4069 }, { "sura", 4070 }, { "genetic", 4071 }, { "shadow chaser", 4072 }, { "royal guard2", 4073 }, { "sorcerer2", 4074 }, { "minstrel2", 4075 }, { "wanderer2", 4076 }, { "sura2", 4077 }, { "genetic2", 4078 }, { "shadow chaser2", 4079 }, { "baby rune", 4096 }, { "baby warlock", 4097 }, { "baby ranger", 4098 }, { "baby bishop", 4099 }, { "baby mechanic", 4100 }, { "baby cross", 4101 }, { "baby guard", 4102 }, { "baby sorcerer", 4103 }, { "baby minstrel", 4104 }, { "baby wanderer", 4105 }, { "baby sura", 4106 }, { "baby genetic", 4107 }, { "baby chaser", 4108 }, { "super novice e", 4190 }, { "super baby e", 4191 }, { "kagerou", 4211 }, { "oboro", 4212 }, }; for (i=0; i < ARRAYLENGTH(jobs); i++) { if (strncmpi(message, jobs[i].name, 16) == 0) { job = jobs[i].id; upper = 0; found = 1; break; } } // TODO: convert this to use atcommand_help_string() if (!found) { int i; for (i = 922; i <= 966; ++i) clif_displaymessage(fd, msg_txt(i)); clif_displaymessage(fd, msg_txt(967)); // ---- Modes And Others ---- clif_displaymessage(fd, msg_txt(968)); // 22 Wedding 26 Christmas 27 Summer 4048 Star Gladiator (Union) return -1; } } if (job == 13 || job == 21 || job == 22 || job == 26 || job == 27 || job == 4014 || job == 4022 || job == 4036 || job == 4044 || job == 4048 || (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2) ) // Deny direct transformation into dummy jobs {clif_displaymessage(fd, "You can not change to this job by command."); return 0;} if (pcdb_checkid(job)) { if (pc_jobchange(sd, job, upper) == 0) clif_displaymessage(fd, msg_txt(12)); // Your job has been changed. else { clif_displaymessage(fd, msg_txt(155)); // You are unable to change your job. return -1; } } else { // TODO: convert this to use atcommand_help_string() int i; for (i = 922; i <= 966; ++i) clif_displaymessage(fd, msg_txt(i)); clif_displaymessage(fd, msg_txt(967)); // ---- Modes And Others ---- clif_displaymessage(fd, msg_txt(968)); // 22 Wedding 26 Christmas 27 Summer 4048 Star Gladiator (Union) return -1; } return 0; } Here is my msg_athena.conf // @jobchange 922: Please enter a job ID. //923-979 free (future jobs?) Edit: Solved. Typing @job <empty> should show failed instead of Job ID in latest SVN.
-
Change Kiel Card itemdb script to: if(!isequipped(4403)) { bonus bDelayRate,-30; } For Expert Ring: if(!isequipped(2703)) { bonus bDelayRate,-5; }
-
because Arrow Vulcan/Shower is considered as BS_WEAPON not BS_MAGIC?
-
+1 for Diff files release.
-
What message shown on chat box and map server batch?
-
[Answered] high asura damage, is this normal?
Bin4ry replied to McNeri's question in Database Support
So it was a bug? -
Hex the client and change 20101126 to 101126 in the input box example?
-
Reins of Mount does increase character ms by default, if not mistaken is 35%. Edit: Was 25%. You can change it in status.c if( pc_isriding(sd) || sd->sc.option&(OPTION_DRAGON|OPTION_MOUNTING) ) val = 25;//Same bonus Changing the speed value will affect rk's dragon speed as well. Or you can move it into an independent else if {
-
It is already showing as a portal sprite. But if you want walk by instead of talking to portal. Use OnTouch label. Change the 2,2, to the range you wanted to toggle OnTouch label. prontera,155,181,5 script Sample 45,2,2,{ end; OnTouch: <script here> }