Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/19/21 in all areas

  1. NPC and MVP for Ragnarok Online RE4 Merchant (npc) and Nemesis (mvp) from Resident Evil "Hello Strange" hahahha .. well ... it was funny
    2 points
  2. View File Battleground Extended 2020 ! With Bomberman/Poring Ball Mystic Project is about to open its last opus. For the occasion, Mystic Project has decided to make a gift to the community of rAthena and release one of its contents ! We've chosen the Battleground Extended, a memorable feature created by the eAmod and adapted for the new version of rAthena 2020. What are Battleground Extended ? They are an upgrade of the official Battleground made by the eAmod years ago and enhanced overtime. Battleground guide Name Description Flavius Same as official. The Goal is to destroy each's crystal. Flavius Capture The Flag The objective of the Flavius Battle CTF is to score 3 points before your enemy, by capture their Flag. To capture a Flag you need to take the enemy flag, and bring it to your base flag. If your base flag is captured too, you need to kill the flag carrier and take the flag back to your base. Flavius Death Match Each team has a certain number, Kill all the enemy players to let their Team without points. Protect your army. Flavius Stone Control Take the Stones in the middle of the battlefield and put in on your base, in the Stone Points. Each Stone will give points to your team. First team reach 99 points wins the game. Protect your stones from to be captured by the enemy. Tierra Eye of Storm There are two bases, North and South which teams can capture by holding position on the Base more than the other team. Each base will give you points each 5 seconds of Domination. If your Team control both bases the amount of points increases. To get additional points, in the middle there is a Flag spawn, capture it and put it on any of your team Bases. The first Team reach 99 points wins the match. Tierra Bossnia Attack the enemy base and destroy each MVP Guardian. To do damage to the guardian your team must capture the Balance Flag in the middle base. Each team have 5 guardian to be protected or killed. Tierra Domination There are three bases, North, Center and South which teams can capture by holding position on the Base more than the other team. Each base will give you points each 5 seconds of Domination. The first Team reach 99 points wins the match. Krieger Von Midgard (KVM) Same as official, regular PVP. Double Inferno There are 2 teams in the battlefield, your team and the opposite enemies. Kill the enemy players, collect the skulls and bring them to the Sacrifice Totem to win points. You can collect your own team skulls and bring then to your Sacrifice Totem to avoid other teams to score but it won't count as points. If you get killed all your skulls will be drop to the floor, including your own skull. First Team to get 80 points wins the battle. Conquest If you are Attacking, destroy the enemy defenses and it's Flag. If you are Defending, protect your castle defenses and the Flag. Rush Fight to capture the Castle and organize your team to defend it. If you fail on the first capture, kill the defender and take it for your team. Poring Ball It is a soccer game, a poring (the ball) will be in the middle of the field. The match lasts 5min. The team that has the most goals win the game. Super Bomberman The classic game specially made in Ragnarok Online. The goal is to defeat the enemies by putting bombs that will explode on them. It is a 2vs2 version of the game. Peco Peco Racer Coming soon... Mario Kart - RO version : New Battleground Queue System Battleground Commands @joinbg will warp you only to the battleground room. (Use interface UI Battleground to join any running BG or create one) @leavebg will warp you out of the the current battleground you're in. @listenbg display or not the battleground explanations. @order is only for the leader, an huge announce will be displayed to the team. @reportafk is only for the leader, expulsing someone who is AFK. @bginfo will display all curent running BGs + amount of players + scores for each team and remaining time of the BG Battleground Skills @bgskill is used by the leader. I left it there as a memory but you better use the guild interface alt + g -> guild skill tree The leader can use the following skills: - Emergency Recall: Warp everyone from the team to the leader. - Battle Orders: All guild members visible on the guild leader screen will receive +5 STR, DEX, INT. (Now having a status icon on the right) - Regeneration: All guild members visible on the guild leader screen will increase their HP and SP regen rate. (Now having a status icon on the right) - Restore: All guild members visible on the guild leader screen will have their HP and SP restored to 90% of the respective maximum. - Chargeshout Flag: The leader will summon a guild flag. - Chargeshout Beating: Anyone in the guild can use this skill, it will warp to the guild flag IF you are on the same map as the flag. - Emergency Move: All guild members visible on the guild leader screen will receive the effect of speed potion, increasing walking speed by 25%. Kill Count Each person killed on a battlefield will be counted in your guild information. This is like a rank. In bg_common.txt, you will find this. If you already use OnPCKillEvent, I recommend you to remove this code and add it to yours. Red / Blue Teams Upon your arrival on the battlefield, you are going to see yourself in a clan (alt + g) and a guild (ctrl + g). Blue Team : http://mysticprojectro.com/wiki/images/d/d1/Clan_emblem01.jpg Red Team : http://mysticprojectro.com/wiki/images/a/a9/Clan_emblem02.jpg Each team-mate will have this emblem by their character's name. Enemies will be displaying the opposite emblem. Some battlefields will change your cloth dye as well for the attributed color but don't worry, you will get yours back as soon as the game is over. You can communicate with your team through the guild chat. When you leave the battlefield, the clan will be removed and you will be back in your actual guild. Battleground Happy Hours Battleground happy hours happen everyday from 4pm to 8pm during which, rewards obtained are increased by 60%. (Configurable in npc/battleground/bg_common.txt) Battleground Rewards Telma/Erundek NPCs from the official battleground are there to exchange Consumables / Stuff. However, some of you rather customize the rewards. It's up to you to remove Telma/Erundek. If you want to customize Rewards, here is a frame (located in bg_common.txt) made to buy stuff directly with badges. Poring Ball Youtube Video Demonstration : Ragnarok Online - DaRO : BattleGround Extended + - YouTube The original Poring Ball Map was created by us 14 years ago. (On the left). At the time, we had poor experience in mapping so my apologies if you don't find it attractive. However, you can always purchase the beautiful rework done by Olrox (on the right): https://olroxgraphics.com/index.php?/store/product/107-soccer-stadium/ Depending on which map you will pick, you need to configurate the Poring Ball. I assume you already have Olrox's map so by default, it is this configuration. If you want the free map that is included in this pack, you need to comment /* */ Olrox Poring Ball Map and remove the comment of Grenat Poring Ball Map (See orange sign) Bomberman Video Demonstration : Super Bomberman Ragnarok Online YouTube Video I've read a lot of times people asking about it ! We are releasing the new Bomberman Battleground Version with 3 bomberman maps (two of them are made by us) In bg_bomberman.txt, you will find this code. Make sure to remove it and add it to your OnPCStatCalcEvent, otherwise just leave it there. Some newer rAthena version doesn't have OnPCStatCalcEvent anymore, you may need to reinstall it. Installation : In this package, you will find : - BattlegroundExtended.diff : You will need to apply this patch. (cmd -> cd rathena -> git apply BattlegroundExtended.diff ) It has been created in 2020 and work with the latest rAthena. (Possibly working on previous version from 2018+). - NPC folder: I strongly recommend to delete all BG NPCs and only install the ones that are in this folder. It is compatible with the new BG Queue Systeme. Please review Poring Ball.txt to configurate your poring ball as well as bg_common for the happy hour rate. - DB: I did put items in txt and yml files since I don't know which version you guys are using. DO NOT copy paste in your db folder. Only take what's inside each files. - Client: Contains items/maps/texture/files/lua (for the new BG queue system)/bomberman music etc... Extract the contents inside your RO client folder. This patch modifies a lot of files, you may need to install the diff manually depending on your rAthena version. Once installed, please recompile your map_cache with the client data installed in the directory/grf the server reads to compile it. Configuration : Your server might be different than ours. This is why, it is important to configurate well the system. conf/battle/battleground.conf -> Search for battleground eAmod and configure them. db/battleground.xml -> "Color" represents the clothes palette given upon arrival on the battlefield. The player's Palette will come back to the original one when the BG is over. If you don't want players to have different cloth color, just put 0 or do not put anything at all. In our server, Color : 6 is blue, and 22 is red. Therefore, this is our configuration. I let you configure yours. Additional New Script Commands : * getnpcinfo <type>{,<char_id>} type: NPC_X: X, NPC_Y: Y * setporingball; (When activated, it would be like an OnClickedCell, almost ;), it calls a script for the poring ball (Or other things if you want to add things there). * getporingballx() / getporingbally(); (Get coordination of a clicked cell) * removeporingball; (Remove poring ball mode (Clickable cell calling a script) * getunitdir <unit_id/account_id>; (Get direction the unit is looking) * ispcsit <account_id> (Get information if a pc is sit or not) * unitpush <unit_id/account_id>,<dir>,<cells>; (Push (knockback) a specific target in a specific direction) * areaeffect( effect id, x, y); Any Questions ? You can contact me on Discord: Grenat#5220 for support regarding the installation. Support post : Release: Battleground Extended 2020 ! With Bomberman/Poring Ball - Source Releases - rAthena Team Mystic Project. Submitter grenat50 Submitted 02/04/2021 Category Source Modifications Video Content Author Grenat
    1 point
  3. they are being save under src/map/script_constants.hpp now
    1 point
  4. Updated to 4.0.0, this major release contains a refreshed UI, completely reworked GRF engine, native 64-bit builds and other, far too many under-the-hood changes and bug fixes to mention them all, see included doc/history.txt for details.
    1 point
  5. Well, if you want to this only using scripts, it's gonna be tricky... you can perhaps replace the "broken" weapon with a different item, for example Damaged Weapon, and save the original weapon's data as a character array or in SQL, and then allow the players to trade the broken weapon with their original item. If your problem is only with @repairall, adding this one line in Atcommand.cpp will make the command ignore +10 equipment or higher ACMD_FUNC(repairall) { int count, i; nullpo_retr(-1, sd); count = 0; for (i = 0; i < MAX_INVENTORY; i++) { if(sd->inventory.u.items_inventory[i].refine >= 10) continue; // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Add this line if (sd->inventory.u.items_inventory[i].nameid && sd->inventory.u.items_inventory[i].card[0] != CARD0_PET && sd->inventory.u.items_inventory[i].attribute == 1) { sd->inventory.u.items_inventory[i].attribute = 0; clif_produceeffect(sd, 0, sd->inventory.u.items_inventory[i].nameid); count++; } } if (count > 0) { clif_misceffect(&sd->bl, 3); clif_equiplist(sd); clif_displaymessage(fd, msg_txt(sd,107)); // All items have been repaired. } else { clif_displaymessage(fd, msg_txt(sd,108)); // No item need to be repaired. return -1; } return 0; }
    1 point
  6. you forgot to end the OnInit event just add end; below `bindatcmd "guide", strnpcinfo(3) +"::Onguide";`
    1 point
  7. What it does Allows you to have two files in your System folder; One for the standard RO item descriptions, and one for your custom items. It is useful in the same way that item_db2.txt contains your custom files while the standard RO files are in item_db.txt. How to implement it Step 1. Create your secondary file in your System folder. In my example below, it uses iteminfo.au.lub. Step 2. Using an updated NEMO Client patcher, hex your client such that it uses the Load Custom lua file instead of iteminfo.lub patch. Step 3. On your iteminfo.au.lub, use the following format as a template: dofile("System/iteminfo.lub") tbl_custom = { [30001] = { unidentifiedDisplayName = "Old Red Box", unidentifiedResourceName = "빨간상자", unidentifiedDescriptionName = { }, identifiedDisplayName = "Old Red Box", identifiedResourceName = "빨간상자", identifiedDescriptionName = { "A box that glows with a mysterious, red color. If you open it, something good may be inside.", "^FFFFFF_^000000", "Weight:^009900 20^000000" }, slotCount = 0, ClassNum = 0, costume = false }, } -- Now for a helper function because i hate repetitions -- It adds items from curTable if it is not present in refTable function itemAdder(curTable, refTable) for ItemID,DESC in pairs(curTable) do if refTable == nil or refTable[ItemID] == nil then result, msg = AddItem(ItemID,DESC.unidentifiedDisplayName,DESC.unidentifiedResourceName,DESC.identifiedDisplayName,DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum) if not result then return false, msg end for k,v in pairs(DESC.unidentifiedDescriptionName) do result, msg = AddItemUnidentifiedDesc(ItemID, v) if not result then return false, msg end end for k,v in pairs(DESC.identifiedDescriptionName) do result, msg = AddItemIdentifiedDesc(ItemID, v) if not result then return false, msg end end end end return true, "good" end -- And the newly designed main function function main() result, msg = itemAdder(tbl_custom, nil) -- add custom items (including official overrides) if result then result, msg = itemAdder(tbl, tbl_custom) -- add non-overridden official items end return result, msg end Explanation 1. It first executes the file found in System/iteminfo.lub, which allows you to load the standard RO files. 2. Then, you define tbl_custom, which is your custom items and their definitions. 3. The itemAdder function is used to prioritize information from tbl_custom over the standard tbl of items. 4. The main function is re-designed to do facilitate this behavior. Reminders When editing your iteminfo.lub, make sure that you save the file using the EUC-KR encoding and NOT UTF-8, or else your client will not be able to understand the resource names. Supposedly, if you only use Notepad++ you would not encounter any problems with such. However, I use Visual Studio Code and it annoyingly opens my file using UTF-8 encoding. I hope that was a much more clear explanation of how to do this. If anything is unclear or incorrect, please inform me so I can edit my post.
    1 point
  8. prontera,155,180,5 script Random 98,{ mes .npc_name$; mes "Hello, do you want to play ?"; next; if( select( "Play !", "More Informations", "Leave" ) == 3 ) { mes .npc_name$; mes "Bye!~"; close; } else if( @menu == 2 ) { while( getd(".p"+ .@j ) ) { mes .npc_name$; mes "Item required: ^FFCC00"+ getitemname( getd(".p"+ .@j ) ) +"^000000"; mes "Chance to gain something: ^CC0000"+ getd(".p"+ .@j +"[1]" ) +"%^000000"; mes "Possible gains:"; for( .@i = 3; .@i < getarraysize( getd(".p"+ .@j ) ); .@i += 3 ) mes "^0000FFx"+ getd(".p"+ .@j +"["+ .@i +"]" ) +"^000000 "+ getitemname( getd(".p"+ .@j +"["+ (.@i -1) +"]" ) ) +" (^CC0000"+ getd(".p"+ .@j +"["+ (.@i +1) +"]" ) +"%^000000)"; .@j++; next; } } mes .npc_name$; mes "Which item do you want to use ?"; next; for( .@j = 0; getd(".p"+ .@j ); .@j++ ) if( countitem( getd(".p"+ .@j ) ) ) { .@size = getarraysize( .@menu$ ); .@menu$[ .@size ] = getitemname( getd(".p"+ .@j ) ); .@sel[ .@size ] = .@j; } .@s = .@sel[ select( implode( .@menu$, ":" ) ) -1 ]; mes .npc_name$; while (1) { mes "Here we go..."; delitem getd(".p"+ .@s ), 1; if( rand(100) > getd(".p"+ .@s +"[1]" ) )// lose mes "You got nothing"; else { .@rand = rand( getd(".totalchance"+ .@s ) ); .@r = 1; while ( ( .@rand = .@rand - getd( ".p"+ .@s +"["+ (1+ 3 * .@r) +"]" ) ) >= 0 ) .@r++; getitem getd( ".p"+ .@s +"["+ (1+ 3*.@r -2) +"]" ), getd( ".p"+ .@s +"["+( 1+3*.@r -1 )+"]" ); mes "You got ^FF00CC"+ getd( ".p"+ .@s +"["+( 1+3*.@r -1 )+"]" ) +" "+ getitemname( getd( ".p"+ .@s +"["+ (1+ 3*.@r -2) +"]" ) ) +"^000000"; } mes " "; mes "wanna try again ?"; next; if ( select( "Yes", "No" ) == 2 ) close; mes .npc_name$; if ( countitem( getd(".p"+ .@s ) ) < 1 ) { mes "it seems you have ran out of "+ getitemname( getd(".p"+ .@s ) ); close; } } close; OnInit: // (item ID need) (chance), (reward 1) (number of reward 1) (chance to gain), (reward 2) (number of reward 2) (chance to gain)... setarray .p0, 671,50, 2462,1,20, 1161,1,30, 5394,1,50; // gold coin setarray .p1, 7227,20, 2462,1,10, 2541,1,10, 1161,1,10, 13517,1,70; while ( getd(".p"+ .@j ) ) { for( .@i = 4; .@i < getarraysize( getd(".p"+ .@j ) ); .@i += 3 ) setd ".totalchance"+ .@j, getd(".totalchance"+ .@j ) + getd(".p"+ .@j +"["+ .@i +"]" ); .@j++; } .npc_name$ = "[ "+ strnpcinfo(1) +"]"; end; } This option is set here // (item ID need) (chance), (reward 1) (number of reward 1) (chance to gain), (reward 2) (number of reward 2) (chance to gain)... setarray .p0, 671,50, 2462,1,20, 1161,1,30, 5394,1,50; // gold coin setarray .p1, 7227,20, 2462,1,10, 2541,1,10, 1161,1,10, 13517,1,70; You can add more reward or add an other list following the typo I wrote
    1 point
×
×
  • Create New...