function.rpy
페이지 정보
본문
init python:
import time
from hashlib import sha256
def VersionCheck():
global g_version
if g_version == "null":
g_version = config.version
return True
def Encryption( int_num ):
if 999999 < 1:
if not IsTest():
renpy.show_screen("security_warning")
return sha256(str(0)).hexdigest()
return sha256(str(int_num)).hexdigest()
def CheckEncryption():
global g_gold, m_encryption
if m_encryption == Encryption(g_gold):
return True
def SetEncryption( int_num ):
global m_encryption
m_encryption = Encryption(int_num)
def PutGold(gold):
global g_gold
if CheckEncryption():
renpy.hide_screen("put_gold_screen")
renpy.show_screen("put_gold_screen", add_gold = gold)
renpy.sound.play("audio/effect/getitem.wav")
g_gold = g_gold + gold
SetEncryption(g_gold)
return True
else:
g_gold = 0
SetEncryption(0)
return True
def SubGold(gold):
global g_gold
if g_gold < gold:
return False
else:
return ForceSubGold(gold)
def ForceSubGold(gold):
global g_gold
if CheckEncryption():
renpy.hide_screen("put_gold_screen")
renpy.show_screen("put_gold_screen", add_gold = -gold)
close_screen_delay("put_gold_screen", 58)
renpy.sound.play("audio/effect/buy.wav")
g_gold = g_gold - gold
SetEncryption(g_gold)
return True
else:
g_gold = 0
SetEncryption(0)
return False
def CheckGold(gold):
global g_gold
if g_gold < gold:
return False
else:
if CheckEncryption():
return True
else:
g_gold = 0
SetEncryption(0)
return False
def close_screen_delay(screen_name, delay_time):
global g_close_screen_delay
g_close_screen_delay = delay_time
renpy.show_screen("close_screen_delay", screen_name = "put_gold_screen")
def close_screen_delay_l(screen_name):
renpy.hide_screen(screen_name)
renpy.hide_screen("close_screen_delay")
def SubCard(card):
global g_card
if g_card < card:
return False
else:
g_card = g_card - card
return True
def GetItem(pKey):
for item in g_InventoryItem:
if item.GetKey() == pKey:
return item
return None
def GetItemCount(pKey):
for item in g_InventoryItem:
if item.GetKey() == pKey:
return item.count
return 0
def IsHaveItem(pKey, count):
for item in g_InventoryItem:
if item.GetKey() == pKey:
if item.count >= count:
return True
return False
def PutItem(pKey, count):
global g_InventoryItem, g_switch_put_item_screen
if 999999 < 1:
if not IsTest():
renpy.show_screen("security_warning")
return False
renpy.sound.play( "audio/effect/getitem.wav")
item = GetItem(pKey)
if item:
item.Add(count)
else:
g_InventoryItem.append(ItemData(pKey))
g_InventoryItem[-1].Add(count)
if g_switch_put_item_screen == 1:
renpy.hide_screen( "put_item_screen" )
renpy.show_screen( "put_item_screen" , pKey = pKey, count = count)
g_switch_put_item_screen = 2
else:
renpy.hide_screen( "put_item_screen2" )
renpy.show_screen( "put_item_screen2" , pKey = pKey, count = count)
g_switch_put_item_screen = 1
def SubItem(pKey, count):
global g_InventoryItem
for i in range(len(g_InventoryItem)):
if g_InventoryItem[i].pKey == pKey:
if g_InventoryItem[i].count - count <= 0:
g_InventoryItem.remove(g_InventoryItem[i])
else:
g_InventoryItem[i].count = g_InventoryItem[i].count - count
break
renpy.hide_screen( "sub_item_screen" )
renpy.show_screen( "sub_item_screen" , pKey = pKey)
def GetHavePicture(pKey, count):
for item in g_InventoryPicture:
if item.GetKey() == pKey:
if item.count >= count:
return item
return None
def IsHavePicture(pKey):
count= 1
for item in g_InventoryPicture:
if item.GetKey() == pKey:
if item.count >= count:
return True
return False
def PutPicture(pKey):
global g_InventoryPicture
count= 1
renpy.sound.play( "audio/effect/getitem.wav")
picture = GetHavePicture(pKey, 1)
if picture:
picture.Add(count)
else:
g_InventoryPicture.append(PictureData(pKey))
g_InventoryPicture[-1].Add(count)
renpy.hide_screen( "put_picture_screen" )
renpy.show_screen( "put_picture_screen" , pKey = pKey)
def SubPicture(pKey, count):
global g_InventoryPicture
count = 1
for i in range(len(g_InventoryPicture)):
if g_InventoryPicture[i].pKey == pKey:
if g_InventoryPicture[i].count - count <= 0:
g_InventoryPicture.remove(g_InventoryPicture[i])
else:
g_InventoryPicture[i].count = g_InventoryPicture[i].count - count
break
renpy.hide_screen( "sub_picture_screen" )
renpy.show_screen( "sub_picture_screen" , pKey = pKey)
def GetHaveBook(pKey, count):
for item in g_InventoryBook:
if item.GetKey() == pKey:
if item.count >= count:
return item
return None
def IsHaveBook(pKey):
count= 1
for item in g_InventoryBook:
if item.GetKey() == pKey:
if item.count >= count:
return True
return False
def PutBook(pKey):
global g_InventoryBook
count= 1
if 999999 < 1:
if not IsTest():
renpy.show_screen("security_warning")
return False
renpy.sound.play( "audio/effect/getitem.wav")
book = GetHaveBook(pKey, 1)
if book:
book.Add(count)
else:
g_InventoryBook.append(BookData(pKey))
g_InventoryBook[-1].Add(count)
renpy.hide_screen( "put_book_screen" )
renpy.show_screen( "put_book_screen" , pKey = pKey)
def SubBook(pKey, count):
global g_InventoryBook
count = 1
for i in range(len(g_InventoryBook)):
if g_InventoryBook[i].pKey == pKey:
if g_InventoryBook[i].count - count <= 0:
g_InventoryBook.remove(g_InventoryBook[i])
else:
g_InventoryBook[i].count = g_InventoryBook[i].count - count
break
renpy.hide_screen( "sub_book_screen" )
renpy.show_screen( "sub_book_screen" , pKey = pKey)
def GetTimeIcon(num):
if num == 1:
return "time_morning"
elif num == 2:
return "time_afternoon"
elif num == 3:
return "time_evening"
elif num == 4:
return "time_night"
def GetActor(pKey):
for actor in ActorData.getAll():
if actor.GetKey() == pKey :
return actor
return null
def PutActor(pKey):
return GetActor(pKey)
def Rand( min, max ):
return renpy.random.randint(min, max)
def HaveQuest():
rtn = list()
for dataKey, questD in TB_Quest.items():
quest = GetQuest( dataKey )
if EventMap("christmas"):
if quest.IsInProgress():
if quest.Event() == "christmas":
rtn.append(quest)
else:
if quest.IsInProgress():
if quest.Event() == "0":
rtn.append(quest)
return rtn
def GetQuest(pKey):
if not pKey in gd_InventoryQuest :
gd_InventoryQuest[pKey] = QuestData(pKey)
return gd_InventoryQuest[pKey]
def StartQuest(pKey):
quest = GetQuest(pKey)
quest.Start()
def ClearQuest(pKey):
quest = GetQuest(pKey)
if quest.RewardItem() != "0":
PutItem( quest.RewardItem(), quest.RewardItemCount() )
if quest.RewardGold() != 0:
PutGold( quest.RewardGold())
quest.Clear()
def RemoveQuest(pKey):
quest = GetQuest(pKey)
quest.Remove()
def Clear():
quest = GetQuest(g_do_quest)
quest.Clear()
def IsClearQuest(pKey):
return gd_InventoryQuest[pKey].IsClear() if pKey in gd_InventoryQuest else False
def IsNotClearQuest(pKey):
if IsClearQuest(pKey):
return False
else:
return True
def IsHaveQuest(pKey):
for quest in HaveQuest():
if quest.GetKey() == pKey:
return True
return False
def IsNotStartQuest(pKey):
if IsHaveQuest(pKey) or IsClearQuest(pKey):
return False
else:
return True
def SaySave(what):
global g_what
g_what = what
return what
def SetDuress(actorKey, duress):
actor = GetActor(actorKey)
if actor.duress < duress:
actor.duress = duress
def GetDuress(actorKey):
return GetActor(actorKey).love
def SetLove(actorKey, love):
actor = GetActor(actorKey)
if actor.love < love:
actor.love = love
def GetLove(actorKey):
return GetActor(actorKey).love
def SetMood(actorKey, mood):
actor = GetActor(actorKey)
if actor.mood < mood:
actor.mood = mood
def GetMood(actorKey):
return GetActor(actorKey).mood
def GetActorLocationAll(indexKey):
rtn = list()
for Actor in ActorData.getAll():
flag = Actor.MoveActorQuest(indexKey)
if flag == 0:
if Actor.getLocation() == indexKey:
if Actor.FirstQuest() == "0":
rtn.append(Actor)
elif IsClearQuest(Actor.FirstQuest()):
rtn.append(Actor)
elif flag == 1:
rtn.append(Actor)
return rtn
def TimeSkipCool():
global g_TimeSkipCool
g_TimeSkipCool = 10
TimeSkip()
def TimeSkipCoolUpdate():
global g_TimeSkipCool
g_TimeSkipCool = g_TimeSkipCool -1
def TimeSkip():
if g_time == 4:
ClickInventoryRoom("myroom")
else:
NextTime()
TimeSkipMoveCheck()
def TimeSkipMoveCheck():
if RoomData(g_mylocationKey).CanMove() != 1:
Move(RoomData(g_mylocationKey).Parent())
TimeSkipMoveCheck()
def NextTime():
global g_time, g_call
g_time = g_time + 1
PlayMusic()
if g_time == 4:
renpy.sound.play("audio/effect/phonebell.wav")
g_call = 1
elif g_time > 4:
g_time = 4
if g_mylocationKey == "home_menu":
GetActorWorldMap()
ResetLockActionTime()
def GetMusicTime():
global g_time
if RoomData(g_mylocationKey).Bgm() == "0":
if g_time == 1:
music_s = "audio/bgm/Happy Acoustic.mp3"
if g_time == 2:
music_s = "audio/bgm/morning.mp3"
if g_time == 3:
music_s = "audio/bgm/readingnight.mp3"
if g_time == 4:
music_s = "audio/bgm/night.mp3"
else:
music_s = "audio/bgm/" + RoomData(g_mylocationKey).Bgm()
return music_s
def PlayMusic():
global g_music
g_music = GetMusicTime()
renpy.music.play(g_music)
def SexMusic():
renpy.music.play("audio/bgm/sex.mp3")
def NextDay():
global g_time, g_call, g_day, g_safe_box
g_time = 1
ResetLock()
ResetRemoveActorTime()
ResetLockActionToday()
ResetLockActionTime()
ToiletRandomMoney()
TodayResorceMission()
TodayBookShop()
g_call = 0
g_safe_box = 1
GetActor("jihye").look = ""
g_day = g_day + 1
PlayMusic()
ResetDailyFlag()
RandomBlackboard()
def OpenRoomToday(room_name):
global g_OpenRoomToday
for room in g_OpenRoomToday:
if room == room_name:
return
g_OpenRoomToday.append(room_name)
def CloseRoomToday(room_name):
global g_OpenRoomToday
for room in g_OpenRoomToday:
if room == room_name:
g_OpenRoomToday.remove(room_name)
return
def IsOpenRoom(room_name):
for roomName in g_OpenRoomToday:
if roomName == room_name:
return True
else:
return False
def ResetOpenRoomToday():
global g_OpenRoomToday
g_OpenRoomToday = list()
def IsUnLockActor(actor_name):
for actorName in g_LockActorToday:
if actorName == actor_name:
return False
for actorName in g_LockActorTime:
if actorName == actor_name:
return False
return True
def LockActorToday(actor_name):
for Actor in ActorData.getAll():
if Actor.GetKey() == actor_name:
Actor.setLock(4)
def LockActorTime(actor_name):
for Actor in ActorData.getAll():
if Actor.GetKey() == actor_name:
Actor.setLock(g_time)
def ResetLock():
global g_InventoryActor
for Actor in g_InventoryActor:
Actor.resetLock()
def UnLockActorToday(actor_name):
for Actor in ActorData.getAll():
if Actor.GetKey() == actor_name:
Actor.resetLock()
def RemoveActorTime(actor_name):
for Actor in ActorData.getAll():
if Actor.GetKey() == actor_name:
Actor.setRemoveDay(g_time)
def ResetRemoveActorTime():
global g_InventoryActor
for Actor in g_InventoryActor:
Actor.resetRemoveDay()
def MoveActor(actor_name, location, nTime):
for Actor in ActorData.getAll():
if Actor.GetKey() == actor_name:
Actor.setLocation(location, nTime)
def ResetActorLocation(actor_name):
for Actor in ActorData.getAll():
if Actor.GetKey() == actor_name:
Actor.resetLocation()
def IsUnLockAction(action_name):
for actionName in g_LockActionToday:
if actionName == action_name:
return False
for actionName in g_LockActionTime:
if actionName == action_name:
return False
return True
def LockActionToday(action_name):
global g_LockActionToday
g_LockActionToday.append(action_name)
def UnLockActionToday(action_name):
global g_LockActionToday
g_LockActionToday.remove(action_name)
def ResetLockActionToday():
global g_LockActionToday
g_LockActionToday = list()
def LockActionTime(action_name):
global g_LockActionTime
g_LockActionTime.append(action_name)
def UnLockActionTime(action_name):
global g_LockActionTime
g_LockActionTime.remove(action_name)
def ResetLockActionTime():
global g_LockActionTime
g_LockActionTime = list()
def GetActor(pKey):
global g_InventoryActor
for actor in g_InventoryActor:
if actor.GetKey() == pKey :
return actor
g_InventoryActor.append( ActorData(pKey) )
return g_InventoryActor[-1]
def UpdateActor():
for dataKey, Actor in TB_Actor.items():
GetActor(dataKey)
def GetResorceRandomMission(grade):
rtn = list()
for Resorce in ResorceData.getAll():
if Resorce.Grade() == grade :
rtn.append(Resorce)
randomx = Rand(1, len(rtn)) -1
return rtn[randomx]
def TodayResorceMission():
global g_InventoryResorce
g_InventoryResorce = list()
for i in range(0,Rand(3,5)):
ran = Rand(0,100)
if ran < 25:
g_InventoryResorce.append(GetResorceRandomMission(3))
elif ran < 50:
g_InventoryResorce.append(GetResorceRandomMission(2))
elif ran < 75:
g_InventoryResorce.append(GetResorceRandomMission(1))
else:
g_InventoryResorce.append(GetResorceRandomMission(0))
return g_InventoryResorce
def TodayBookShop():
global g_InventoryBookShop
g_InventoryBookShop = list()
for book in BookData.getAll():
if not GetHaveBook(book.GetKey(),1):
g_InventoryBookShop.append(book)
return g_InventoryBookShop
def GetPuzzle(pKey):
global g_InventoryPuzzle
for puzzle in g_InventoryPuzzle:
if puzzle.GetKey() == pKey :
return puzzle
g_InventoryPuzzle.append( PuzzleData(pKey) )
return g_InventoryPuzzle[-1]
def initPuzzle():
for dataKey, Puzzle in TB_Puzzle.items():
GetPuzzle(dataKey)
def DonationSemen():
global g_semen_count, g_semen_last_day
g_semen_count= g_semen_count + 1
g_semen_last_day= g_day
def CanDonationSemenToday():
if g_semen_last_day == g_day:
return False
else:
return True
def ResetSemenPoint():
global g_semen_point
g_semen_point = 0
def AddSemenPoint():
global g_semen_point
g_semen_point = g_semen_point + 1
def RandomBlackboard():
global g_today_board
pKey = "b" + str(Rand(1,len(TB_Board)))
g_today_board = TB_Board[pKey]
def GetBlackboard():
global g_today_board
if g_today_board == "":
g_today_board = TB_Board['b1']
return g_today_board
def GetQuote():
pKey = "b" + str(Rand(1,len(TB_Quote)))
return TB_Quote[pKey]
def SexStep(step):
global g_sex_step
if g_sex_step < step:
g_sex_step = step
def UseDailyFlag(key):
global gd_DailyFlag
gd_DailyFlag[key] = True
return True
def IsDailyFlag(key):
global gd_DailyFlag
if gd_DailyFlag.get(key):
return False
else:
return True
def ResetDailyFlag():
global gd_DailyFlag
gd_DailyFlag.clear()
def CheckParentMap(mapKey, findMapKey):
if mapKey == "0":
return False
if mapKey == findMapKey:
return True
return CheckParentMap(RoomData(mapKey).Parent(), findMapKey)
def GetRootRoom(indexKey):
parent = RoomData(indexKey).Parent()
if parent == "home_menu" or parent == "0" :
return indexKey
return GetRootRoom(parent)
def EventMap(eventKey):
if RoomData(g_mylocationKey).Event() == eventKey:
return True
return False
def IsTest():
return IsHaveItem("test_key", 1)
def IsSeason(month):
if int(time.strftime("%m", time.gmtime())) == month:
return True
return False
# Decompiled by unrpyc: https://github.com/CensoredUsername/unrpyc댓글목록
등록된 댓글이 없습니다.
