-
Posts
155 -
Joined
-
Last visited
-
Days Won
7
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by _Terra
-
You need clone Sonic Blow Skill to make it unstoppable while you attack with Injustice Card.
-
How to use SC_CLOAKING in a Char without the Cloaking Skill
_Terra replied to Syon's question in Scripting Support
In what escenario want you have cloaking? While in battle or depending on some situation? If you want cloaking while in battle you should see doc/script_commands.txt and search *autobonus -
Hello, you can download all necessary files to make client work: https://github.com/llchrisll/ROenglishRE
-
Does anyone know where to find this sprite?
_Terra replied to -Kazuki-'s question in General Support
No problem ^^ -
Does anyone know where to find this sprite?
_Terra replied to -Kazuki-'s question in General Support
Download latest kro client: https://ro.industrial-illusions.net/files/ Download latest RO lite patcher: http://nn.ai4rei.net/dev/rsu/ After you update your data.grf open with GRF Editor and search "BELKA" and tadaaa! Or you can download here ?: Belka.7z -
On the latest git you can add min-max number value for each bonus. You can find in db/re/item_randomopt_group.yml so if you put random on Scarlet Katar you only need add RandomOptionGroup: Group_1 below its drops
-
I just add freeloop(1); and freeloop(0) before and after on .@counter = 0 part.
-
Add double attack chance to raid and backstab skill.
_Terra replied to iraciz's question in Source Support
Tested and works fine, not sure if is the right condition but works. Go to src/map/skill.cpp and go to line: case ABC_FRENZY_SHOT: if (rnd()%100 < 4 * skill_lv)// Need official autocast chance. [Rytech] skill_addtimerskill(src, tick + dmg.amotion, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, 2); break; and add below: case RG_BACKSTAP: case RG_RAID: if( pc_checkskill(sd,TF_DOUBLE) > 0 && rnd()%100 < ( skill_lv < 10 ? 5 + skill_lv * 5 : 55 ) ) skill_addtimerskill(src, tick + dmg.amotion, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag|2); break; 2022-07-23 16-35-06.mp4 -
Unequipping the weapon is not removing the Enchantment from the weapon
_Terra replied to Tdi123's question in General Support
If i understand Weapon element doesn't gone when you change or unequip your weapon right? well... go to db/(pre-re or re if your server is pre-renewal or renewal)/status.yml Search: - Status: Windweapon and add a flag called RemoveOnUnequipWeapon: true So it would be like this: - Status: Windweapon Icon: EFST_PROPERTYWIND DurationLookup: SA_LIGHTNINGLOADER CalcFlags: Atk_Ele: true Flags: NoRemoveOnDead: true RemoveOnUnequipWeapon: true End: Encpoison: true Aspersio: true Fireweapon: true Waterweapon: true Earthweapon: true Shadowweapon: true Ghostweapon: true Search every element as you want and add the same flag. -
chry_fld,144,48,5 script Gatcha Vending 562,{ mes "[Gatcha Ticket Vending]"; mes "Use your Gatcha Ticket here."; next; switch(select("- Use:- See possibility:- Exit")) { case 1: if ( !countitem(.itemuse) ) { mes "[Gatcha Ticket Vending]"; mes "A "+ getitemname(.itemuse) +" is needed to use this machine"; close; } delitem .itemuse, 1; getitem .temp_array[rand(0, getarraysize(.temp_array))], 1; end; case 2: next; mes "[Gatcha Ticket Vending]"; mes "Select possibility."; switch(select("- High Chance:- Mid Chance:- Low Chance:- Exit")){ case 1: next; mes "[Gatcha Ticket Vending]"; mes F_MesItemInfo(14003); mes F_MesItemInfo(40021); mes F_MesItemInfo(40028); mes F_MesItemInfo(40026); end; case 2: next; mes "[Gatcha Ticket Vending]"; mes F_MesItemInfo(40030); mes F_MesItemInfo(40031); mes F_MesItemInfo(40039); mes F_MesItemInfo(40040); end; case 3: mes "[Gatcha Ticket Vending]"; mes F_MesItemInfo(40001); mes F_MesItemInfo(40033); mes F_MesItemInfo(40035); mes F_MesItemInfo(40041); mes F_MesItemInfo(40042); end; case 4: next; mes "[Gatcha Ticket Vending]"; mes "Good Bye."; close; } } OnInit: waitingroom "Gatcha Pot",0,0; .itemuse = 40022; setarray .itemid[0], 14003,40021,40028,40026,40030,40031,40039,40040,40001,40033,40035,40041,40042; setarray .itemchance[0], 90,90,90,90,70,70,70,70,10,10,10,10,10; freeloop(1); .@counter = 0; for(.@i = 0; .@i < getarraysize(.itemid); .@i++) { for(.@k = 0; .@k < .itemchance[.@i]; .@k++) { .temp_array[.@counter] = .itemid[.@i]; .@counter++; } } freeloop(0); end; }
-
HP over 21m is not visible but you still have 50m. Its only visual thing
-
Impossible until gravity create 64bits client, i really don't know if they made XD
-
It's client limitation because RO Exe are on 32bits so 32bits its max number value is 2,147,483,647
-
Your server is pre-renewal or renewal? because that formula is renewal so you need to scroll a little bit lower to find: // Flee stat = status->flee; stat += level + status->agi; status->flee = cap_value(stat, 1, SHRT_MAX); and add / 10 in stat += level + status->agi; // Flee stat = status->flee; stat += level + status->agi/10; status->flee = cap_value(stat, 1, SHRT_MAX); Tested only on pre-renewal
-
Item_db - False positive for not meeting equipment requirements
_Terra replied to nickyb's question in Database Support
Can you test with a default config? - Id: 2208 AegisName: Ribbon Name: Ribbon Type: Armor Buy: 800 Weight: 100 Defense: 1 Locations: Head_Top: true ArmorLevel: 1 Refineable: true View: 17 Script: | bonus bMdef,3; - Id: 2209 AegisName: Ribbon_ Name: Ribbon Type: Armor Buy: 800 Weight: 100 Defense: 1 Slots: 1 Locations: Head_Top: true ArmorLevel: 1 Refineable: true View: 17 Script: | bonus bMdef,3; -
Item_db - False positive for not meeting equipment requirements
_Terra replied to nickyb's question in Database Support
-
Item_db - False positive for not meeting equipment requirements
_Terra replied to nickyb's question in Database Support
Which rathena version are you using? i tested and works fine (i'm using a 1 week ago rathena version). -
Need help with <ITEM>idname<INFO>id#</INFO></ITEM> script pls thanks
_Terra replied to BabaVoss's question in Script Requests
I searched for a possible solution and i got no luck. Its a client issue i recommend test with 2017 client. Source: https://github.com/rathena/rathena/issues/1873 -
Need help with <ITEM>idname<INFO>id#</INFO></ITEM> script pls thanks
_Terra replied to BabaVoss's question in Script Requests
Uhmm for me looks normal, have you tried put only one line for test item display? Which client date are you using? Edit: https://github.com/rathena/rathena/issues/1236 -
Need help with <ITEM>idname<INFO>id#</INFO></ITEM> script pls thanks
_Terra replied to BabaVoss's question in Script Requests
-
Command to recall npc script did not work
_Terra replied to Dolphin86's question in Scripting Support
- script Crafter_Command -1,{ OnInit: bindatcmd "craft","Crafter_Command::OnCraftCommand"; // What Item you want to Make ? set .GiveItem,7539; // Item Requirements + Amounts setarray .Item[0],607,1,608,1,512,1; end; OnCrafterMenu: OnCraftCommand: mes "^00c000Master Craft^000000"; mes "Please select which would you like to craft"; next; switch(select("- Weapon:- Armor:- Headgear:- Accessories:- Shield:- Garment:- Footgear:- Usable Item:- Exit")) { case 1: mes "^00c000Master Craft^000000"; mes "Please select which would you like to craft"; next; switch(select("- Dagger:- 1 Hand Swords:- 2 Hand Swords:- 1 Hand Spear:- 2 Hand Spear:- 1 Hand Axe:- 2 Hand Axe:- Mace:- 1 Hand Staff:- 2 Hand Staff:- Bow:- Knuckle:- Musical Weapons:- Whip:- Book:- Katar:- Revolver:- Rifle:- Gatling Gun:- Shot Gun:- Grenade Luncher:- Shuriken:- Exit")) { case 1: mes "^00c000Master Craft^000000"; mes "Just give me the required items and ill give you Coin of Ymir."; mes "Required Mats per ^FF0000"+getitemname(.GiveItem)+"^000000:"; for( set .@i,0; .@i < getarraysize( .Item ) - 1; set .@i,.@i + 2 ) mes "- ^FF0000"+.Item[.@i+1]+" "+getitemname(.Item[.@i]); next; if( select("Make ^FF0000"+getitemname( .GiveItem )+"^000000:Cancel") == 2 ) end; mes "[Ymir Coin Exchanger]"; mes "How many would you like to make?"; next; input .@amount,1,999; mes "[Ymir Coin Exchanger]"; mes .@amount+"x ^FF0000"+getitemname(.GiveItem)+"^000000, is this correct?"; next; if( select("Yes, Make ^FF0000"+.@amount+" "+getitemname( .GiveItem )+"^000000:Cancel") == 2 ) end; for( set .@i,0; .@i < getarraysize( .Item ) - 1; set .@i,.@i + 2 ) if( countitem( .Item[.@i] ) < .Item[.@i+1]*.@amount ){ mes "[Ymir Coin Exchanger]"; mes "Insufficient Materials"; for( set .@i,0; .@i < getarraysize( .Item ) - 1; set .@i,.@i + 2 ) mes "- Need ( "+countitem(.Item[.@i])+"/"+.Item[.@i + 1]*.@amount+" ) "+getitemname( .Item[.@i] ); end; } if(!checkweight(.GiveItem,.@amount)){ mes "Insufficient inventory space or weight."; end; } for( set .@i,0; .@i < getarraysize( .Item ) - 1; set .@i,.@i + 2 ) delitem .Item[ .@i ],.Item[ .@i + 1 ]*.@amount; getitem .GiveItem,.@amount; mes "[Ymir Coin Exchanger]"; mes "You have Made ^FF0000"+.@amount+"x "+getitemname( .GiveItem )+"^000000"; announce "["+strcharinfo(0)+"] has made "+.@amount+"x ["+getitemname( .GiveItem )+"]",0; close; case 2: mes "^00c000Master Craft^000000"; mes "1 Hand Swords"; end; case 3: mes "^00c000Master Craft^000000"; mes "2 Hand Swords"; end; case 4: mes "^00c000Master Craft^000000"; mes "1 Hand Spear"; end; case 5: mes "^00c000Master Craft^000000"; mes "2 Hand Spear"; end; case 6: mes "^00c000Master Craft^000000"; mes "1 Hand Axe"; end; case 7: mes "^00c000Master Craft^000000"; mes "2 Hand Axe"; end; case 8: mes "^00c000Master Craft^000000"; mes "Mace"; end; case 9: mes "^00c000Master Craft^000000"; mes "1 Hand Staff"; case 10: mes "^00c000Master Craft^000000"; mes "2 Hand Staff"; end; case 11: mes "^00c000Master Craft^000000"; mes "Bow"; end; case 12: mes "^00c000Master Craft^000000"; mes "Knuckle"; end; case 13: mes "^00c000Master Craft^000000"; mes "Musical Weapons"; end; case 14: mes "^00c000Master Craft^000000"; mes "Whip"; end; case 15: mes "^00c000Master Craft^000000"; mes "Book"; end; case 16: mes "^00c000Master Craft^000000"; mes "Katar"; end; case 17: mes "^00c000Master Craft^000000"; mes "Revolver"; end; case 18: mes "^00c000Master Craft^000000"; mes "Rifle"; end; case 19: mes "^00c000Master Craft^000000"; mes "Gatling Gun"; end; case 20: mes "^00c000Master Craft^000000"; mes "Shot Gun"; end; case 21: mes "^00c000Master Craft^000000"; mes "Grenade Luncher"; end; case 22: mes "^00c000Master Craft^000000"; mes "Shuriken"; end; case 23: mes "^00c000Master Craft^000000"; mes "Good Bye"; close; } case 2: warp "payon",165,59; // Change this warp coordinates end; case 3: warp "morocc",160,85; // Change this warp coordinates end; case 4: warp "geffen",119,67; // Change this warp coordinates end; case 5: warp "alberta",117,57; // Change this warp coordinates end; case 6: warp "aldebaran",141,114; // Change this warp coordinates end; case 7: warp "comodo",196,143; // Change this warp coordinates end; case 8: warp "izlude",127,107; // Change this warp coordinates end; case 9: mes "[Rohayu]"; mes "Well if you need warp just come look for me"; mes "Good Bye"; close; } } function script call_crafter { doevent "Crafter_Command::OnCrafterMenu"; end; } neko_isle,77,127,4 script Crafter 826,{ callfunc "call_crafter"; } I'm not expert at scripting but i made it work. Tested and works fine. When i type @craft When i talk to npc: -
You need create 'emblem' folder in your ragnarok folder
-
Como bloquear la camara de un mapa (como en abbey!)
_Terra replied to kittynamy's topic in Spanish General
También si quieres modificar el ángulo a tu gusto puedes editar viewpointtable.txt -
Go to src/map/battle.cpp and search if (def1 > 100) def1 = 100;
-
You can add a quest variable when you kill 50 porings: new_1-3,100,35,4 script Newbie Guide 418,{ mes "==^741188Equipment Guide^000000=="; mes "Hello welcome to our server,"; mes "i am here to guide all new"; mes "player that have joined our server"; mes "to craft your starting gear"; next; switch(select("- Tell me more:- Craft Beginner Equipment:- Exit")) { case 1: mes "==^741188Equipment Guide^000000=="; mes "As you may or my not knowing"; mes "that equipment will not drop by"; mes "monster, but player can still"; mes "obtain offical equipment from"; mes "merchat class equipment crafting"; mes "or from offical quest"; next; mes "==^741188Equipment Guide^000000=="; mes "This server does not follow"; mes "offical equipment drop"; mes "but each server custom "; mes "equipment will have it's own"; mes "speciality"; end; case 2: mes "==^741188Equipment Guide^000000=="; mes "To craft your starting gear"; mes "which is Beginner Dagger"; mes "firstly i will need you to"; mes "hunt 50 poring, i will reward"; mes "you with 1 Common Blue Print"; mes "Common Blue Print are use to craft"; mes "Common equipment"; next; menu "Take this quest",Acc,"No Thanks",Den; Acc: if(dagger) { mes "You already have this hunting quest."; close; } mes "==^741188Equipment Guide^000000=="; mes "Now please help me hunt 50 poring"; set dagger, 1; end; Den: mes "==^741188Equipment Guide^000000=="; mes "Sure just come back to me when you change your mind"; end; case 3: mes "==^741188Equipment Guide^000000=="; mes "Very well, come to me if you need guide"; close; } end; OnNPCKillEvent: if(!dagger) end; if(killedrid == .mob_id) { poring_count++; dispbottom "You have killed "+poring_count+"/"+.kill_amount+"] "+getmonsterinfo(.mob_id, MOB_NAME)+"."; } if(poring_count >= .kill_amount) { poring_count = 0; for(.@i = 0; .@i < getarraysize(.reward); .@i += 2) { getitem .reward[.@i],.reward[.@i+1]; set dagger_quest2, 1; } } end; OnInit: setarray .reward,501,1,502,1; // add rewards here .mob_id = 1002; // monster id .kill_amount = 50; // amount of porings needed end; } //Second Quest new_1-3,100,37,4 script Newbie Guide 2 418,{ if ( dagger_quest2 == 0 ) { mes "==^741188Equipment Guide 2^000000=="; mes "You have to 'Kill 50 Porings' and then come back to me."; close; } mes "==^741188Equipment Guide 2^000000=="; mes "Hey you made it!"; close; }