Raised This Month: $51 Target: $400
 12% 

[L4D2, Any Source] RPGMaker 2 (beta v1.0.1 feb42023)


Post New Thread Reply   
 
Thread Tools Display Modes
Author
Skyy
AlliedModders Donor
Join Date: Jan 2010
Location: Toronto, Canada
Plugin ID:
8359
Plugin Version:
beta v1.0.1
Plugin Category:
All
Plugin Game:
Left 4 Dead
Plugin Dependencies:
    Servers with this Plugin:
     
    Plugin Description:
    FULLY-customizable RPG Maker plugin for any source engine game, but pre-configured for L4D2.
    Old 01-10-2023 , 04:56   [L4D2, Any Source] RPGMaker 2 (beta v1.0.1 feb42023)
    Reply With Quote #1



    Credits
    AtomikStryker
    panxiaoxiao
    mr.zero
    Asherkin
    Silvers
    Soul

    If I haven't credited you, let me know so I can add your name to the list (and the change.log)


    Note:

    RPGMaker2 still requires my ReadyUp plugin due to its extensive api that I have been using with RPGMaker2. Removing it would require incorporating its functionality directly into RPGMaker2, and that would be incredibly time-consuming, and is not necessary since ReadyUp already exists and does its job well.
    However, if you don't want or need the front-end functionality of ReadyUp, ReadyUp has an option to run in IPC-only mode.

    RPGMaker2 is coded using old syntax, and was tested using Sourcemod v1.10.6502.
    It currently does not work (or compile) on the latest version of Sourcemod due to several reasons:
    1. Several methods I use in 1.10 are deprecated in newer versions.
    2. Several dependencies are not compatible with their newer counterparts (such as L4Downtown and L4D_Direct)

    I am in the process of porting RPGMaker2 to new syntax, but it will take some time to make the changes to support the newer versions of dependencies and to replace deprecated methods. This is a huge undertaking, as this plugin is several years in the making. If you're interested in helping, I could use additional contributors on the project; see the bottom of this post for my github.

    Thank-you for your understanding.



    Description

    RPGMaker 2 is the sequel to my RPGMaker plugin.

    As with the previous version, it is configured out of the gate for Left 4 Dead 2, but will work with all Source games.

    RPGMaker2 is essentially a GIGANTIC parser; RPGMaker 2 is extremely customizable... maybe too-customizable. It can take quite a while to setup, especially if you want to build your own RPG with your own talents, menus, etc., but you can do it.

    To add support for games other than Left 4 Dead 2, you'll need to edit the /configs/readyup/rpg/events.cfg and add any appropriate/necessary events.
    Unique to this version of RPGMaker is that you can create custom ability triggers for each event.

    This plugin is configured by modifying 9 different config files, found in /configs/readyup/rpg/:
    Unused, but still required: chatsettings.cfg, pets.cfg and maprecords.cfg
    I will be removing the dependencies for these in the future.

    commonaffixes.cfg : This is where you design the super commons, which are commons with special abilities.
    config.cfg : this is the main config file, similar to the cvar files that plugins typically create in the /cfg/sourcemod/ folder.
    events.cfg : this is where you add events and any custom ability triggers for those events. Left 4 Dead 2 events are already coded.
    mainmenu.cfg : this is where you create your main menu, when people type your !rpg command into chat.
    points.cfg : this config file is for the !usepoints/!buy module. This module can be completely disabled, or the plugin can run in !usepoints only mode, if RPGs aren't your thing but you still want all the customization.
    store.cfg : this config file is for store menu options, and is another module that can be disabled.
    talentmenu.cfg : the largest of all the files, and I mean in the thousands to tens of thousands of lines, depending on the # of nodes you create. Up to you, and the limitations of SM/Engine, really.
    trails.cfg : this is where you set the trail colors for the different survivors; there will be custom trail colors in the future.
    weapondamages.cfg : this config file manages the damage overrides for any weapon listed in the config. You can also set the maximum range of weapons, where being outside this range (units) results in the weapons damage falling off. You can also set an absolute range, where if the victim is outside the range, weapon damage is reduced to 1. Effectively, weapon distance drop-off.

    Attributes (CARTEL) are no longer hard-coded. Instead, they are defined in the talentmenu.cfg ; open the file and search for "constitution i" to see how to construct your own attributes. You also decide which nodes(talents, abilities, spells, etc.) are affected by which attributes.





    Required Plugins
    ReadyUp v7.5 is required for RPGMaker2 v0.0.5.5+
    I've added it to the attachments on this post; the github link is here:
    https://github.com/exskye/left-4-dea...y)/ReadyUp-7.5
    New IPC calls(forwards/natives) added:
    https://github.com/exskye/left-4-dea...4642146ab70792

    The required extensions/plugins has not changed from RPGMaker1 to RPGMaker2. However, when I do get this ported to new syntax, this list should change, as several of these, tmk (can someone verify?) are incorporated into newer SM versions.

    Code:
    #include <sdktools>
    #include <sdkhooks>
    #include <smlib>                            // required for chat colors.
    #include <l4d2_direct>                   // ancient
    
    #include "wrap.inc"                        // my own wrappers.
    #include "left4downtown.inc"          // ancient.
    #include "l4d_stocks.inc"                // ancient.
    
    #undef REQUIRE_PLUGIN
    #include <readyup>                       // still required.
    #define REQUIRE_PLUGIN





    Installation

    MySQL is required for the saving/loading of player data.
    I'm often-asked if RPGMaker2 supports localhost servers. Yes, as long as you're connected to a database.

    You must add an entry for /configs/databases.cfg equal to your config.cfg value for "database prefix?"
    The default value is "rum_rpg"
    the mod will not work if it is not connected to a database. You will see errors in your logs.
    the mod will not work on newer versions of Sourcemod until it is ported to new syntax. I'm not sure which version it stops being compatible.





    You can download the source/binaries from my github repo

    So that I only have to update one location with the files, I'm linking directly to my repo @ https://github.com/exskye
    You can find the source files and always up to date binaries on there!

    Last edited by Skyy; 02-04-2023 at 19:46. Reason: removed files from AM so I only have to update one location.
    Skyy is offline
    KadabraZz
    Senior Member
    Join Date: May 2020
    Old 01-12-2023 , 18:29   Re: [L4D2, Any Source] RPGMaker 2 (v0.0.5.2 Jan10, 2023)
    Reply With Quote #2

    Man this looks so complete, and rich in content
    KadabraZz is offline
    KadabraZz
    Senior Member
    Join Date: May 2020
    Old 01-13-2023 , 22:30   Re: [L4D2, Any Source] RPGMaker 2 (v0.0.5.2 Jan10, 2023)
    Reply With Quote #3

    Any particular reason to not use Left4DHooks? https://forums.alliedmods.net/showthread.php?t=321696
    KadabraZz is offline
    Skyy
    AlliedModders Donor
    Join Date: Jan 2010
    Location: Toronto, Canada
    Old 01-14-2023 , 14:24   Re: [L4D2, Any Source] RPGMaker 2 (v0.0.5.2 Jan10, 2023)
    Reply With Quote #4

    Quote:
    Originally Posted by KadabraZz View Post
    Any particular reason to not use Left4DHooks?
    Yes.
    This doesn't work on the newer SM versions that support L4DHooks, and is why it still uses L4Downtown and L4D_Direct as separate entities.
    Am in the process of rewriting it in new syntax, but it's taking a while. At that time, it will be using l4dhooks and other newer extensions.

    Last edited by Skyy; 02-04-2023 at 19:37.
    Skyy is offline
    KadabraZz
    Senior Member
    Join Date: May 2020
    Old 01-17-2023 , 05:33   Re: [L4D2, Any Source] RPGMaker 2 (v0.0.5.2 Jan10, 2023)
    Reply With Quote #5

    Makes sense, thanks for explaining
    KadabraZz is offline
    eyal282
    Veteran Member
    Join Date: Aug 2011
    Old 05-10-2023 , 08:39   Re: [L4D2, Any Source] RPGMaker 2 (beta v1.0.1 feb42023)
    Reply With Quote #6

    Are there tank bosses to account for the advantage we get? Similar to MGFTW?

    Any chance to make sv_tags appender so we can locate the servers using this?

    I imagine "rpg" and "skyrpg"
    Code:
    /**
     * Adds an informational string to the server's public "tags".
     * This string should be a short, unique identifier.
     *
     *
     * @param tag            Tag string to append.
     * @noreturn
     */
    stock void AddServerTag2(const char[] tag)
    {
    	Handle hTags = INVALID_HANDLE;
    	hTags        = FindConVar("sv_tags");
    
    	if (hTags != INVALID_HANDLE)
    	{
    		int flags = GetConVarFlags(hTags);
    
    		SetConVarFlags(hTags, flags & ~FCVAR_NOTIFY);
    
    		char tags[50];    // max size of sv_tags cvar
    		GetConVarString(hTags, tags, sizeof(tags));
    		if (StrContains(tags, tag, true) > 0) return;
    		if (strlen(tags) == 0)
    		{
    			Format(tags, sizeof(tags), tag);
    		}
    		else
    		{
    			Format(tags, sizeof(tags), "%s,%s", tags, tag);
    		}
    		SetConVarString(hTags, tags, true);
    
    		SetConVarFlags(hTags, flags);
    	}
    }
    
    /**
     * Removes a tag previously added by the calling plugin.
     *
     * @param tag            Tag string to remove.
     * @noreturn
     */
    stock void RemoveServerTag2(const char[] tag)
    {
    	Handle hTags = INVALID_HANDLE;
    	hTags        = FindConVar("sv_tags");
    
    	if (hTags != INVALID_HANDLE)
    	{
    		int flags = GetConVarFlags(hTags);
    
    		SetConVarFlags(hTags, flags & ~FCVAR_NOTIFY);
    
    		char tags[50];    // max size of sv_tags cvar
    		GetConVarString(hTags, tags, sizeof(tags));
    		if (StrEqual(tags, tag, true))
    		{
    			Format(tags, sizeof(tags), "");
    			SetConVarString(hTags, tags, true);
    			return;
    		}
    
    		int pos = StrContains(tags, tag, true);
    		int len = strlen(tags);
    		if (len > 0 && pos > -1)
    		{
    			bool found;
    			char taglist[50][50];
    			ExplodeString(tags, ",", taglist, sizeof(taglist[]), sizeof(taglist));
    			for (int i = 0; i < sizeof(taglist[]); i++)
    			{
    				if (StrEqual(taglist[i], tag, true))
    				{
    					Format(taglist[i], sizeof(taglist), "");
    					found = true;
    					break;
    				}
    			}
    			if (!found) return;
    			ImplodeStrings(taglist, sizeof(taglist[]), ",", tags, sizeof(tags));
    			if (pos == 0)
    			{
    				tags[0] = 0x20;
    			}
    			else if (pos == len - 1)
    			{
    				Format(tags[strlen(tags) - 1], sizeof(tags), "");
    			}
    			else
    			{
    				ReplaceString(tags, sizeof(tags), ",,", ",");
    			}
    
    			SetConVarString(hTags, tags, true);
    
    			SetConVarFlags(hTags, flags);
    		}
    	}
    }
    Can you contact me on Discord? I took interest in making any RPG plugin for my server, I want to make it as open source as possible ( even if I'm making a server as I'm using many public resources )

    The first thing I want is 1.12 support and Left4dhooks support, and I want to ensure it's okay with you that it will no longer work on old compilers.

    I will make the conversion entirely myself, and I want direct contact with you as I also want to publish optional talents regarding my Point System API, to allow a talent that gains you more points.
    __________________
    I am available to make plugins for pay.

    Discord: Eyal282#1334

    Last edited by eyal282; 05-10-2023 at 08:43.
    eyal282 is offline
    Reply



    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT -4. The time now is 21:17.


    Powered by vBulletin®
    Copyright ©2000 - 2024, vBulletin Solutions, Inc.
    Theme made by Freecode