-
Posts
1307 -
Joined
-
Last visited
-
Days Won
17
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Posts posted by hendra814
-
-
Please help, i want create usable custom item, but i get error like this
here my custom import\item_db.yml
Header: Type: ITEM_DB Version: 3 Body: - Id: 40000 AegisName: Cash_Chest Name: Cash Chest Type: Usable Weight: 1 AliasName: Cash_Box_ Script: | callfunc "F_CashChest";
-
On 3/31/2023 at 12:31 PM, Racaae said:
Use makeitem instead of getitem.
Example:
if (rand(100) < 10) { getunitdata killedgid, .@data; makeitem 45018,1, mapid2name(.@data[UMOB_MAPID]),.@data[UMOB_X],.@data[UMOB_Y], true; }
already tried it but it doesn't drop the item.
Could you show how to put in the script.
Edit: sorry already working, forget to change item reward.
-
18 minutes ago, InfectedX said:
Thank you.
This list is different to the last you shared.
Also the client you shared before has no errors, lol.
I still got problems with this...
Thankyou anyway...here my data and system folder, try use it.
-
Selamat hari Raya Idul Fitri, mohon maaf lahir dan batin buat yang merayakan.
Maaf saya mau tanya, kalau mau convert file official lub file menjadi file yang readable menggunakan tools apa?-
1
-
-
23 minutes ago, InfectedX said:
I just have a question here, I used all the patches you used to diff this client, and I still got errors about luas on RecommendedQuestInfoLoad (yep, I use the kro EN translation...) when I open the client,
Also this:
And it doesn't recognize the ongoing quest lub...
which is really weird... because I followed your list... do you mind helping a bit?
Maybe sharing the log file for nemo?
I would gladly use the patched client you share here, but i'm not happy with the licence screen or service selection... also I would like to have the name of my server on the window title
Regards.
here my patch list and log files, try it.
-
7 hours ago, GarudaRO123 said:
i want to change this auto event to event only start when GM want to start it
this is the script
- script TownInvasion -1,{ OnClock0000: OnClock1130: OnClock1630: OnClock2230: for(.@i = 0; .@i < 1; .@i++) { //Spawn on 4 towns .Town_Invade$ = .Town$[rand(getarraysize(.Town$))]; announce .Town_Invade$+" Guard: Help us! Our town is being invaded by Monster! Please Help us now!",bc_blue|bc_all; sleep 10000; announce .Town_Invade$+" Guard: Help us! Smash their Heads using your Weapon!!!",bc_blue|bc_all; sleep 8000; announce .Town_Invade$+" Guard: Come here!! Bring warrior! Kill these monsters!",bc_blue|bc_all; for(.@ix = 0; .@ix < 30; .@ix++) { //MvP spawner monster .Town_Invade$,0,0,"--ja--",.MvP[rand(getarraysize(.MvP))],1,strnpcinfo(1)+"::OnInvadeDeath"; } for(.@iy = 0; .@iy < 10; .@iy++) { //Mob spawner monster .Town_Invade$,0,0,"--ja--",-1,1,strnpcinfo(1)+"::OnMobsDeath"; } } end; OnInvadeDeath: .@RandMvP = rand(getarraysize(.Prize)); getitem .Prize[.@RandMvP],.PAmt[.@RandMvP]; end; OnMobsDeath: .@RandMob = rand(getarraysize(.Prize2)); getitem .Prize2[.@RandMob],.PAmt2[.@RandMob]; end; OnInit: //Towns to Invade setarray .Town$[0],"prontera","izlude","geffen","payon"; //MvPs to summon setarray .MvP[0],1196,1197,1483,1778; //Prize to give MVP setarray .Prize[0],7929; setarray .PAmt[0],10; //Prize to give Mobs setarray .Prize2[0],7929; setarray .PAmt2[0],10; end; }
please help
thanks a lottry this, minimum GM level to start event 60
- script TownInvasion -1,{ OnClock0000: OnClock1130: OnClock1630: OnClock2230: ONInvasion: for(.@i = 0; .@i < 1; .@i++) { //Spawn on 4 towns .Town_Invade$ = .Town$[rand(getarraysize(.Town$))]; announce .Town_Invade$+" Guard: Help us! Our town is being invaded by Monster! Please Help us now!",bc_blue|bc_all; sleep 10000; announce .Town_Invade$+" Guard: Help us! Smash their Heads using your Weapon!!!",bc_blue|bc_all; sleep 8000; announce .Town_Invade$+" Guard: Come here!! Bring warrior! Kill these monsters!",bc_blue|bc_all; for(.@ix = 0; .@ix < 30; .@ix++) { //MvP spawner monster .Town_Invade$,0,0,"--ja--",.MvP[rand(getarraysize(.MvP))],1,strnpcinfo(1)+"::OnInvadeDeath"; } for(.@iy = 0; .@iy < 10; .@iy++) { //Mob spawner monster .Town_Invade$,0,0,"--ja--",-1,1,strnpcinfo(1)+"::OnMobsDeath"; } } end; OnInvadeDeath: .@RandMvP = rand(getarraysize(.Prize)); getitem .Prize[.@RandMvP],.PAmt[.@RandMvP]; end; OnMobsDeath: .@RandMob = rand(getarraysize(.Prize2)); getitem .Prize2[.@RandMob],.PAmt2[.@RandMob]; end; OnInit: bindatcmd "Invasion_start",strnpcinfo(0)+"::ONInvasion",60,99; //Towns to Invade setarray .Town$[0],"prontera","izlude","geffen","payon"; //MvPs to summon setarray .MvP[0],1196,1197,1483,1778; //Prize to give MVP setarray .Prize[0],7929; setarray .PAmt[0],10; //Prize to give Mobs setarray .Prize2[0],7929; setarray .PAmt2[0],10; end; }
-
Try use file from this link
-
i'm sorry, i'm forget to tell you about that error.
please change 0.05 into 0,05
-
2 hours ago, hikoshijiro said:
Thank you for the reply,
but i still got the error that state: npc_parsesrcfile: Unknown syntax in file 'npc/jobs/banker.txt', line '1'. Stopping...
* w1=prt_in,43,109,4 script Prontera Banker 105,{
* w2=
* w3=
* w4=this is the message at my map server
-
58 minutes ago, hikoshijiro said:
Sorry my bad i didny include it in the code, i already edit it but here's btw
prt_in,43,109,4 script Prontera#Banker 105,{ OnInit: set .maxLoan, 10000000; set .interestRate, 0.05; set .bankName, "Prontera Bank Inc."; set .bankLocation, "Prontera"; addtimer 7200000, strnpcinfo(0) + "::OnAdvertise"; end; OnPCLoginEvent: if (#LOANAMOUNT > 0) { dispbottom "Banker: You have an outstanding loan of " + #LOANAMOUNT + " zeny. Please remember to pay it back with interest."; addtimer 3600000, strnpcinfo(0) + "::OnRemind"; addtimer 86400000, strnpcinfo(0) + "::OnBroadcast"; } end; OnAdvertise: announce "Visit " + .bankName + " located in " + .bankLocation + " for all your banking needs!", bc_all; addtimer 7200000, strnpcinfo(0) + "::OnAdvertise"; end; OnRemind: if (#LOANAMOUNT > 0) { dispbottom "Banker: You have an outstanding loan of " + #LOANAMOUNT + " zeny. Please remember to pay it back with interest."; addtimer 3600000, strnpcinfo(0) + "::OnRemind"; } end; OnBroadcast: if (#LOANAMOUNT > 0) { announce "Player " + strcharinfo(0) + " has failed to repay their loan of " + #LOANAMOUNT + " zeny within 24 hours!", bc_all; addtimer 1800000, strnpcinfo(0) + "::OnBroadcast"; } end; OnTalk: mes "[Banker]"; mes "Hello! I am the banker from " + .bankName + ". How can I help you today?"; next; switch(select("Loan Zeny:Pay Loan:Cancel")) { case 1: if (#LOANAMOUNT > 0) { mes "[Banker]"; mes "You already have an outstanding loan of " + #LOANAMOUNT + " zeny."; close; } mes "[Banker]"; mes "How much zeny would you like to loan? The maximum amount is " + .maxLoan + " zeny."; input .loanAmount; if (.loanAmount > .maxLoan) { mes "[Banker]"; mes "I'm sorry, but the maximum loan amount is " + .maxLoan + " zeny."; close; } #LOANAMOUNT = .loanAmount; Zeny += .loanAmount; mes "[Banker]"; mes "You have successfully loaned " + .loanAmount + " zeny. Please remember to pay it back with interest."; addtimer 3600000, strnpcinfo(0) + "::OnRemind"; addtimer 86400000, strnpcinfo(0) + "::OnBroadcast"; close; case 2: if (#LOANAMOUNT == 0) { mes "[Banker]"; mes "You do not have any outstanding loans."; close; } .paybackAmount = #LOANAMOUNT * (1 + .interestRate); if (Zeny < .paybackAmount) { mes "[Banker]"; mes "You do not have enough zeny to pay back your loan. You need " + .paybackAmount + " zeny."; close; } Zeny -= .paybackAmount; #LOANAMOUNT = 0; mes "[Banker]"; mes "You have successfully paid back your loan with interest. Thank you for your business!"; close; case 3: mes "[Banker]"; mes "Goodbye!"; close; } }
Try this
prt_in,43,109,4 script Prontera Banker 105,{ OnInit: set .maxLoan, 10000000; set .interestRate, 0.05; set .bankName, "Prontera Bank Inc."; set .bankLocation, "Prontera"; addtimer 7200000, strnpcinfo(0) + "::OnAdvertise"; end; OnPCLoginEvent: if (#LOANAMOUNT > 0) { dispbottom "Banker: You have an outstanding loan of " + #LOANAMOUNT + " zeny. Please remember to pay it back with interest."; addtimer 3600000, strnpcinfo(0) + "::OnRemind"; addtimer 86400000, strnpcinfo(0) + "::OnBroadcast"; } end; OnAdvertise: announce "Visit " + .bankName + " located in " + .bankLocation + " for all your banking needs!", bc_all; addtimer 7200000, strnpcinfo(0) + "::OnAdvertise"; end; OnRemind: if (#LOANAMOUNT > 0) { dispbottom "Banker: You have an outstanding loan of " + #LOANAMOUNT + " zeny. Please remember to pay it back with interest."; addtimer 3600000, strnpcinfo(0) + "::OnRemind"; } end; OnBroadcast: if (#LOANAMOUNT > 0) { announce "Player " + strcharinfo(0) + " has failed to repay their loan of " + #LOANAMOUNT + " zeny within 24 hours!", bc_all; addtimer 1800000, strnpcinfo(0) + "::OnBroadcast"; } end; OnTalk: mes "[Banker]"; mes "Hello! I am the banker from " + .bankName + ". How can I help you today?"; next; switch(select("Loan Zeny:Pay Loan:Cancel")) { case 1: if (#LOANAMOUNT > 0) { mes "[Banker]"; mes "You already have an outstanding loan of " + #LOANAMOUNT + " zeny."; close; } mes "[Banker]"; mes "How much zeny would you like to loan? The maximum amount is " + .maxLoan + " zeny."; input .loanAmount; if (.loanAmount > .maxLoan) { mes "[Banker]"; mes "I'm sorry, but the maximum loan amount is " + .maxLoan + " zeny."; close; } #LOANAMOUNT = .loanAmount; Zeny += .loanAmount; mes "[Banker]"; mes "You have successfully loaned " + .loanAmount + " zeny. Please remember to pay it back with interest."; addtimer 3600000, strnpcinfo(0) + "::OnRemind"; addtimer 86400000, strnpcinfo(0) + "::OnBroadcast"; close; case 2: if (#LOANAMOUNT == 0) { mes "[Banker]"; mes "You do not have any outstanding loans."; close; } .paybackAmount = #LOANAMOUNT * (1 + .interestRate); if (Zeny < .paybackAmount) { mes "[Banker]"; mes "You do not have enough zeny to pay back your loan. You need " + .paybackAmount + " zeny."; close; } Zeny -= .paybackAmount; #LOANAMOUNT = 0; mes "[Banker]"; mes "You have successfully paid back your loan with interest. Thank you for your business!"; close; case 3: mes "[Banker]"; mes "Goodbye!"; close; } }
-
On 4/6/2023 at 3:59 AM, Tokei said:
Heya,
It took me a while to figure out what you were trying to do. You're trying to edit the client aura effect using the NEMO/WARP patch for more aura options, instead of creating custom hat effects from the guide. That's why you don't see a STR file in your folder. Those are two completely different features and you can't really mix them. Now I can't help you if you're going with the first option since those effects are read directly by the client and therefore do not have STR files. You also can't edit them at all besides changing the BMP file.
The guide you're following provided you with a zip in step 4 which contains what you actually need for making custom hat effects (not auras).
So assuming you've followed the previous steps in the guide, and you defined your new hat effect as this...
HAT_EF_Angelic_Aura = 181 //... [HatEFID.HAT_EF_Angelic_Aura] = { resourceFileName = "effect\\angelic_aura\\angelic_aura.str", hatEffectPos = -6, hatEffectPosX = 0, isIgnoreRiding = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }
You now have two methods when creating a new hat effect: change the textures or customize it. If you're only going to change the textures, which is what most people end up doing, then it's fairly easy. Duplicate the aura from the example in step 4, then overwrite the textures with your own and that's pretty much it.
If you want to do more edits and more "fancy" stuff with your auras, then here's an example below:
- Open an existing STR file (arcana_aura.str, from your guide's example).
- Do whatever changes you want in the STR. I'm adding a second layer that I duplicated and then used a random texture I found somewhere.
- Save the file to wherever you want, as long as it matches with your resourceFileName.
- (I'm ignoring the particle effect on top that they're showing you in the guide, that part is up to you.)
Thank you @Tokei for the guide.
-
1
-
1 hour ago, Shark28 said:
Hey people, I've been developing my server for almost 2 years now and have developed some scripts and instances. I've also written a story for my server and entered it into the server. I want to put the server online by 1.5 or 1.6. how can i promote the server that players want to play on it and recommend it to others. Regards shark
you can try post at ratemyserver.net or post at facebook
-
14 hours ago, Tokei said:
Well, auras are str files to begin with, no? You could open an existing aura, change the textures to your files, and save it again for a quick custom aura.
Can you guide me how to do that?
i try open custom aura files but not showing the files.
Note: i want create custome hat effect like in this post https://rathena.org/board/topic/132752-guide-add-new-hateffect-aura-style/#comment-413006
-
3 minutes ago, mrgeiszer said:
yes but the other monster is using the player sprite is it possible? tia
Don't know how to change it into player sprite
-
31 minutes ago, mrgeiszer said:
anyone can share or help me if this is possible, if there's a script for this? TIA
Are you mean monster vs monster npc?
-
2 hours ago, GarudaRO123 said:
so im using this NPC
but it seems that when i use lord knight with the rune knight costume
it doesn't show the dragon. but the character still in the status of riding a peco peco
any way to fix?
thanks//===== rAthena Script ======================================= //= Dress Room //===== Description ========================================== //= Dress room NPC that allows players to disguise as another //= class in their classline. //===== By: ================================================== //= Secret's Scripting Service //===== Changelog: =========================================== //= 1.0 Initial version. [Secret] //===== License: ============================================= // Copyright 2018 Jittapan P. // // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), //= to deal in the Software without restriction, including without limitation the rights to use, //= copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, //= and to permit persons to whom the Software is furnished to do so, subject to the following conditions: //= //= The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. //= //= THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //= EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, //= FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //= IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, //= DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, //= TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. //============================================================ morocc,167,95,4 script Dress Room#sc 2_M_DYEINGER,{ function RestrictClass; function HasjROCostume; function ChangeAppr; function RestrictClass { .@eaj = eaclass(); if(.@eaj&EAJ_BASEMASK == EAJ_NOVICE) return 0; if(.@eaj&EAJL_2 && roclass(.@eaj|EAJL_UPPER) != -1){ return 1; } return 0; } function HasjROCostume { switch(roclass(eaclass()&EAJ_UPPERMASK|EAJL_THIRD)) { case Job_Guillotine_Cross: case Job_Genetic: case Job_Royal_Guard: case Job_Arch_Bishop: case Job_Mechanic: case Job_Ranger: case Job_Minstrel: case Job_Wanderer: case Job_Warlock: // Uncomment lines below to enable certain job when their respective jRO costume is released and you patched the sprite in your client. //case Job_Sorcerer: //case Job_Sura: //case Job_Rune_Knight: return 1; default: return 0; } } function ChangeAppr { if(Zeny < .cost_dressroom) { mes .n$; mes "You don't have enough Zeny."; close; } switch(getarg(1)){ case 0: // Normal Mode setlook LOOK_BODY2,0; changebase getarg(0); set baselook, getarg(0); break; case 1: // jRO Mode if(!HasjROCostume()) return; changebase roclass(eaclass()|EAJL_THIRD); setlook LOOK_CLOTHES_COLOR,0; setlook LOOK_BODY2,!(getlook(LOOK_BODY2)); //atcommand "@bodystyle " + !(getlook(LOOK_BODY2)); baselook = 0; break; } Zeny -= .cost_dressroom; mes .n$; mes "Here you are!"; close; } .@TYPE_CHANGEBASE = 0; .@TYPE_SETLOOK = 1; mes .n$; if(!RestrictClass()){ mes "Your class isn't allowed to use this NPC."; close; } mes "I can change your appearance to another class of your classline at a cost of ^FF0000" + callfunc("F_InsertComma",.cost_dressroom) + "^000000z!"; if(HasjROCostume()){ mes "I also have a brand new costume for your class!"; } mes "Which class do you want to change your appearance to?"; next; switch(select(jobname(roclass(eaclass()&EAJ_UPPERMASK)),jobname(roclass(eaclass()&EAJ_UPPERMASK|EAJL_UPPER)),jobname(roclass(eaclass()|EAJL_THIRD)),HasjROCostume() ? getlook(LOOK_BODY2) ? "Restore costume" : "New jRO costume" : "")) { case 1: ChangeAppr(roclass(eaclass()&EAJ_UPPERMASK),.@TYPE_CHANGEBASE); break; case 2: ChangeAppr(roclass(eaclass()&EAJ_UPPERMASK|EAJL_UPPER),.@TYPE_CHANGEBASE); break; case 3: ChangeAppr(roclass(eaclass()|EAJL_THIRD),.@TYPE_CHANGEBASE); break; case 4: ChangeAppr(0,.@TYPE_SETLOOK); break; } close; OnPCLoginEvent: if(baselook && .dress_perma){ changebase baselook; } end; OnInit: .n$ = "[Dress Room]"; // NPC Name .cost_dressroom = 10000; // Cost .dress_perma = 1; }
I think you miss the sprite rune knight riding, try add this files into your GRF file if your client read grf file.
-
34 minutes ago, Racaae said:
Hi, Find this line:
mes "Only for character with level 99 and above";
Change to:
else mes "Only for character with level 99 and above";
Thanks it's working now
- script atcmd_noitem -1,{ OnInit: bindatcmd("getitem",strnpcinfo(3)+"::OnAtcommand"); setarray .item_restrict,7227,607; end; OnAtcommand: if (baselevel >= 99){ .@itemid = atoi(.@atcmd_parameters$[0]); if(!getgmlevel()){ if(inarray(.item_restrict,.@itemid) != -1){ message strcharinfo(0),"You cannot create this item."; end; } } if(getitemname(.@itemid) != "null"){ .@quantity = atoi( .@atcmd_parameters$[1] ); if ( .@quantity < 1 ) .@quantity = 1; getitem .@itemid,.@quantity; } } else mes "Only for character with level 99 and above"; end; }
it's so powerful command, can by pass for create any item for non GM user.
change into @getitem command, but using @item still can create any items
-
please check using referal this post
https://rathena.org/board/topic/132750-quest-list-npc-dialogue-in-2021-client/#comment-412710
-
Sorry i didn't test the script, i will inform you later when i'm back home.
Edit: already test the script, it's weird can't run as requested,
don't know where the problem, maybe need someone to fix it.
baselevel more than 99 and below 99 always show the same result.
-
On 4/1/2023 at 2:59 AM, Tokei said:
Hmm, which software was used to create these?
The integer for the frame count is written in plain text with "Fram". That looks like a bug when saving the file. I can't really retrieve that value perfectly, but I can guess it while loading the file and make an estimate.
__
Updated to 1.0.8:
- Fixed the issue above.
- Added Flip Horizontal/Vertical transformations.
- Added a new button "Group Edit" to modify multiple frames at the same time. The available transformations for Group Edit are translation, rotation and flip.
Hi, i want ask you a question, is it posible change custom aura (tga and bmp file) into str file
-
12 hours ago, ProjectX said:
- script atcmd_noitem -1,{ OnInit: bindatcmd("item",strnpcinfo(3)+"::OnAtcommand",0,99); setarray .item_restrict,7227,607; end; OnAtcommand: .@itemid = atoi(.@atcmd_parameters$[0]); if(!getgmlevel()){ if(inarray(.item_restrict,.@itemid) != -1){ message strcharinfo(0),"You cannot create this item."; end; } } if(getitemname(.@itemid) != "null"){ .@quantity = atoi( .@atcmd_parameters$[1] ); if ( .@quantity < 1 ) .@quantity = 1; getitem .@itemid,.@quantity; } end; }
HELLO TO SCRIPTER. I WOULD LIKE TO REQUEST . IF THE PLAYERS IS LVL 99 HE CAN USE THIS COMMAND. AND IF THE PLAYER 99 BELOW HE CANT USE THIS COMMAND.
THANK YOU .
try this
- script atcmd_noitem -1,{ OnInit: bindatcmd("item",strnpcinfo(3)+"::OnAtcommand"); setarray .item_restrict,7227,607; end; OnAtcommand: if (baselevel >= 99){ .@itemid = atoi(.@atcmd_parameters$[0]); if(!getgmlevel()){ if(inarray(.item_restrict,.@itemid) != -1){ message strcharinfo(0),"You cannot create this item."; end; } } if(getitemname(.@itemid) != "null"){ .@quantity = atoi( .@atcmd_parameters$[1] ); if ( .@quantity < 1 ) .@quantity = 1; getitem .@itemid,.@quantity; } } mes "Only for character with level 99 and above"; end; }
-
-
7 minutes ago, cafe3908 said:
I'm a beginner, I don't understand too much knowledge.
Search for relevant knowledge on the Internet, and learn step by step slowly.
So, I'm sorry, I don't understand what you said
I am using Taiwan client and rathena
import the files (check at the link i give) from your ragnarok folder into your sql server
https://github.com/rathena/rathena/tree/master/sql-files/upgrades
-
2 hours ago, markiez22 said:
try import file at your flux folder\data\schemas\charmapdb\cp_commands.20160608065501.sql
if you don't have it you can trry download from this link
-
1
-
Need help create custom usable item
in Database Support
Posted · Edited by hendra814
thanks,, but still have issue
** Already solve by remove