-
Posts
55 -
Joined
-
Last visited
About Jesky
- Birthday June 26
Profile Information
-
Gender
Male
-
Location
Indonesia
-
Server
iRO
- Github: fransjesky
- Discord: Sinclair#11212
Recent Profile Visitors
3427 profile views
Jesky's Achievements
-
[Showcase] Prontera Full HD 8K / Morroc HD / Other Final
Jesky replied to ittiphol's topic in Maps & 3D Modeling Showcase
Well, i love the prontera map in the video. May i get it from you? or could you maybe lemme know where can i get it as it seems it is neither in rathena or hercules -
I'm agree with @Chaos92 To fix it, you need to understand on how to use the tools provided by Chris which came together in the same folder when you clone or download the repo. Here is the docs: https://llchrisll.github.io/ROTPDocs/ All you have to do is just spend about 30 mins watching the tutorial from Chris himself on how to use the tools and then it would make your life easier for the rest of development process. Also make sure the client you use is the one rathena supports.
-
VIP STATUS ICON ERROR (status_change_start: Invalid status change (1500)!)
Jesky replied to funtwocrasher's question in General Support
Ok, i solved this. First of all, just follow the guide from @funtwocrasher on the first page. The only difference is, i used id of 2001 instead of 1500. Once you followed the guide step-by-step, you need to add your custom status in db\status.yml and put it on the latest status like below: - Status: VIPSTATE Icon: EFST_VIPSTATE Flags: NoDispell: true NoBanishingBuster: true Note: If there is nothing in your status.yml, you have to add it like this: Body: - Status: VIPSTATE Icon: EFST_VIPSTATE Flags: NoDispell: true NoBanishingBuster: true That is what caused the error log on the console - status_change_start: Invalid status change (1500)!. Now, recompile your server. Once you've done, you are supposed to be able to use sc_start SC_VIPSTATE now. However, you might notice the timer and the actual timer for the VIP is not in sync. To solve this problem, i created a custom function which you can call from your item or npc: function script vip_system { set .@time, getarg(0); // retrieve the time (in seconds) from index 0 of the argument set .@current_time, vip_status(3); // get the actual vip remaining time set .@renew_time, .@time + .@current_time; dispbottom "Welcome to the VIP club!"; atcommand "@vip +" + .@time + "s " + strcharinfo(0) + ""; if (!vip_status(1)) { sc_start SC_VIPSTATE,.@time * 1000,0; dispbottom "You are now a VIP member!"; } else { sc_start SC_VIPSTATE,.@renew_time * 1000,0; dispbottom "You have succesfully extends your VIP membership."; } } To use the function, simply call it like this: Script: | callfunc "vip_system",30; But using this function alone is not enough, you need to create another npc to detect and update the buff icon timer whenever the user logged in to resync the timer: - script VipStatus -1,{ OnPCLoginEvent: set .@current_time, vip_status(3); sc_end EFST_VIPSTATE; sc_start SC_VIPSTATE,.@current_time * 1000,0; end; } Voila! It is done. Some common issues: 1. If somehow, using sc_start still does not show the buff status icon, you can use the same thing that @Louis T Steinhil mentioned before: // replace every sc_start SC_VIPSTATE with this one bonus_script "{}",.@time,0,0,EFST_VIPSTATE2; // replace every sc_end EFST_VIPSTATE with this one bonus_script_clear 1; docs regarding this can be found here: https://raw.githubusercontent.com/rathena/rathena/master/doc/script_commands.txt 2. I haven't tested the timer if the timer exceed a few weeks. 3. This is a known issues since early days of rAthena and also at Hercules. Once the VIP ends, it does not really end directly. You need to wait a couple of minutes before it completely expires or if the user re-login. There is nothing that i can do to solve this. More info regarding this issue can be found in Hercules forum: https://board.herc.ws/topic/250-official-vip-system/ 4. If somehow your custom status icon does not appear. Try to do double check on your client config. More info regarding this can be learned from here: -
it is because on that script, it is using EFST_VIPSTATE which is a custom variable and because you do not define it on your server, it is showing endure status and icon as a default fallback. you have to define yours on your own server and client (adding custom status icon as well). take a look at this as reference: here is another guide if you are using old rathena:
-
Pre-renewal server with renewal defense system.
Jesky replied to GiftBox's question in Source Support
Hey, no problem, i've seen similiar issue like this and it's also happened to me before. I'm on pre-renewal server as well but just want to take costumes from renewal database. I spent almost a week just to import, edit the item_db_equip and fix every item description. It took a lot of time and dedication, but believe me, just like i said before, it's more cleaner and easier to debug if there is any error because of the sprite, effect, script, etc for example. Personally, i think this is the only way to do it right, so yes, my best suggestion is to change the equip manually one by one. I'm sorry that i can't help much but i hope you could solve it somehow, if you did, please share it here how. Goodluck! -
Pre-renewal server with renewal defense system.
Jesky replied to GiftBox's question in Source Support
Hi again, sorry for late reply was working. // Max armor def/mdef // NOTE: This setting have no effect if server is run on Renewal Mode (RENEWAL) // NOTE: does not affects skills and status effects like Mental Strength // If weapon_defense_type is non-zero, it won't apply to max def. // If magic_defense_type is non-zero, it won't apply to max mdef. max_def: 500 // Def to Def2 conversion bonus. If the armor def/mdef exceeds max_def, // the remaining is converted to vit def/int mdef using this multiplier // (eg: if set to 10, every armor point above the max becomes 10 vit defense points) over_def_bonus: 1 I've tried this one and it was working flawlessly on my server, all i did was exactly same; change the max_def to 500 from 99, change the over_def_bonus to 1 from 0 and change cotton shirt def from 1 to 200 (it's shown 100 + 28, i think this is happened because the calculation from my server, not sure tho but at least it's not minus and i can exceed max 99 def). Then in game, i reload the itemdb using `@reload itemdb` and also reload the conf using `@reload battleconf`. It's not a good idea to directly change the formula, for example if you change the formula for def, you might need to change the def gained for refine from pre-re stats to renewal stats as well for example and so on, it would be like a domino effect. But if you are on pre-renewal server and wants to use the renewal system, why don't you just change your server to renewal? Edit: After tested it a few times, i noticed that even if i change the max_def to any values greater than 99, it would always show 100 def at max even when im not using the over_def_bonus (over_def_bonus: 0). Not sure if recompile will do but im too tired waiting for my server to recompile, so i haven't try it. -
Pre-renewal server with renewal defense system.
Jesky replied to GiftBox's question in Source Support
I'm not sure if this would work but you can try to change the source code in /src/config/const.h find this code: #ifdef RENEWAL typedef short defType; #define DEFTYPE_MIN SHRT_MIN #define DEFTYPE_MAX SHRT_MAX #else typedef signed char defType; #define DEFTYPE_MIN CHAR_MIN #define DEFTYPE_MAX CHAR_MAX #endif change it to this one #ifdef RENEWAL typedef signed char defType; #define DEFTYPE_MIN CHAR_MIN #define DEFTYPE_MAX CHAR_MAX #else typedef signed char defType; #define DEFTYPE_MIN CHAR_MIN #define DEFTYPE_MAX CHAR_MAX #endif basically it just ignore the conditional statement and think of it as a pre-renewal mode, don't forget to recompile your server after changed the codes. if you want to change the server to renewal again or if it doesn't work, simply just revert it. I hope it works. As for the item description, if the item is already available from pre-renewal, i think you can just use the pre-renewal iteminfo.lua and overwrite it to your current iteminfo in your client/System folder. -
First add the npc here and call the function for the fourth shop or just simply call the function for fourth shop with this command 'callfunc "qshop", 4;' if your npc is in difference file. // ADD YOUR NPC HERE //============================================================ prontera,180,213,4 script Quest Worker 556,{ callfunc "qshop",1; } prontera,184,209,4 script Event Ticket Shop 112,{ callfunc "qshop",2; } new_1-1,155,111,5 script Costume Shop 555,{ callfunc "qshop",3; } // add the npc for the fourth shop prontera,182,211,4 script Fourth NPC 556,{ callfunc "qshop",4; } Make sure you already add the duplicate NPC data for the fourth shop with the name qshop4: - shop qshop4 -1,909:-1; Then add the shop into the array setarray .Shops$[1], "Hat Maker", // Shop Named 1 "Weapons", // Shop Named 2 "Other"; // Shop Named 3 "Fourth Shop"; Last step, use the add function to add the items to the shop // Fourth Shop Add(4,501,1,0,0); Make sure the first index on add function is the number referring to the shop number you want to use. For ex: Add(1,501,1,0,0); to open the first shop, Add(2,501,1,0,0); to open the second shop and so on...
-
Pre-renewal server with renewal defense system.
Jesky replied to GiftBox's question in Source Support
I don't see there is any other way except changing it manually one by one for each item you copied from renewal item_db. I'm not sure even if disabling the renewal system from /src/config/renewal.h will change the defense on each renewal equips. Same thing goes for the item description. I've experienced similiar thing like this before where i want to use some renewal items, the only solution i came up with was duplicate the item from renewal item_db, put it on import/item_db and then create the item description for those items one by one. It took a lot of time but it'll be cleaner for your db, good to prevent bugs/error and easier to debug in the future. -
ups sorry, i forgot add " on set variable.. try this, hope this time the script will work well.. prontera,150,150,6 script Sign 50,{ mes "Do you want to enter this room?"; menu "Enter",L_enter,"Cancel",L_cancel; L_enter: if (getmapusers("poring_c02") >= 1) goto Lfull; mes "Please input your name"; next; input .@name$; set .@aid, getcharid(3, .@name$); if ( !.@aid ) { if ( !query_sql("select account_id, from `char` where name = '"+ escape_sql(.@name$) +"'", .@aid) ) { mes "Sorry, but your name is not exist"; close; } } else { set .@name$, rid2name( .@aid ); } warp "poring_c02",0,0; end; L_cancel: end; Lfull: next; mes .@name$ +" has already inside the room."; next; mes "Please wait until this person get out from this room."; next; end; OnInit: while( 1 ){ delwaitingroom; waitingroom "Player : "+getmapusers("poring_c02")+"",0; sleep 1000; } end; }
-
try this, i'm not test this script yet yourmap,x,y,facing script Sign 50,{ if (getmapusers(yourmap)==1)goto Full; mes "Do you want to enter this room?"; menu "Enter",enter,"Cancel",cancel; enter: set @name, +strcharinfo(0); warp "yourdestinationmap",0,0; end; cancel: end; Full: next; mes "Sorry, the room is on used by "+@name+" right now"; next; mes "Please wait until the person get out from this room."; next; end; OnInit: while( 1 ){ delwaitingroom; waitingroom "Miner(s) : "+getmapusers("yourmap")+"",0; sleep 1000; } end; }
-
Ah yah, Annie was right, i just tweak it by adding atcommand "@option 8", +strcharinfo(0); (make character in white imprisson status). i will use the script that Annie tweak, thank you so much for helping me again edit: i found other way to bypass it is by waiting for berserk/frenzy buff gone.
-
i already modify the script it self, the player can't walk, speak, use skill, attack, etc... so how it can be abused? maybe i can tweak again
-
But, it will removed when the player relogin isn't?
-
of course, you can't change the item type from item_db by script (from my knowledge). so the npc is just exchange your equipment with costume item based on item_db... that's why the cards, refine, enchant, etc will gone...