Examples - Phil25/RTD GitHub Wiki
Contents
Perk registration and callback ^
public void OnPluginStart(){
if(RTD2_IsRegOpen())
RegisterPerk();
}
public void OnPluginEnd(){
RTD2_DisableModulePerks();
}
public void RTD2_OnRegOpen(){
RegisterPerk();
}
void RegisterPerk(){
RTD2_ObtainPerk("mytoken")
.SetName("My Perk Name")
.SetGood(true)
.SetSound("path/to/activation/sound.mp3")
.SetClasses("2, 3, 5")
.SetWeaponClasses("shotgun")
.SetTags("soldier, pyro, heavy, shotgun, good")
.SetPref("damage", "2")
.SetCall(MyPerk_Call);
}
public void MyPerk_Call(int client, RTDPerk perk, bool bEnable){
if(bEnable)
PrintToChat(client, "Your shotgun damage was increased by %.2f!", perk.GetPrefFloat("damage"));
else
PrintToChat(client, "Your shotgun damage was set back to normal.");
}
Perk registration and callback with comments ^
public void OnPluginStart(){
if(RTD2_IsRegOpen())
RegisterPerk(); // if module was late-loaded, register our perk
}
public void OnPluginEnd(){
RTD2_DisableModulePerks(); // ensures custom perks will be called for deactivation, in case this module unloads
}
public void RTD2_OnRegOpen(){
RegisterPerk(); // Core plugin fully initialized or perks were refetched, register our perk
}
void RegisterPerk(){
RTD2_ObtainPerk("mytoken") // create perk using unique token "mytoken"
.SetName("My Perk Name") // set perk's name
.SetGood(true) // make the perk good
.SetSound("path/to/activation/sound.mp3") // set activation sound
.SetClasses("2, 3, 5") // make the perk applicable only to Soldier, Pyro and Heavy
.SetWeaponClasses("shotgun") // make the perk applicable only to clients holding a shotgun
.SetTags("soldier, pyro, heavy, shotgun, good") // set perk's search tags
.SetPref("damage", "2") // set some custom settings
.SetCall(MyPerk_Call); // set which function should be called for activation/deactivation
}
public void MyPerk_Call(int client, RTDPerk perk, bool bEnable){
if(bEnable)
PrintToChat(client, "Your shotgun damage was increased by %.2f!", perk.GetPrefFloat("damage"));
else
PrintToChat(client, "Your shotgun damage was set back to normal.");
}