Jump to content

Skorm

Forum Moderator
  • Posts

    1268
  • Joined

  • Last visited

  • Days Won

    33

Posts posted by Skorm

  1. I'm just now seeing this and don't have the time to test things out, but I've had problems warping players with similar BG scripts. I can't exactly remember what the problem was because its been years, but you should try collecting all of the players cids/aids for each team and then warping them individually instead of mapwarp/partywarp.

     

     

    • Like 1
  2. On 3/20/2024 at 10:56 PM, vitcunha said:

    Do you have very old clients or emulators lying around? Maybe that old hard drive with RO stuff? How about those old CD-Rs on the shelf? Or are you simply a RO data hoarder?

    WE WANT YOU!

    Hi, I’m vit. I’m developing along with o oldinroplayer a *Ragnarok Online Cross-Episode Database*, called RagnaDB.

    It’s a db in which you’re able to choose a specific episode and we’ll show you all the info precisely as it was back in the day. The idea is for it to be the “one RO database to rule them all”.
    For this to exist, there’s a great deal of historical research and digital data scavenging involved. Since we’re committed to historical accuracy, we’re on a journey to finding old files (client and server) to feed the db with, as well as (old) reliable sources for data validation.

    If you were waiting for the right moment to shine and looking for a group of people who will truly appreciate and see value in those dozens of RO gigabytes collecting dust like no one ever had, this is the moment! We’ll love to have you! 

    If any of the words above piqued your interest, you’re more than welcome here. Join our Discord to hear about the latest updates or just hang around!

    Our Discord: https://discord.gg/cueAdED64N

    RagnaDB: https://ragnadb.com/

    I love the concept also the site is very responsive and minimal, but includes all of the data and shortcuts to it you might expect. Keep up the good work. 🙂

  3. If you're looking for something clientside there are various launchers with some serverside communication. For example rgzlauncher. You'd need to send a custom packet/message to the launcher which exists at the same time as the client and then run the application from that launcher. You could also just create your own launcher which does something similar.

    • Upvote 1
  4. 44 minutes ago, Dolphin86 said:

    @Skorm well what i plan to do was player will do some activity example, crafting weapon, once player had succesfully craft the desire weapon, he will get crafting points, now if player wish to view his current point he will use an infinate item that will recall an npc / script which will show all of his current points, ( weapon craft, armor craft, etc)

    and player can also spend his current points to unlock new stuff, example 100 weapon crafting can be spend to unlock bonus +10 dmg (i am using an etc item as indicator of player which will detect on the crafting sytem npc that will open a feature where player can craft +10 dmg weapons, but if i understand this point system i would just use the points instend of items, but i am worry if the points would be reset, when server reboot, restart or stop...)

    I'm pretty sure detecting if a player produced an item requires a source mod probably with an event similar to the OnPC events.

  5. On 3/16/2024 at 9:50 AM, Dolphin86 said:

    how to spend the points?

    The points are just a custom temporary character variable.
    rathena/doc/script_commands.txt at master · rathena/rathena · GitHub

    I think it might be more appropriate to use a permanent character variable for that instead.

    This is how you can define a shop that uses the custom points.
    rathena/doc/script_commands.txt at master · rathena/rathena · GitHub

    Here it describes how the different shop points are used.
    rathena/doc/script_commands.txt at master · rathena/rathena · GitHub

    @Racaae's answer shows pretty clearly how you can do something from an item. 🙂

    "Task" is very vague. What do you want the player to do specifically?

  6. Ehh this is what I got when I asked awhile ago. In other word garbage because of the email filter.

    - script Item Exchange -1,{
        // Item IDs and exchange rates
        setarray .itemList,501,502,503,504;
        setarray .exchangeRates,10,20,30,40;
        // Reward IDs and amounts
        setarray .rewardList,1001,1002,1003,1004;
        setarray .rewardAmounts,1,2,3,4;
        
        mes "Hello there! I am the Item Exchange NPC.";
        mes "I can exchange certain items for rewards.";
        next;
        mes "Here is the list of items that I accept:";
        for (set [email protected],0; [email protected] < getarraysize(.itemList); set [email protected],[email protected]+1) {
            mes "- " + getitemname(.itemList[[email protected]]) + " x " + .exchangeRates[[email protected]];
        }
        next;
        mes "What would you like to exchange today?";
        [email protected] = select("Exchange an item for a reward","I'll come back later");
        if ([email protected] == 2) {
            close;
        }
        mes "Great! Please select the item that you would like to exchange.";
        [email protected] = menu("Please select the item:", getitemname(.itemList));
        if ([email protected] == 0) {
            mes "You don't have any of the required items.";
            close;
        }
        [email protected] -= 1;
        mes "You have selected " + getitemname(.itemList[[email protected]]) + ".";
        mes "How many of these items would you like to exchange?";
        [email protected] = input("Please enter the quantity:");
        if ([email protected] <= 0) {
            mes "You must enter a valid quantity.";
            close;
        }
        if ([email protected] > getitemcount(.itemList[[email protected-1]])) {
            mes "You don't have enough of the selected item.";
            close;
        }
        mes "You have selected to exchange " + [email protected] + " " + getitemname(.itemList[[email protected-1]]) + ".";
        mes "Here is the list of rewards that you can choose from:";
        for (set [email protected],0; [email protected] < getarraysize(.rewardList); set [email protected],[email protected]+1) {
            mes "- " + getitemname(.rewardList[[email protected]]) + " x " + .rewardAmounts[[email protected]];
        }
        next;
        mes "Which reward would you like to receive?";
        [email protected] = menu("Please select your reward:", getitemname(.rewardList));
        if ([email protected] == 0) {
            mes "You must select a valid reward.";
            close;
        }
        [email protected] -= 1;
        mes "You have selected " + getitemname(.rewardList[[email protected]]) + ".";
        mes "Here is your reward:";
        getitem .rewardList[[email protected]], .rewardAmounts[[email protected]];
        delitem .itemList[[email protected]], .exchangeRates[[email protected]] * [email protected];
        close;
    }

     

  7. @Enoch

    It's just easier to make two separate npcs and just disable the one for that player after they've completed the quest.

    But you might be able to use these two commands I'm pretty sure they work on npcs.

    rathena/script_commands.txt at master · rathena/rathena · GitHub

    rathena/script_commands.txt at master · rathena/rathena · GitHub

    Then you could get the npcs position and branch on that.

    ----

    If you wanted to go about disabling the npc for just that player you could try...
    rathena/script_commands.txt at master · rathena/rathena · GitHub
    With like a proximity trigger and then just add a condition within the npc to ignore clicks from people that have completed that part of the quest.

  8. 1 hour ago, Kyunhee said:

    first of all thanks.
    Just now we have tried to do the tests but nevertheless it gives this error, and crash, we couldn't find the syntax error

    I forgot to escape the quotations.

    Edit:
    Also as it might not be clear, the first line of what I posted goes within the item_db while the remaining portion of the content is a separate NPC that should be loaded as such. Also, I recommend having @SM_BASH_BONUS = 0; within the equip and unequip script calls and not the main script call as that gets triggered irregularly.

  9. @Kyunhee

    I've never used autobonus like this but it seems like it could work. The only problem I can see right off the bat is that .@d is a scope variable it's unlikely that bonus script and other script are within scope. Instead, I would try using a character variable. Keep in mind that at the end of the bonuseffect you would need to rest it via a timer or something. You might also have to reapply the bonus I'm unsure if that's done also on attack.

    autobonus3 "{bonus2 bSkillAtk,\"SM_BASH\",@SM_BASH_BONUS; if(!@SM_BASH_TIMER){addtimer(10000,\"SM_BASH_NPC::On10Seconds\"); @SM_BASH_TIMER = 1;}}",1000,10000,"SM_BASH","{if(@SM_BASH_BONUS<30){@SM_BASH_BONUS += 10;}}";
    
    -	script	SM_BASH_NPC	-1,{
    On10Seconds:
    	@SM_BASH_TIMER = 0;
    	@SM_BASH_BONUS = 0;
    	end;
    }

    I don't have access to my local test server at the moment so this is all speculation.

  10. @yodaGG

    If the guild master is offline, it's a bit annoying to get that information because there are many places where the item could be.

    .@gm_aid = getcharid(3,getguildmaster(getcharid(2)));
    .@gm_cid = getguildmasterid(getcharid(2));
    
    if(isloggedin(.@gm_aid, .@gm_cid)) {
    	if(countitem(.Premium_Ticket,.@gm_aid)) {
    		// Do buffs
    	}
    } else { // If they Guild Master is not online we search the SQL database.
    	.@inventory = max(query_sql("SELECT `nameid` FROM `inventory` WHERE `char_id` = "+.@gm_cid+";",.@id), 0);
    	.@storage = max(query_sql("SELECT `nameid` FROM `storage` WHERE `char_id` = "+.@gm_cid+";",.@id), 0);
    	if(.@inventory||.@storage) {
    		// Do buffs
    	}
    }

    I'm not sure what the SQL tables and column names are strictly off the top of my head, so the above example probably won't work, but you could fill in the correct details.

  11. @yodaGG

    prontera,158,192,3	script	Healer	621,{
    		specialeffect2 EF_HEAL2; percentheal 100,100;
    		specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,600000,10;
    		specialeffect2 EF_ASSUMPTIO; sc_start SC_ASSUMPTIO,600000,5;
    		specialeffect2 EF_BLESSING; sc_start SC_BLESSING,600000,10;
    		specialeffect2 EF_ANGELUS; sc_start SC_ANGELUS,600000,10;
    		specialeffect2 EF_GLORIA; sc_start SC_GLORIA,600000,5;
    		
    		if (countitem(.VIP_item) || countitem(.Premium_Ticket)) {
    			specialeffect2 EF_BLESSING; sc_start SC_BLESSING,600000,10;
    			specialeffect2 HP_ASSUMPTIO; sc_start HP_ASSUMPTIO,600000,10;
    			specialeffect2 EF_ANGELUS; sc_start SC_ANGELUS,600000,10;
    			specialeffect2 EF_SUFFRAGIUM; sc_start SC_SUFFRAGIUM,600000,3;
    			specialeffect2 EF_IMPOSITIO; sc_start SC_IMPOSITIO,600000,5;
    			specialeffect2 EF_GLORIA; sc_start SC_GLORIA,600000,5;
    			specialeffect2 EF_MAGNIFICAT; sc_start SC_MAGNIFICAT,600000,5;
    			specialeffect2 EF_CHEMICALPROTECTIOn; sc_start SC_CP_WEAPON,600000,5;
    			sc_start SC_CP_ARMOR,600000,5;
    			sc_start SC_CP_SHIELD,600000,5;
    			sc_start SC_CP_HELM,600000,5;
    			specialeffect2 EF_ASSUMPTIO; sc_start SC_ASSUMPTIO,600000,5;
    			sc_start SC_ADRENALINE2,600000,1;
    			specialeffect2 EF_MAXPOWER; sc_start SC_MAXIMIZEPOWER,600000,5;
    			specialeffect2 EF_PERFECTION; sc_start SC_WEAPONPERFECTION,600000,5;
    			specialeffect2 EF_ENDURE; sc_start SC_ENDURE,600000,10;
    			sc_start SC_KAUPE,600000,3;
    			sc_start SC_KAITE,600000,7;
    			sc_start SC_STRFOOD,600000,5;
    			sc_start SC_AGIFOOD,600000,5;
    			sc_start SC_VITFOOD,600000,5;
    			sc_start SC_INTFOOD,600000,5;
    			sc_start SC_DEXFOOD,600000,5;
    			sc_start SC_LUKFOOD,600000,5;
    
    			switch ( CLASS ) {
    				case 18:
    				case 4019:
    				case 4071:
    				case 4078:
    					skilleffect "SL_ALCHEMIST",0;
    					sc_start4 SC_SPIRIT,9999999,5,455,0,0;
    					break;
    				case 15:
    				case 4016:
    				case 4070:
    				case 4077:
    					skilleffect "SL_MONK",0;
    					sc_start4 SC_SPIRIT,9999999,5,447,0,0;
    					break;
    				case 4047:
    					skilleffect "SL_STAR",0;
    					sc_start4 SC_SPIRIT,9999999,5,448,0,0;
    					break;
    				case 16:
    				case 4017:
    				case 4067:
    				case 4074:
    					skilleffect "SL_SAGE",0;
    					sc_start4 SC_SPIRIT,9999999,5,449,0,0;
    					break;
    				case 14:
    				case 4015:
    				case 4066:
    				case 4073:
    					skilleffect "SL_CRUSADER",0;
    					sc_start4 SC_SPIRIT,9999999,5,450,0,0;
    					break;
    				case 23:
    				case 4190:
    					skilleffect "SL_SUPERNOVICE",0;
    					sc_start4 SC_SPIRIT,9999999,5,451,0,0;
    					break;
    				case 7:
    				case 4008:
    				case 4054:
    				case 4060:
    					skilleffect "SL_KNIGHT",0;
    					sc_start4 SC_SPIRIT,9999999,5,452,0,0;
    					break;
    				case 9:
    				case 4010:
    				case 4055:
    				case 4061:
    					skilleffect "SL_WIZARD",0;
    					sc_start4 SC_SPIRIT,9999999,5,453,0,0;
    					break;
    				case 8:
    				case 4009:
    				case 4057:
    				case 4063:
    					skilleffect "SL_PRIEST",0;
    					sc_start4 SC_SPIRIT,9999999,5,454,0,0;
    					break;
    				case 19:
    				case 20:
    				case 4020:
    				case 4021:
    				case 4068:
    				case 4069:
    				case 4075:
    				case 4076:
    					skilleffect "SL_BARDDANCER",0;
    					sc_start4 SC_SPIRIT,9999999,5,455,0,0;
    					break;
    				case 17:
    				case 4018:
    				case 4072:
    				case 4079:
    					skilleffect "SL_ROGUE",0;
    					sc_start4 SC_SPIRIT,9999999,5,456,0,0;
    					break;
    				case 12:
    				case 4013:
    				case 4059:
    				case 4065:
    					skilleffect "SL_ASSASIN",0;
    					sc_start4 SC_SPIRIT,9999999,5,457,0,0;
    					break;
    				case 10:
    				case 4011:
    					skilleffect "SL_BLACKSMITH",0;
    					sc_start4 SC_SPIRIT,9999999,5,458,0,0;
    					break;
    				case 11:
    				case 4012:
    				case 4056:
    				case 4062:
    					skilleffect "SL_HUNTER",0;
    					sc_start4 SC_SPIRIT,9999999,5,460,0,0;
    					break;
    				case 4049:
    					skilleffect "SL_SOULLINKER",0;
    					sc_start4 SC_SPIRIT,9999999,5,461,0,0;
    					break;
    				default:
    					break;
    			}
    		}
    	end;
    	
    OnInit:
    	.VIP_item = 7854; //itemId
    	.Premium_Ticket = 7608;
    	end;
    }

     

    This part:

    if (countitem(.VIP_item) || countitem(.Premium_Ticket)) {

    Means if the player has at least 1 of .VIP_item or .Premium_Ticket allow.

    If it helps I made a small truth table for you.

    P

    q

    &&(and)

    ||(or)

    T

    T

    T

    T

    T

    F

    F

    T

    F

    T

    F

    T

    F

    F

    F

    F

    It's good to keep in mind that these are logical operators and as such aren't entirely identical to bitwise operators. Although both can be used in a similar way.

    Here's a table for the bitwise operators that you can use in rAthena. (Excluding bitwise NOT(~))

    P

    q

    &(AND)

    |(OR)

    ^(XOR)

    T

    T

    T

    T

    F

    T

    F

    F

    T

    T

    F

    T

    F

    T

    T

    F

    F

    F

    F

    F

     


     


     

  12. @yodaGG Hard to say exactly what you want since English doesn't seem to be your first language, but I've added what I think you're asking for, and maybe you can figure it out from there.

     

    prontera,158,192,3	script	Healer	621,{
    	if (getguildname(getcharid(2)) == "Fratenity") {
    		specialeffect2 EF_HEAL2; percentheal 100,100;
    		specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,600000,10;
    		specialeffect2 EF_ASSUMPTIO; sc_start SC_ASSUMPTIO,600000,5;
    		specialeffect2 EF_BLESSING; sc_start SC_BLESSING,600000,10;
    		specialeffect2 EF_ANGELUS; sc_start SC_ANGELUS,600000,10;
    		specialeffect2 EF_GLORIA; sc_start SC_GLORIA,600000,5;
    		
    		if (countitem ( .VIP_item ) || countitem(.Premium_Ticket)) {
    			specialeffect2 EF_BLESSING; sc_start SC_BLESSING,600000,10;
    			specialeffect2 HP_ASSUMPTIO; sc_start HP_ASSUMPTIO,600000,10;
    			specialeffect2 EF_ANGELUS; sc_start SC_ANGELUS,600000,10;
    			specialeffect2 EF_SUFFRAGIUM; sc_start SC_SUFFRAGIUM,600000,3;
    			specialeffect2 EF_IMPOSITIO; sc_start SC_IMPOSITIO,600000,5;
    			specialeffect2 EF_GLORIA; sc_start SC_GLORIA,600000,5;
    			specialeffect2 EF_MAGNIFICAT; sc_start SC_MAGNIFICAT,600000,5;
    			specialeffect2 EF_CHEMICALPROTECTIOn; sc_start SC_CP_WEAPON,600000,5;
    			sc_start SC_CP_ARMOR,600000,5;
    			sc_start SC_CP_SHIELD,600000,5;
    			sc_start SC_CP_HELM,600000,5;
    			specialeffect2 EF_ASSUMPTIO; sc_start SC_ASSUMPTIO,600000,5;
    			sc_start SC_ADRENALINE2,600000,1;
    			specialeffect2 EF_MAXPOWER; sc_start SC_MAXIMIZEPOWER,600000,5;
    			specialeffect2 EF_PERFECTION; sc_start SC_WEAPONPERFECTION,600000,5;
    			specialeffect2 EF_ENDURE; sc_start SC_ENDURE,600000,10;
    			sc_start SC_KAUPE,600000,3;
    			sc_start SC_KAITE,600000,7;
    			sc_start SC_STRFOOD,600000,5;
    			sc_start SC_AGIFOOD,600000,5;
    			sc_start SC_VITFOOD,600000,5;
    			sc_start SC_INTFOOD,600000,5;
    			sc_start SC_DEXFOOD,600000,5;
    			sc_start SC_LUKFOOD,600000,5;
    
    			switch ( CLASS ) {
    				case 18:
    				case 4019:
    				case 4071:
    				case 4078:
    					skilleffect "SL_ALCHEMIST",0;
    					sc_start4 SC_SPIRIT,9999999,5,455,0,0;
    					break;
    				case 15:
    				case 4016:
    				case 4070:
    				case 4077:
    					skilleffect "SL_MONK",0;
    					sc_start4 SC_SPIRIT,9999999,5,447,0,0;
    					break;
    				case 4047:
    					skilleffect "SL_STAR",0;
    					sc_start4 SC_SPIRIT,9999999,5,448,0,0;
    					break;
    				case 16:
    				case 4017:
    				case 4067:
    				case 4074:
    					skilleffect "SL_SAGE",0;
    					sc_start4 SC_SPIRIT,9999999,5,449,0,0;
    					break;
    				case 14:
    				case 4015:
    				case 4066:
    				case 4073:
    					skilleffect "SL_CRUSADER",0;
    					sc_start4 SC_SPIRIT,9999999,5,450,0,0;
    					break;
    				case 23:
    				case 4190:
    					skilleffect "SL_SUPERNOVICE",0;
    					sc_start4 SC_SPIRIT,9999999,5,451,0,0;
    					break;
    				case 7:
    				case 4008:
    				case 4054:
    				case 4060:
    					skilleffect "SL_KNIGHT",0;
    					sc_start4 SC_SPIRIT,9999999,5,452,0,0;
    					break;
    				case 9:
    				case 4010:
    				case 4055:
    				case 4061:
    					skilleffect "SL_WIZARD",0;
    					sc_start4 SC_SPIRIT,9999999,5,453,0,0;
    					break;
    				case 8:
    				case 4009:
    				case 4057:
    				case 4063:
    					skilleffect "SL_PRIEST",0;
    					sc_start4 SC_SPIRIT,9999999,5,454,0,0;
    					break;
    				case 19:
    				case 20:
    				case 4020:
    				case 4021:
    				case 4068:
    				case 4069:
    				case 4075:
    				case 4076:
    					skilleffect "SL_BARDDANCER",0;
    					sc_start4 SC_SPIRIT,9999999,5,455,0,0;
    					break;
    				case 17:
    				case 4018:
    				case 4072:
    				case 4079:
    					skilleffect "SL_ROGUE",0;
    					sc_start4 SC_SPIRIT,9999999,5,456,0,0;
    					break;
    				case 12:
    				case 4013:
    				case 4059:
    				case 4065:
    					skilleffect "SL_ASSASIN",0;
    					sc_start4 SC_SPIRIT,9999999,5,457,0,0;
    					break;
    				case 10:
    				case 4011:
    					skilleffect "SL_BLACKSMITH",0;
    					sc_start4 SC_SPIRIT,9999999,5,458,0,0;
    					break;
    				case 11:
    				case 4012:
    				case 4056:
    				case 4062:
    					skilleffect "SL_HUNTER",0;
    					sc_start4 SC_SPIRIT,9999999,5,460,0,0;
    					break;
    				case 4049:
    					skilleffect "SL_SOULLINKER",0;
    					sc_start4 SC_SPIRIT,9999999,5,461,0,0;
    					break;
    				default:
    					break;
    			}
    		}
    	}
    	end;
    	
    OnInit:
    	.VIP_item = 7854; //itemId
    	.Premium_Ticket = 7608;
    	end;
    }

     

  13. Here is a segment from one of my paid scripts where is use this command.

    monster 'map$,158,239,"--ja--",'boss_id,1,instance_npcname("oghcm#control")+"::OnBossDeath";
    'boss = $@mobid[0];
    getunitdata 'boss,.@boss_data;
    unitskillusepos 'boss,91,5,.@boss_data[UMOB_X],.@boss_data[UMOB_Y],-2;

    This works for me. The only difference I can see is that I am providing the last parameter which is cast time. Also, I'm using `unitskillusepos`.

  14. On 8/31/2022 at 2:46 PM, Takuyakii said:

    Good day, can someone correct this script

    i have npc that giving a farm title System ( Farmer 1, Farmer 2 titled)

    i want to make if the player logged in it needs to check if his farmer 1 or farmer 2, )
    so i try to wrote this.

    if farmer 1, he/she will be put tittled or fakename on his name, 

     

    PS: i don't know if my title is right if not please do correct ty

     

    Your labels where incorrect it seems like mR L fixed them for you. Although your explanation isn't that great so I'm not entirely sure if this script is working the way you want it to. I can only confirm that the script mR L provided will work.

  15. 5 hours ago, Syon said:

    Hi, @Start_,

    Thanks for replying. I couldn't find any reference of attachtimer in script_commands.txt. Could you point me to the documentation or share a sample? Thanks!

    https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L6998

    These timers are stored as part of the player.

    -   script test015677   -1,{
    OnPCLoginEvent: 
        addtimer 60000,"test015677::On60secs"; // Apply Timer...
        end;
    
    On60secs:
    	dispbottom "60 seconds have passed!";
        if(checkidle() >= 60 && !checkchatting() && !checkvending()) // Check if idle for 60 seconds or more and not in a chatroom and not vending.
            atcommand "@kick " + strcharinfo(0); // Is it even possible to kick yourself? xD
        else
            addtimer 60000,"test015677::On60secs"; // Reapply timer...
    	end;
    }

     

    • Upvote 1
  16. On 8/23/2022 at 11:09 AM, nomeen said:

    aS3dT1.png

    My script is missing the autospell section. 
    "When attacking, concentration Lv 3 is cast with a single chance. (If the character's skill is higher than Lv 3, the skill will be cast when it reaches Lv.)
    If the character falls, the item effect will disappear."

        Script: |
          bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bMaxHPrate,-10; bonus bMaxSPrate,-10; bonus bAspdRate,5; bonus bVariableCastrate,-5; }",1800,1,1;

    I've been trying to write this script for months. but i am unable to write it, i will be very grateful if anyone can help me.

    my english is not good If I use the wrong term I'm really sorry.
    Thanks in advance for any comments.

    bonus4 bAutoSpell,"AC_CONCENTRATION",max(getskilllv("AC_CONCENTRATION"),3),n,0;

    Where n is the percent of cast. It does not say in the description so I guess that's up to you.

  17. On 8/15/2022 at 9:42 PM, albertoacv4498 said:

    I was wondering... I like me some randomness, and I also enjoy having missions or quests. I wanted to know if it would be possible to query the database inside the quest_db.yml file and be able to use the results in custom quests, making the whole process automatic (as of right now, I've been doing it manually, selecting IDs and amounts and such...) Thank you for any and all info!

    I do not believe it's possible to query quest_db.yml. You could convert it into an SQL database and query it from there. Depending on the information you need to know you might be able to use existing commands to search for it.

×
×
  • Create New...