I'd love for people to send me their own runes, though I'd frown upon someone publiclly releasing RuneModDX while I'm still working on RuneMod, there is not an easy way of adding your own, like superheros in superheros mod, but here is how to would go about creating them if you have any small experience:
A player has a rune if the following if statement is true:
if (hasobject[playersid] == RUNECONSTANTNAME)
Each rune has a global flag,
runeflag[RUNECONSTANTNAME]
Many runes have one task, some have two, which is the "rune loop". This task is id (33*RUNECONSTANTNAME+id+1000)
To send me a rune, make a text file or message me with bits of small programming, in a format as such:
//RUNENAME (use this as the Rune Constant Name if needed)
//RUNE DESCRIPTION
//EVENTS
//------------------------------------------------------------
//DAMAGE EVENT: (VICTIM, ATTACKER)
//DEATH EVENT: (VICTIM, ATTACKER)
//ETC...
//VARIABLES TO INITIALIZE WHEN PICKED UP
//------------------------------------------------------------
//RUNE'S MAIN TASK LOOP
//------------------------------------------------------------
So for example, here is vampirism
//RUNENAME
VAMPIRISM
//RUNE DESCRIPTION
Life Steal
//EVENTS
//------------------------------------------------------------
// DAMAGE EVENT: (VICTIM, ATTACKER)
//------------------------------------------------------------
//
Code:
if(is_user_alive(attacker))
{
new temp_damage
temp_damage = floatround(float(get_user_health(attacker)) + (float(damage) * 0.5))
set_user_health(attacker,temp_damage)
if (get_user_health(attacker) > 150)
set_user_health(attacker,150)
}
//VARIABLES TO INITIALIZE WHEN PICKED UP
//------------------------------------------------------------
//None
//RUNE'S MAIN TASK LOOP
//------------------------------------------------------------
//None
Here's Invisibility
//RUNENAME
INVISIBILITY
//RUNE DESCRIPTION
Take the Knife out for invisibility
//EVENTS
//------------------------------------------------------------
//No events
//VARIABLES TO INITIALIZE WHEN PICKED UP
//------------------------------------------------------------
Code:
invisorigin[0]=NULLLOC
invisorigin[1]=NULLLOC
invisorigin[2]=NULLLOC
runeflag[INVISIBILITY]=0
//RUNE'S MAIN TASK LOOP
//------------------------------------------------------------
Code:
if(hasobject[id[0]] == INVISIBILITY && is_user_alive(id[0]))
{
if (invisorigin[0] == NULLLOC && invisorigin[1] == NULLLOC && invisorigin[2] == NULLLOC)
get_user_origin (id[0],invisorigin)
else
{
new clip, ammo
new weapon_id = get_user_weapon(id[0],clip,ammo)
new origin[3]
get_user_origin (id[0],origin)
if (invisorigin[0] != origin[0] || invisorigin[1] != origin[1] || invisorigin[2] != origin[2] || weapon_id != 29)
{
if(runeflag[INVISIBILITY] == 1)
{
client_print(id[0],print_chat,"You're no longer invisible!")
set_user_rendering ( id[0],kRenderFxNone , 0,0,0,kRenderNormal,16)
runeflag[INVISIBILITY]=0
}
}
else
{
if(runeflag[INVISIBILITY] == 0)
{
client_print(id[0],print_chat,"You're now invisible!")
runeflag[INVISIBILITY] = 1
}
set_user_rendering ( id[0],kRenderFxNone , 0,0,0,kRenderTransTexture,0)
}
get_user_origin (id[0],invisorigin)
}
}
else
{
if(runeflag[INVISIBILITY] == 1)
{
client_print(id[0],print_chat,"You're no longer invisible!")
set_user_rendering ( id[0],kRenderFxNone , 0,0,0,kRenderNormal,16)
runeflag[INVISIBILITY]=0
}
remove_task(33*INVISIBILITY+id[0]+1000)
}
return PLUGIN_HANDLED
However, if you do make any runemod runes, the less interesting the rune, the less chance of me adding it. I'm not going to add any submitted runes that just boost speed of haste or just do "damage3x", you'll have to do that manually.
For a while I considered making a "custom rune", a single rune that had a bunch of different events and effects, one you'd name yourself and was easy to set up. For example, you'd have a bunch of effects, and events, and you'd set each event to do an effect. So an event would be "When a the rune holder damages another player" or "when a player has a knife out" and possible effects would be "that player gains life", "that player gains armor", "that player's team gains life", that player speeds up", "that player flies" etc... But I figured it might just not be worth it.