Initial commit
Initial commit [v9.7]
This commit is contained in:
97
_module/nss/gm_inbetween.nss
Normal file
97
_module/nss/gm_inbetween.nss
Normal file
@@ -0,0 +1,97 @@
|
||||
// Gambling Slots
|
||||
// Part of the Gambling System designed by:
|
||||
// Archaegeo July 26 2002
|
||||
|
||||
#include "gm_include"
|
||||
|
||||
int BASECOST=15;
|
||||
|
||||
void GivePayout(int nMult);
|
||||
void DetermineResults();
|
||||
void GetToken();
|
||||
string GetSymbol(int nR);
|
||||
|
||||
object oPC;
|
||||
int nA, nB, nC;
|
||||
int nT;
|
||||
|
||||
void main()
|
||||
{
|
||||
oPC=GetLastUsedBy();
|
||||
if(GetLocalInt(OBJECT_SELF,"IN-USE"))
|
||||
{
|
||||
SendMessageToPC(oPC, "This is being used, please wait.");
|
||||
return;
|
||||
}
|
||||
if(GetGold(oPC) < BASECOST)
|
||||
{
|
||||
SendMessageToPC(oPC, "You cannot afford this game.");
|
||||
return;
|
||||
}
|
||||
nT=1;
|
||||
SetLocalInt(OBJECT_SELF,"IN-USE",nT);
|
||||
AssignCommand(OBJECT_SELF,ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
|
||||
DelayCommand(0.2,AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW)));
|
||||
SendMessageToPC(oPC,"You roll the dice one at a time....");
|
||||
DelayCommand(1.5,GetToken());
|
||||
}
|
||||
|
||||
void GetToken()
|
||||
{
|
||||
if(nT==1) nA=d20();
|
||||
else if(nT==2) nC=d20();
|
||||
else nB=d20();
|
||||
nT++;
|
||||
AssignCommand(OBJECT_SELF,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
||||
if(nT==2)
|
||||
{
|
||||
FloatingTextStringOnCreature("**"+IntToString(nA)+"** * * ** **",oPC);
|
||||
DelayCommand(1.5,GetToken());
|
||||
}
|
||||
else if(nT==3)
|
||||
{
|
||||
FloatingTextStringOnCreature("**"+IntToString(nA)+"** * * **"+
|
||||
IntToString(nC)+"**",oPC);
|
||||
DelayCommand(1.5,GetToken());
|
||||
}
|
||||
else
|
||||
{
|
||||
FloatingTextStringOnCreature("**"+IntToString(nA)+"** *"+IntToString(nB)+
|
||||
"* **"+IntToString(nC)+"**",oPC);
|
||||
DetermineResults();
|
||||
}
|
||||
}
|
||||
|
||||
void GivePayout(int nMult)
|
||||
{
|
||||
int nPayout=nMult*BASECOST;
|
||||
int nChk;
|
||||
nChk=CheckPayout(nPayout);
|
||||
if(nChk < nPayout)
|
||||
{
|
||||
SendMessageToPC(oPC,"You have broke the bank!");
|
||||
nPayout=nChk;
|
||||
}
|
||||
else
|
||||
SubHouse(nPayout);
|
||||
SendMessageToPC(oPC,"You win "+IntToString(nPayout)+" gold!");
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_EVIL_HELP);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,OBJECT_SELF);
|
||||
DeleteLocalInt(OBJECT_SELF,"IN-USE");
|
||||
GiveGoldToCreature(oPC, nPayout);
|
||||
}
|
||||
|
||||
void DetermineResults()
|
||||
{
|
||||
int nPayoff;
|
||||
if(nA != nC && ((nA < nB && nB < nC) || (nA > nB && nB > nC)) )
|
||||
{
|
||||
nPayoff=2;
|
||||
GivePayout(nPayoff);
|
||||
return;
|
||||
}
|
||||
SendMessageToPC(oPC, "You win nothing this time, try again.");
|
||||
AddHouse(BASECOST);
|
||||
AssignCommand(OBJECT_SELF, TakeGoldFromCreature(BASECOST, oPC, TRUE));
|
||||
DeleteLocalInt(OBJECT_SELF,"IN-USE");
|
||||
}
|
||||
Reference in New Issue
Block a user