Druids RPG

Mapmaking? Modeling? Discuss all that stuff that's too complicated for most mere mortals here.
Post Reply
SoulGuardian
Posts: 2
Joined: Wed Jun 10, 2026 11:49 am

Hi all,

I'm trying to do a mod/mutator in which will assign weapon enhancements from druids rpg to the three available classes.
For instance:
Allowed weapon enhancements to monster master:
Vampiric, healing, poison, etc, and restrict others.
So in order to make each class unique.

This would be in the fornat of a mutator, so not to alter anything in the actual druids files, but to act independently.

Here’s some code, but have no clue if this is the right way.

class MutClassLockedWeaponMods extends Mutator;

function PostBeginPlay()
{
Super.PostBeginPlay();
SetTimer(1.0, true); // Increased to 1.0s to significantly reduce server lag
}

function Timer()
{
local Controller C;
local Inventory Inv;
local RPGWeapon RPGWeap;
local DruidsRPG200.DruidRPGPRI DRPRI;

for (C = Level.ControllerList; C != None; C = C.NextController)
{
if (C.Pawn == None || C.Pawn.Inventory == None)
continue;

// Corrected static call syntax
DRPRI = class'DruidsRPG200.DruidRPGPRI'.static.GetDRPRI(C);
if (DRPRI == None || DRPRI.PlayerClass == None)
continue;

for (Inv = C.Pawn.Inventory; Inv != None; Inv = Inv.Inventory)
{
// Cast to RPGWeapon because modifiers exist inside the weapon container
RPGWeap = RPGWeapon(Inv);
if (RPGWeap != None && RPGWeap.ModifierClass != None)
{
if (!IsModifierAllowedForClass(RPGWeap.ModifierClass, DRPRI.PlayerClass))
{
// Corrected string concatenation syntax
C.Pawn.ClientMessage("Class Restriction: " $ RPGWeap.ModifierName $ " removed.");

// Strip the modifier down to a normal weapon base
RPGWeap.Modifier = 0;
RPGWeap.ModifierClass = None;
RPGWeap.ModifierName = "";
}
}
}
}
}

function bool IsModifierAllowedForClass(class<DruidsRPG200.DruidRPGWeaponModifier> ModClass, class<DruidsRPG200.RPGClass> PlayerClass)
{
// Globals - allowed for all classes
if (ModClass == class'DruidsRPG200.RW_EnhancedInfinity' || ModClass == class'DruidsRPG200.RW_EnhancedDamage')
return true;

// Fixed single quotes for literal class pointer references
if (PlayerClass == class'DruidsRPG200.ClassWeaponMaster')
{
return ModClass == class'DruidsRPG200.RW_EnhancedForce'
|| ModClass == class'DruidsRPG200.RW_Knockback'
|| ModClass == class'DruidsRPG200.RW_Vorpal'
|| ModClass == class'DruidsRPG200.RW_EnhancedPiercing'
|| ModClass == class'DruidsRPG200.RW_Rage'
|| ModClass == class'DruidsRPG200.RW_EnhancedPenetrating';
}
else if (PlayerClass == class'DruidsRPG200.ClassMonsterMaster')
{
return ModClass == class'DruidsRPG200.RW_Vampire'
|| ModClass == class'DruidsRPG200.RW_Healer'
|| ModClass == class'DruidsRPG200.RW_Poison'
|| ModClass == class'DruidsRPG200.RW_Reflection'
|| ModClass == class'DruidsRPG200.RW_EnhancedLuck'
|| ModClass == class'DruidsRPG200.RW_EnhancedProtection';
}
else if (PlayerClass == class'DruidsRPG200.ClassAdrenalineMaster')
{
return ModClass == class'DruidsRPG200.RW_Freeze'
|| ModClass == class'DruidsRPG200.RW_NullEntropy'
|| ModClass == class'DruidsRPG200.RW_EnhancedEnergy'
|| ModClass == class'DruidsRPG200.RW_Speedy'
|| ModClass == class'DruidsRPG200.RW_Vorpal'
|| ModClass == class'DruidsRPG200.RW_EnhancedPiercing';
}

return false;
}

defaultproperties
{
FriendlyName="Class Locked Weapon Modifiers"
Description="Restricts weapon modifiers based on RPG class."
}
Post Reply