Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import operator
- #rngr
- def rngr(seed,j):
- k = 0
- while (k < j):
- seedr = (0x00003155*(seed%65536)+((0x0000B9B3*(seed%65536)+0x00003155*math.floor(seed/65536))%65536)*65536+0xA170F641)%(4294967296)
- seed = seedr
- #print k
- k += 1
- return seedr
- #rng
- def rng(seed,j):
- k = 0
- while (k <= j):
- newseed = seed
- seed = (0x000043FD*(seed%65536)+((0x00000003*(seed%65536)+0x000043FD*math.floor(seed/65536))%65536)*65536+0x00269EC3)%(4294967296)
- k += 1
- return seed
- #PID
- def findpid(seed,case):
- seedint = seed
- if case == 1:
- casen = 3
- if case == 2:
- casen = 8
- if case == 3:
- casen = 10
- pseed = int(rngr(seed,casen))
- seedint = int(rng(pseed,0))
- print "pseed: " + str(hex(pseed))
- lockpid = int(((pseed >> 16)*0x10000 + (seedint>>16)))
- naturelock = int(lockpid%25)
- print hex(lockpid)
- return lockpid
- def nature(naturelock):
- natures = ['hardy', 'lonely', 'brave', 'adamant', 'naughty', 'bold', 'docile', 'relaxed', 'impish', 'lax', 'timid', 'hasty', 'serious', 'jolly', 'naive', 'modest', 'mild', 'quiet', 'bashful', 'rash', 'calm', 'gentle', 'sassy', 'careful', 'quirky']
- return natures[naturelock]
- def main():
- #seed = int(raw_input('seed: '), 16)
- #naturelocks = int(raw_input('naturelock array: '), 10)
- #genderlocks = int(raw_input('genderlock array: '), 10)
- #nsmons = int(raw_input('number of nonshadows: '), 10)
- #gthresh = int(raw_input('genderthresholds: '), 10)
- #case = int(raw_input('case: '), 10)
- seed = 0xd1ae12a5
- case = 2
- inputseed = seed
- naturelocks = [12, 18, 0]
- genderlocks = [0, 0, 0]
- nsmons = 3
- gthresh = [256, 128, 256]
- for i in range(0,1):
- seedr = seed
- #seedr = rngr(seed,1)
- #seed = rng(seed,1)
- #seedr = int(seedr)
- #seed = seedr
- #seed = int(seed)
- lockpid = int(findpid(seed, case))
- naturelock = int(lockpid%25)
- print "PID: " + str(hex(lockpid))
- print "nature lock: " + nature(int(lockpid%25))
- print "ability lock: " + str(int(lockpid%2))
- print "gender lock: " + str(int(lockpid%256))
- #print hex(seed)
- print "hex seed: " + str(hex(seedr))
- print naturelocks[0]
- if naturelock == naturelocks[0] :
- if genderlocks[0] == 1:
- if int(lockpid%256) >= gthresh[0]:
- listgen(naturelocks, genderlocks, gthresh, nsmons, inputseed, case)
- else:
- print "gender does not match"
- else:
- if int(lockpid%256) < gthresh[0]:
- listgen(naturelocks, genderlocks, gthresh, nsmons, inputseed, case)
- else:
- print "gender does not match"
- else:
- print "naturelock doesnt match"
- def listgen(naturelocks, genderlocks, gthresh, nsmons, inputseed, case):
- seed = inputseed
- d = 0
- matchlist = []
- currentpid = 0
- currentnature = 0
- pseed = int(rngr(seed,400))
- pseed0 = pseed
- for s in range(0,nsmons):
- pseed = pseed0
- matchlist = []
- pidlist = []
- for r in range(1,400):
- seedint = int(rng(pseed,0))
- currentpid = int(((pseed >> 16)*0x10000 + (seedint>>16)))
- currentnature = int(currentpid%25)
- pseed = seedint
- if currentnature == naturelocks[s-1]:
- if genderlocks[s-1] == 1:
- if int(currentpid%256) >= gthresh[s-1]:
- matchlist.append(r-4)
- pidlist.append(hex(currentpid))
- else:
- if int(currentpid%256) < gthresh[s-1]:
- matchlist.append(r-4)
- pidlist.append(hex(currentpid))
- print "current nature"
- print hex(pseed)
- print matchlist
- print pidlist
- if case == 1:
- print "target on frame 401, primary nature lock on 394"
- if case == 2:
- print "target on frame 401, primary nature lock on 389"
- if case == 3:
- print "target on frame 401, primary nature lock on 387"
- # Execute Script:
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement