Initial commit
Adding all of the current content for Anphillia Unlimited.
This commit is contained in:
97
_module/nss/faction_join.nss
Normal file
97
_module/nss/faction_join.nss
Normal file
@@ -0,0 +1,97 @@
|
||||
#include "faction_inc"
|
||||
|
||||
|
||||
int checkAlignment(object oPC, int faction)
|
||||
{
|
||||
int goodevil = GetAlignmentGoodEvil (oPC);
|
||||
int lawchaos = GetAlignmentLawChaos (oPC);
|
||||
if (faction == ANPH_FACTION_AXFELL)
|
||||
{
|
||||
if (goodevil == ALIGNMENT_GOOD && lawchaos == ALIGNMENT_LAWFUL)
|
||||
{
|
||||
SendMessageToPC(oPC, "Lawful good characters are not allowed in Axfell");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (faction == ANPH_FACTION_CLEAVEN)
|
||||
{
|
||||
if (goodevil == ALIGNMENT_EVIL && lawchaos == ALIGNMENT_CHAOTIC)
|
||||
{
|
||||
SendMessageToPC(oPC, "Chaotic Evil characters are not allowed in Cleaven");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int checkClass(object oPC, int faction)
|
||||
{
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int checkRace(object oPC, int faction)
|
||||
{
|
||||
int race = GetRacialType(oPC);
|
||||
string racename = Get2DAString("racialtypes", "name", race);
|
||||
string subrace = GetSubRace(oPC);
|
||||
|
||||
if (faction == ANPH_FACTION_CLEAVEN)
|
||||
{
|
||||
if (FindSubString("Drow###Duergar###Dark Elf###Gray Dwarf###Grey Dwarf###Deep Gnome###Svirfneblin", subrace) > 0)
|
||||
{
|
||||
SendMessageToPC(oPC, "Underdark race characters are not allowed in Cleaven");
|
||||
return FALSE;
|
||||
}
|
||||
if (FindSubString("Drow###Duergar###Dark Elf###Gray Dwarf###Grey Dwarf###Deep Gnome###Svirfneblin", racename) > 0)
|
||||
{
|
||||
SendMessageToPC(oPC, "Underdark race characters are not allowed in Cleaven");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void giveStartingGear(object oPC, int faction)
|
||||
{
|
||||
CreateItemOnObject("FoodRation", oPC);
|
||||
CreateItemOnObject("FoodRation", oPC);
|
||||
CreateItemOnObject("FoodRation", oPC);
|
||||
CreateItemOnObject("FoodRation", oPC);
|
||||
CreateItemOnObject("FoodRation", oPC);
|
||||
CreateItemOnObject("FoodRation", oPC);
|
||||
GiveGoldToCreature(oPC, 140);
|
||||
|
||||
// Give druids Ear of the Druid
|
||||
if(GetLevelByClass(CLASS_TYPE_DRUID, oPC) > 0 && !GetIsObjectValid(GetItemPossessedBy(oPC, "DruidEar")))
|
||||
{
|
||||
CreateItemOnObject("DruidEar", oPC);
|
||||
}
|
||||
|
||||
if (GetXP(oPC) < 3000)
|
||||
GiveXPToCreature(oPC, 3001 - GetXP(oPC));
|
||||
}
|
||||
void main()
|
||||
{
|
||||
object oPC = GetLastUsedBy();
|
||||
if (!GetIsPC(oPC) || GetIsDM(oPC) || GetMaster(oPC) != OBJECT_INVALID)
|
||||
return;
|
||||
|
||||
string tag = GetTag(OBJECT_SELF);
|
||||
string factname = GetStringRight(tag, GetStringLength(tag)-4); // join[faction]
|
||||
int faction = fctn_GetFactionIdFromName(factname);
|
||||
|
||||
if (!checkAlignment(oPC, faction))
|
||||
return;
|
||||
if (!checkClass(oPC, faction))
|
||||
return;
|
||||
if (!checkRace(oPC, faction))
|
||||
return;
|
||||
|
||||
giveStartingGear(oPC, faction);
|
||||
|
||||
fctn_JoinFaction(oPC, faction);
|
||||
location loc = fctn_GetFactionStartingLocation(faction);
|
||||
AssignCommand (oPC, JumpToLocation(loc));
|
||||
}
|
||||
Reference in New Issue
Block a user