109 lines
3.9 KiB
Python
109 lines
3.9 KiB
Python
#SlotMachine configuration file
|
|
#to make a new kind of slot machine, copy this file, change the settings and point the slotmachine to the new file.
|
|
#Standard type Diamond Slots
|
|
#FYI - This one uses an object for cointype and not the money code :)
|
|
|
|
import CFPython
|
|
import sys
|
|
import os.path
|
|
sys.path.append(os.path.join(CFPython.GetDataDirectory(),CFPython.GetMapDirectory(),'python'))
|
|
import CFGamble
|
|
import CFItemBroker
|
|
|
|
activator=CFPython.WhoIsActivator()
|
|
activatorname=CFPython.GetName(activator)
|
|
whoami=CFPython.WhoAmI()
|
|
#gets slot name and adds map name for unique jackpot
|
|
slotname= '%s#%s' %(CFPython.GetName(whoami),CFPython.GetMapPath(CFPython.GetMap(whoami)))
|
|
x=CFPython.GetXPosition(activator)
|
|
y=CFPython.GetYPosition(activator)
|
|
|
|
cointype = "gem" #What type of coin is this slotmachine using?
|
|
minpot = 200 #Minimum slot jackpot size
|
|
maxpot = 10000 #Maxiumum slot jackpot size
|
|
cost = 1 #Price of usage
|
|
|
|
#Change the items on the slot spinner or the number of items.
|
|
slotlist = ["Silver", "Gold", "Platinum", "Sapphire", "Emerald", "Ruby", "Diamond", "JackPot"]
|
|
|
|
spinners = 4 #How many spinners on the slotmachine?
|
|
|
|
Slots=CFGamble.SlotMachine(slotname,slotlist,minpot,maxpot)
|
|
|
|
object = CFPython.CheckInventory(activator,cointype)
|
|
if (object):
|
|
pay = CFItemBroker.Item(object).subtract(cost)
|
|
if (pay):
|
|
Slots.placebet(cost)
|
|
results = Slots.spin(spinners)
|
|
pay = 0
|
|
pot = Slots.checkslot()
|
|
CFPython.Write('%s' %results, activator, 7)
|
|
for item in results:
|
|
#match all but one - pays out by coin e.g 3 to 1 or 4 to 1
|
|
if results.count(item) == spinners-1:
|
|
if item == "Silver":
|
|
pay = 1
|
|
elif item == "Gold":
|
|
pay = 2
|
|
elif item == "Platinum":
|
|
pay = 3
|
|
elif item == "Sapphire":
|
|
pay = 4
|
|
elif item == "Emerald":
|
|
pay = 5
|
|
elif item == "Ruby":
|
|
pay = 6
|
|
elif item == "Diamond":
|
|
pay = 10
|
|
elif item == "Jackpot":
|
|
pay = 15
|
|
else:
|
|
break
|
|
CFPython.Write("%d %ss, a minor win!" %(spinners-1,item),activator)
|
|
payoff = cost*pay
|
|
Slots.payoff(payoff)
|
|
id = CFPython.CreateObject(cointype, (x, y))
|
|
CFItemBroker.Item(id).add(payoff)
|
|
if payoff == 1:
|
|
message = "you win %d %s!" %(payoff,cointype)
|
|
else:
|
|
message = "You win %d %ss!!" %(payoff,cointype)
|
|
break
|
|
elif results.count(item) == spinners:
|
|
#all match - pays out as percent of pot
|
|
CFPython.Write('%d %ss, a Major win!' %(spinners,item),activator)
|
|
if item == "Silver":
|
|
pay = .1
|
|
elif item == "Gold":
|
|
pay = .15
|
|
elif item == "Platinum":
|
|
pay = .25
|
|
elif item == "Sapphire":
|
|
pay = .3
|
|
elif item == "Emerald":
|
|
pay = .4
|
|
elif item == "Ruby":
|
|
pay = .5
|
|
elif item == "Diamond":
|
|
pay = .6
|
|
elif item == "JackPot":
|
|
pay = 1
|
|
payoff = pot*pay
|
|
Slots.payoff(payoff)
|
|
id = CFPython.CreateObject(cointype, (x, y))
|
|
CFItemBroker.Item(id).add(payoff)
|
|
if payoff == 1:
|
|
message = "you win %d %s!" %(payoff,cointype)
|
|
else:
|
|
message = "You win %d %ss!!" %(payoff,cointype)
|
|
break
|
|
else:
|
|
message = "Better luck next time!"
|
|
CFPython.Write(message,activator)
|
|
CFPython.Write("%d in the Jackpot, Play again?" %Slots.checkslot(),activator)
|
|
else:
|
|
CFPython.Write("Sorry, you do not have enough %ss" %(cointype),activator)
|
|
else:
|
|
CFPython.Write("Sorry, you do not have any %ss" %(cointype),activator)
|