Jump to content

Source Modifications

Source Mods & Code Snippets located here.

135 files

  1. Free

    MF_NORECALL (Custom Mapflag)

    MF_NORECALL a custom mapflag that restrict players being recalled via @recall / @recallall command when in special maps.

    In response to:

    52 downloads

    Updated

  2. Free

    Hide announcements/broadcasts command @blockbc

    Hi,

    This is a response from this post : 
     
    Requirements:
    Basic knowledge how to apply diff on your server files. How to use the command:
    @blockbc <param>.
    Parameters:
    PARTY - block incoming broadcasts from party. GUILD - block incoming broadcasts from guild. BG - block incoming broadcasts from battleground. CLAN - block incoming broadcasts from clan. MAP - block all incoming broadcasts from the current map. ALL - block all incoming broadcasts. @unblockbc. - as per the command name suggest
    Disclaimer:
    This is tested on latest server files as of the day it was posted. May or may not work on older server files. Keeping this up-to-date or vice-versa won't be my responsibility. Compatibility is your responsibility. Use at your own risk.

    222 downloads

    Submitted

  3. Free

    Prevent hitting mobs near NPC or Warper

    Hi, 
    It's been a while since I posted anything.. As of now, I want to release this simple src mod that prevents players from hitting MVPs near an NPC/Warper. Purpose of this is to discourage players from going near warpers while hunting MVPs.

    I'm not sure how helpful this be but I just want to do something small for a while .

    I will be lurking around the request section to see some good ideas and might be releasing them here after!

    Cheers!

    115 downloads

    Updated

  4. Free

    @whosell with item link

    Since the new updates no longer include the command, its a modification of the old code created by zephyrus_cr, with the addition of the specific item link.

    321 downloads

    Updated

  5. Free

    Broadcast commands with global sound effect

    This is a very simple and little source mod, it consists on the ability to send a sound effect to every player on the server every time you use @brodcast or @localbroadcast or @kami or @kamic or /b
    ? Attention ?
    If you have the Fixed some packets for 2022 clients (#7276) commit on your rAthena, then use broadcastWithSoundEffectLatestRathena.diff, otherwise use the broadcastWithSoundEffectOldRathena.diff 
    Apply the diff and put the .wav file on your data folder/grf
    Command to diff on terminal: git apply --3way broadcastWithSoundEffectLatestRathena.diff
     
    Preview Video: https://cdn.lewd.host/yIVy2fAF.mp4

    441 downloads

    Updated

  6. Free

    Refine UI [ Announce ]

    if player upgrade item success [ refine ui ] The system will announce the message.

    can be configured in the file conf/battle/athenastudio.conf

    540 downloads

    Updated

  7. Free

    MvP's Tombs with top 3 damage players

    The mvps tombs include the top 3 players with damage.
    tomb_damage.diff

    355 downloads

    Submitted

  8. Free

    [Mapflag] droprate

    It's updated to current emulators.
     
    Original mod by @Xantara
     
     

    150 downloads

    Submitted

  9. Free

    Mob Item Adder

    This mapflag sets more drops for monsters at the map that it's been attached.
    You can set up to ~50 more items for mobs.
    "drop_per" is the chance of drop, from 1 (0,01%) to 10000 (100%).
    There's an example at the screenshot, I setted a Yggdrasil Berry with 100% of chance for the Poring at prt_fild08 map.
    You can set a lot of mobs, but you have to set more mapflags for your maps.
    Original mod by @zephyr 
    Example:
    mapname<TAB>mapflag<TAB>mobitemadder<TAB>mob_id,item_id,drop_per{,item_id,drop_per(...)}

    154 downloads

    Submitted

  10. Free

    PVP on MVP Maps

    When a MVP Spawns PVP is enabled, When this MVP dies PVP is disabled.
    New Mapflag MF_MAPMVP - Disable going to savepoint once you die 2 times in a PVP map.

    403 downloads

    Submitted

  11. Free

    Unimplemented Official Skills

    After the success of our previous release Battleground Extended , Mystic Project has decided to release another work for free in the community of rAthena - The Gravity's Unimplemented Official Skills. We've long heard about them since the beginning. I've seen posts of people wondering if there was any releases of them. It took a while but here it is. We did some researches about what was intended by Gravity. I think we came close to the initial project with a few modifications.
     
    What are the Unimplemented Official Skills ?
    Unimplemented Official Skills are skills designed by Gravity long ago that have never been released. They were forgotten / dropped by Gravity.
    On iRO official wiki, you can see some informations about them. For example: Fire Ivy - iRO Wiki Classic
     
    Forgotten Skills List and Effect:
     Fire Ivy: Wizard has plenty of fire skills, as it was supposed to be an immobile skill that causes damage, we've renamed it to Wind Ivy and made it Wind. It can stop the target and does damage each second. Can be stackable up to 5.
           Class: Wizard  Fury: The LK enters a Fury Phase. Each attack received increases LK's ATK by 1 each 500 damage (up to 5). Some damage are being absorbed and reduced depending of current maxhp.
           Class: Lord Knight  Steal Backpack: Steal 1 stuff / item of Players directly in the inventory. Item is sent to the storage and the Stalker will have it as a rental for 5 minutes. If used on monsters, does a AOE Steal/Steal Coin
           Class: Stalker  System Creation: Auto-Attack system of Whitesmith was designed to summon small devices to attack targets. There are ATK/MATK devices depending on level. Iron is required to make the device.
           Class: Whitesmith  Synthesis Potion: Creates a rental potion that lasts 5 min for the whole party around the Creator if items requirements met. It costs 3 misc items to create a potion. Amount of players in the party increases the amount of items required. Those items are healing potions (heal over 10 seconds), ATK/MATK/Flee/Hit potions.
           Class: Creator  Ragnarok: Ensemble Skill done by a bard and a dancer together. It causes damage in the area, as well as abnormal statuses. Allies receive buffs. Buffs and abnormal statuses are random each second. (similar to gospel)
           Class: Bard/Dancer  Hallucination Walk: Summons a clone of self and cloak the SinX. If used while being cloaked: uncloaked the SinX and causes Hallucination in an area.
           Class: Assassin Cross  Biotechnology: Passive skill. Increases chance to create an embryo and MaxHP of Homunculus by 2% per level.
           Class: Alchemist  Drill Master: Passive skill. Increases damage of homunculus by 2% per level.
           Class: Alchemist  Heal Homunculus: Same as Potion Pitcher lv 4 but targets directly the homunculus by using it without having to click on the homunculus.
           Class: Alchemist  Flame Control: Alchemist inflicts damage linked to the homunculus based on homunculus's ATK and MATK. Chances to inflict a common status depending on homunculus type.
           Class: Alchemist  Twilight Alchemy IV: Creates 200 blue potions if all requirements are met.  
    Bonus - Extra Custom Skills:
     Earth Wall: Same as Ice Wall but it is indestructible and one cell only. 5 instances maximum.
           Class: Wizard  Earthquake: Adapted version of Earthquake for Wizard. Part of ATK and MATK are defining damage.
           Class: Wizard  
    Installation and Compatibility:
    I did put some instructions in the read me file regarding the installation.
    The diff is compatible with the latest rathena but it is easy to adapt to any version really.
     
    Any Questions ?
    You can contact me on Discord: Grenat#5220 for support regarding the installation.
     

    427 downloads

    Updated

  12. Free

    MvP and Mini-Boss Card Ad & Log System

    Addition/Modification at Source - Announcement and Log system when dropping MvP/Mini-Boss Card 
        -    Advertises globally when dropping a MvP or Mini-Boss Card regardless of the drop_rate and saves a log in the database.
        NOTE1: Announces and saves the log of MvP/Mini-Boss cards only.
        NOTE2: All settings can be accessed in the `conf/battle/drops.conf` file.
    Use
        -    For those who have difficulty placing just to announce the drop of MvP/Mini-Boss cards without having a conflict of drop_rate.
        -    In addition to advertising, you can also save a log each time one of these cards is dropped to use as tracking.
        -    There is also an extensive way of configuring the system, being able to turn it off completely or activate only the advertisement or only the log.
    General System Settings
        -    Enable or disable the entire system.
    MvP Card Settings
        -    Enable or disable MvP card drop and log announcement system only.
        -    Enable or disable MvP card advertising only.
        -    Enable or disable MvP card logging only.
        -    Choose the color of the MvP card drop ad.
    Mini-Boss Card Settings
        -    Enable or disable only the Mini-Boss card drop and log announcement system.
        -    Enable or disable Mini-Boss card advertising only.
        -    Enable or disable Mini-Boss card logging only.
        -    Choose the color of the Mini-Boss card drop announcement.

    NOTE3: Sorry for the English, I used Google Translator and this is my first topic here.

    588 downloads

    Submitted

  13. Free

    [Script Command] getskillname

    getskillname
    Useful script command to return a skill name (Skill Description).
    Usage
    Example
    mes "Skill Name: "+getskillname("SM_SWORD"); print ("Skill Name: Sword Mastery")  
    ________________________________________________
    Feel free to Donate If you want to support me.

    ________________________________________________

    497 downloads

    Submitted

  14. Free

    OnPCAttackEvent

    This event triggers when a player character attacks another entity. And it registers the damage and other information about the attack.
    Example usage:
    // @damage holds the amount of damage dealt. // @damagegid holds the GID of the target (account ID if the target is a player). // @damagerid holds the rid of the mob OnPCAttackEvent: dispbottom "You've dealt "+@damage+" to target with GID "+@damagegid+" and RID "+@damagerid;  

    385 downloads

    Updated

  15. Free

    costume enchant

    it enchant every slot in your costume
    selectable slot to enchant and reset
    consume 10 silvervine fruit.
    feel free to modify as you like
    //= 1st slot ( class stone lv1) ==============================
    //= 2nd slot ( class stone lv2) ==============================
    //= 3rd slot ( costume stone ) ===============================
    //= 4th slot ( effect stone ) ================================

    503 downloads

    Submitted

  16. Free

    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.

    2317 downloads

    Updated

  17. Free

    Charm item (New Code Source)

    I took a modified version of the original and fixed it for the current version of rathena 2020+, I saw that there were a lot of people asking for it, so I decided to post my diff, the project is not mine nor the code, I just fixed it for the new emulator.

    795 downloads

    Submitted

  18. Free

    Inject - Allows running dynamic scripts in running time

    This script commands allow you to "Inject" scripts inside other scripts.
    But Zell, why I want this?

    Well, you can use a script code from a SQL table! Imagine that now you can change scripts code blocks without reloading scripts direct from your database or you can even do like me where I'm building scripts from a API!

    Sample Script:

     
    prontera,150,150,5 Script Inject Test 91,{ .@test = rand(1, 100); mes "Let's test Inject"; mes "I will declare variable .@test as " + .@test + "."; mes "My npc id is " + getnpcid(0), " "; mes "[Inject Code Start]", " "; // This script text coud be loaded from a SQL table! Inject( "mes \"Running NPC is \" + getnpcid(0); " + "mes \"Value of .@test is \" + .@test; " + "next; " + ".@test = rand(200, 500); " + "mes \"Now value of .@test will be \" + .@test;" + "close2; " ); mes "[Inject Code End]", " "; mes "Inject was ok and .@test is now " + .@test; close; }  

    81 downloads

    Updated

  19. Free

    [QOL] Costume/Shadow no weight

    This small src modif make you don't worry if you have some costume items in your item_db with some weight, they'll all be calculated at 0.
    CostumeNoWeight.diff
    Make only the costume having no weight on the player
    ShadowAndCostumeNoWeight.diff
    Make costume and shadow having no weight on the player
     

    167 downloads

    Submitted

  20. Free

    [Mapflag/QOL] NoDeath_Count

    A mapflag that doesn't increment death count when a player dies. Usefull to preserve super novice bonus.

    75 downloads

    Submitted

  21. Free

    (QOL) Taekwon Mission printing % every monster killed for the mission

    A small QOL some players asked me to add.
    It justs print each time a monster is killed for the taekwon mission the % completed

    115 downloads

    Updated

  22. Free

    [Script Command] viewcondition

    This mod allows you to set some conditions to a player can see or interact with a NPC.

    Command:
    viewcondition( npc_name, int_variable_name, compare_method, value_1, { value_2 } );

    Compara Methods Avaiable:
    EVC_LESS - If player variable is < value_1
    EVC_EQUALS - if player variable is == value_1
    EVC_MORE - if player variable is  > value_1
    EVC_BETWEEN - if player variable is  >= value_1 and <= value_2
    EVC_DIFFERENT - if player variable is != value_1

    You can apply more than one condition to a npc, but if one condition fail, the npc will not be seeing by the player.

    Script Sample:

     
    new_1,55,111,5 Script Lupina#1 10078,{ mes "You can see and talk with me because your @teste variable is less than one!"; next; mes "Now, I will set @teste to 2 and you will no longe see me when goes outsight me or if use @refesh!"; close2; @teste = 2; end; OnInit: viewcondition( strnpcinfo(0), "@teste", EVC_LESS, 1 ); end; }  

    143 downloads

    Updated

  23. Free

    [Script Command] getdconst & setdconst

    First of all, yes, I know that this break the "const" concept, but I really miss "static values" in script engine.
    Yes, I know that we can use $vars but it's a lot pretty using const logic.
    If you don't know what is a "const", open your db/const.txt file
    In the end of file, you can add something like this:
    X_VALUE%TAB%1005

    And now, you can call X_VALUE in any script and the script will know that X_VALUE is not a player script, it's a """"global"""" variable, so you can call it with or without a player attached.

    And now we came to my commands.
    getdsconst allow you to get a constant dynamically like getd.

    For sample:

    .@var = getdconst( "X" + "_" + "VALUE" );
    This would return 1005.
    And now with setdconst we can change those as well.

    setdconst( "X_VALUE", 2020 );
    Remember, when you restar t your server, this constant will be 1005 again!
     
    Here another sample script:
    prontera,150,150,5 Script CommandsTest 90,{ .@const$[0] = "SWORDCLAN"; .@const$[1] = "ARCWANDCLAN"; .@const$[2] = "GOLDENMACECLAN"; for( ; .@i < getarraysize( .@const$ ); .@i++ ) mes "Contant Value of [" + .@const$[.@i] + "] is " + getdconst( .@const$[.@i] ); next; mes "I will now, change all const values to +1"; for( .@i = 0; .@i < getarraysize( .@const$ ); .@i++ ) setdconst( .@const$[.@i], getdconst( .@const$[.@i] ) + 1 ); close; }  

    33 downloads

    Submitted

  24. Free

    [Script Command] npcisnear

    This commands verify if any NPC is near the distance of a player. Can be useful for some script restrictions.
    Script Sample:
    prontera,150,150,5 Script Curious Boy 90,{ .@n$ = "[Curious Boy]"; .@distance = 5; mes .@n$; if(isnpcsnear(getcharid(0), .@distance)) mes "Sorry, I will only talk with you when no NPC is near you!"; else mes "Hi!"; close; }  

    74 downloads

    Submitted

  25. Free

    [Script Command] isselling - Discovery if a npc is selling a item by ID

    This commands verify if a npc is selling, returning 1 to yes and 0 to no.
    Its very useful to black market scripts for players who knows item id and don't want to lost time searching where items are sold.
    Obs: Didn't test the sample script, but you can have a idea in how to use.
    Sample Script:
    prontera,150,150,5 Script Who's Selling 90,{ .@n$ = "[Who is Selling]"; mes .@n$; // Its nice to put a delay in this script if you use a lot of stores in one map and in your .npc$ array // I'm using 5 seconds in this sample. if((gettimetick(2) - whosell_delay) < 5) { mes "You have to wait 5 seconds to use me again."; close; } mes "Tell me the item ID you want to know what npc's is selling it!"; input .@id; // You can test this sample with 607 ID whosell_delay = gettimetick(2); for( .@i = 1; .@i < getarraysize(.npcs$); .@i++) { .@found = isselling( getcharid(0), .npcs$[.@i], .@id ); if( .@found ) { next; mes "Ha, this item is " + getitemname( .@id ) + ", right?"; next; mes .@n$; mes "Who is selling it is " + .npcs$[.@i] + "!"; close2; showevent QTYPE_EVENT,QMARK_YELLOW,getcharid(0),.npcs$[.@i]; // Show in npc a ballon to player end; } } next; mes .@n$; mes "No npc selling it :)"; end; OnInit: setarray .npcs$[1],"Store 1","Store 2"; end; } prontera,151,150,5 shop Store 1 90,607:1000 prontera,152,150,5 shop Store 2 90,610:1000  


     

     

     

    132 downloads

    Updated


×
×
  • Create New...