72 lines
2.5 KiB
Plaintext
72 lines
2.5 KiB
Plaintext
////////////////////////////////////////////////////////////////////////////////
|
|
// Djinn Wish
|
|
// By Deva Bryson Winblood. 02/07/2004
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
#include "rtsh_multiplay"
|
|
void main()
|
|
{
|
|
object oPC=GetPCSpeaker();
|
|
object oDjinn=OBJECT_SELF;
|
|
int nParm=GetLocalInt(oPC,"nDjinn");
|
|
object oItem;
|
|
object oDest;
|
|
string sID=GetLocalString(oPC,"sTeamID");
|
|
int nN;
|
|
SetLocalInt(oDjinn,"nGranted",TRUE); // Wish has been granted
|
|
switch(nParm)
|
|
{ // Djinn Wish Switch
|
|
case 1: { // back to lair
|
|
oDest=GetWaypointByTag(sID+"_START");
|
|
AssignCommand(oPC,ClearAllActions(TRUE));
|
|
AssignCommand(oPC,JumpToObject(oDest));
|
|
DelayCommand(5.0,DestroyObject(oDjinn));
|
|
break;
|
|
} // back to lair
|
|
case 2: { // wealth
|
|
GiveGoldToCreature(oPC,2500);
|
|
DelayCommand(HoursToSeconds(6),AssignCommand(oPC,TakeGoldFromCreature(2500,oPC,TRUE)));
|
|
DelayCommand(30.0,DestroyObject(oDjinn));
|
|
break;
|
|
} // wealth
|
|
case 3: { // power
|
|
nN=fnGetTeamMana(oPC);
|
|
nN=nN+100;
|
|
SendMessageToPC(oPC,"Your team receives 100 mana.");
|
|
fnSetTeamMana(oPC,nN);
|
|
DelayCommand(30.0,DestroyObject(oDjinn));
|
|
break;
|
|
} // power
|
|
case 4: { // Serve me
|
|
AssignCommand(oDjinn,SpeakString("I will serve you for 6 hours."));
|
|
SetLocalString(oDjinn,"sTeamID",sID);
|
|
DelayCommand(HoursToSeconds(6),SpeakString("Farewell."));
|
|
DelayCommand(HoursToSeconds(6)+10.0,DestroyObject(oDjinn));
|
|
oDest=GetWaypointByTag(sID+"_RESOURCES");
|
|
oItem=GetObjectByTag(sID+"_PROXY");
|
|
ChangeFaction(oDjinn,oItem);
|
|
break;
|
|
} // Serve me
|
|
case 5: { // city
|
|
oDest=GetWaypointByTag("DJINN_CITY");
|
|
AssignCommand(oPC,ClearAllActions(TRUE));
|
|
AssignCommand(oPC,JumpToObject(oDest));
|
|
DelayCommand(5.0,DestroyObject(oDjinn));
|
|
break;
|
|
} // city
|
|
case 6: { // elben
|
|
oDest=GetWaypointByTag("DJINN_ELBEN");
|
|
AssignCommand(oPC,ClearAllActions(TRUE));
|
|
AssignCommand(oPC,JumpToObject(oDest));
|
|
DelayCommand(5.0,DestroyObject(oDjinn));
|
|
break;
|
|
} // elben
|
|
case 7: { // astral
|
|
oDest=GetWaypointByTag("DJINN_ASTRAL");
|
|
AssignCommand(oPC,ClearAllActions(TRUE));
|
|
AssignCommand(oPC,JumpToObject(oDest));
|
|
DelayCommand(5.0,DestroyObject(oDjinn));
|
|
break;
|
|
} // astral
|
|
} // Djinn Wish Switch
|
|
}
|