SaveName투카나 여행길EpochTimeB8eDate10/25/2023 3:48:34 PMVersionNumberv13.2.2GameMode투카나 여행길GameTypeGameGameComplexityLow ComplexityPlayingTime0 1PlayerCounts01Tags0 Card Games1Tables2Cards3 Scripting4Scripting: Automated5Korean6 Board GamesGravity?PlayArea?Table Table_NoneSky Sky_MuseumNote- 스크립트 by 3JA2TabStates; 0mtitleRulesbodycolorGreyvisibleColor&r?g?b?id1ntitleWhitebodycolorWhitevisibleColor&r?g?b?id2ntitleBrownbodycolorBrownvisibleColor&rZ?gh?b= ?id3jtitleRedbodycolorRedvisibleColor&r Zd?g?b@b?id4ptitleOrangebodycolorOrangevisibleColor&r@?g ?b`?id5ptitleYellowbodycolorYellowvisibleColor&r?gj?b?id6ntitleGreenbodycolorGreenvisibleColor&rt?gn?b ?id7ltitleBluebodycolorBluevisibleColor&r?5?g?b?id8ltitleTealbodycolorTealvisibleColor&r`?g?5?b@l?id9ptitlePurplebodycolorPurplevisibleColor&r@b?g?b?id 10ltitlePinkbodycolorPinkvisibleColor&rQ?g?b?id 11ntitleBlackbodycolorBlackvisibleColor&r?g?b?id 12title*Script assigner*bodyqthisNum = tonumber(self.getGMNotes()) card = nil card_Colors = {["노랑"] = "Yellow", ["파랑"] = "Blue", ["빨강"] = "Red", ["검정"] = "Black", ["초록"] = "Green", ["보라"] = "Purple"} spaces = {getObjectFromGUID('e46948'), getObjectFromGUID('e184bc'), getObjectFromGUID('db1764'), getObjectFromGUID('53f9fd'), getObjectFromGUID('c7b74c'), getObjectFromGUID('8c2d8c'), getObjectFromGUID('4e11b2'), getObjectFromGUID('11e8ca'), getObjectFromGUID('77e410'), getObjectFromGUID('eab3a7'), getObjectFromGUID('0b2097'), getObjectFromGUID('9dc50e'), getObjectFromGUID('1a92c2'), getObjectFromGUID('46e84d'), getObjectFromGUID('40f8c2'), getObjectFromGUID('86645c'), getObjectFromGUID('4da1a7'), getObjectFromGUID('54add9'), getObjectFromGUID('9f527d'), getObjectFromGUID('dad0d1')} playerArea = {} --table.remove(spaces, int) while #spaces >= thisNum do table.remove(spaces, thisNum) end function onCollisionEnter(collision_info) -- collision_info table: -- collision_object Object -- contact_points Table {Vector, ...} -- relative_velocity Vector card = collision_info.collision_object cardNum = tonumber(card.getName()) cardCol = card_Colors[card.getDescription()] line = {} --setNotes(#spaces) Wait.condition(function() print(#spaces) for i, space in ipairs(spaces) do sCard = space.getVar("card") table.insert(line, #line+1, sCard) --print(space.getGMNotes()) --print(space.call("getCard")) end end , function() return card.resting end , 5, function() return print("시간초과") end) outCard() --print(cardNum) --print(cardCol) --print(thisNum) end function ono () end function outCard() local tempList = spaces local outNum = thisNum - 1 - cardNum while #tempList >= outNum do table.remove(tempList, outNum) end end colorGreyvisibleColor&r?g?b?id GridTypeLinesColor&rgbOpacity?ThickLinesSnappingOffsetBothSnappingxSize`ff@ySize`ff@PosOffset&xy?zLightingjLightIntensity G?LightColor&r?go_?b|?AmbientIntensity?AmbientTypeAmbientSkyColor&r?g?b?AmbientEquatorColor&r?g?b?AmbientGroundColor&r?g?b?ReflectionIntensity?LutIndexLutContribution?Hands*EnableDisableUnusedHidingComponentTagslabels0.displayedcardnormalizedcard1.displayeddecknormalizeddeck26displayed locationnormalized location3<displayed custom cardnormalized custom_card44displayedterrainnormalizedterrain5.displayedgoalnormalizedgoal6LdisplayedTourist destinationnormalizedtourist_destinationTurnspEnableTypeTurnOrderReverseSkipEmptyDisableInteractionsPassTurnsTurnColorDecalPalletT0LName_lineImageURLhttp://imgway.cz/v/Gyw.jpgSize?LuaScript----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\Global --[[ Lua code. See documentation: http://berserk-games.com/knowledgebase/scripting/ --]] --[[ The OnLoad function. This is called after everything in the game save finishes loading. Most of your script code goes here. --]] terrainColors = { ["조커"]="[00FFFF]", ["산"]="[A4A4A4]", ["황무지"]="[F5F5DC]", ["숲"]="[04B404]", ["물"]="[0174DF]", } function onload() --[[ print('Onload!') --]] end --[[ The Update function. This is called once per frame. --]] function update () --[[ print('Update loop!') --]] end function nextRound() getObjectFromGUID('a769df').call("nextRound") end function nextTerrain() terrainDeck = getTerrainDeck() if terrainDeck == nil then broadcastToAll("[FF0000]지형 덱이 바닥났습니다! 다음 라운드를 진행해 주세요.") return end local msg = "이번 지형은 " for i =1 , 2 do local card = terrainDeck.takeObject({ position = {-4.00, 2.50, 24.00 + 6.00 * (i-1)}, rotation = {0.00, 90.00, 0.00}, }) if terrainColors[card.getName()] ~= nil then msg = msg .. "[" .. terrainColors[card.getName()] .. card.getName() .. "[FFFFFF]] " else msg = msg .. "[" .. card.getName() .. "] " end end msg = msg .. "입니다!" broadcastToAll(msg) end function getTerrainDeck() local objects = getAllObjects() for index, object in ipairs(objects) do if object.tag == "Deck" and object.getName() == "지형 덱" and object.is_face_down then return object end end end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\GlobalLuaScriptStateXmlUI SnapPointsm0ePosition&x6y@8?z:Rotation&x倾ywV@zf@ObjectStates0.GUIDafc863NameCustom_AssetbundleTransformposX2posY"posZBrotX>rotY@WrotZ@K$оscaleX?scaleY?scaleZ?NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomAssetbundleAssetbundleURLehttp://cloud-3.steamusercontent.com/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/AssetbundleSecondaryURLMaterialIndexTypeIndexLoopingEffectIndexLuaScriptLuaScriptStateXmlUI1.GUIDc8edcaNameCustom_AssetbundleTransformposX2posY"posZB@rotX>rotYV@rotZ@K$оscaleX?scaleY?scaleZ?NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomAssetbundleAssetbundleURLehttp://cloud-3.steamusercontent.com/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/AssetbundleSecondaryURLMaterialIndexTypeIndexLoopingEffectIndexLuaScriptLuaScriptStateXmlUI2.GUID393bf7NameCustom_AssetbundleTransformposX2@posY"posZB@rotX>rotYf@rotZ@K$оscaleX?scaleY?scaleZ?NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomAssetbundleAssetbundleURLehttp://cloud-3.steamusercontent.com/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/AssetbundleSecondaryURLMaterialIndexTypeIndexLoopingEffectIndexLuaScriptLuaScriptStateXmlUI3.GUID12c65eNameCustom_AssetbundleTransformposX2@posY"posZBrotX>rotYp@rotZ@K$оscaleX?scaleY?scaleZ?NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomAssetbundleAssetbundleURLehttp://cloud-3.steamusercontent.com/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/AssetbundleSecondaryURLMaterialIndexTypeIndexLoopingEffectIndexLuaScriptLuaScriptStateXmlUI4CGUIDbd69bdNameChinese_Checkers_PieceTransformposX{B@posYУпposZ@\MrotXb$_?rotYf@rotZ8?scaleXef?scaleYef?scaleZef?NicknameFlex Table ControlDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsMaterialIndexLuaScript?tableHeightOffset = -9 function onSave() saved_data = JSON.encode({tid=tableImageData, cd=checkData}) --saved_data = "" return saved_data end function onload(saved_data) --Loads the tracking for if the game has started yet if saved_data ~= "" then local loaded_data = JSON.decode(saved_data) tableImageData = loaded_data.tid checkData = loaded_data.cd else tableImageData = {} checkData = {move=false, scale=false} end --Disables interactable status of objects with GUID in list for _, guid in ipairs(ref_noninteractable) do local obj = getObjectFromGUID(guid) if obj then obj.interactable = false end end --Establish references to table parts obj_leg1 = getObjectFromGUID("afc863") obj_leg2 = getObjectFromGUID("c8edca") obj_leg3 = getObjectFromGUID("393bf7") obj_leg4 = getObjectFromGUID("12c65e") obj_surface = getObjectFromGUID("4ee1f2") obj_side_top = getObjectFromGUID("35b95f") obj_side_bot = getObjectFromGUID("f938a2") obj_side_lef = getObjectFromGUID("9f95fd") obj_side_rig = getObjectFromGUID("5af8f2") controlActive = false createOpenCloseButton() end --Activation/deactivation of control panel --Activated by clicking on function click_toggleControl(_, color) if permissionCheck(color) then if not controlActive then --Activate control panel controlActive = true self.clearButtons() createOpenCloseButton() createSurfaceInput() createSurfaceButtons() createScaleInput() createScaleButtons() else --Deactivate control panel controlActive = false self.clearButtons() self.clearInputs() createOpenCloseButton() end end end --Table surface control --Changes table surface function click_applySurface(_, color) if permissionCheck(color) then updateSurface() broadcastToAll("New Table Image Applied", {0.2,0.9,0.2}) end end --Saves table surface function click_saveSurface(_, color) if permissionCheck(color) then local nickname = self.getInputs()[1].value local url = self.getInputs()[2].value if nickname == "" then --No nickname broadcastToAll("Please supply a nickname for this save.", {0.9,0.2,0.2}) else --Nickname exists if findInImageDataIndex(url, nickname) == nil then --Save doesn't exist already table.insert(tableImageData, {url=url, name=nickname}) broadcastToAll("Image URL saved to memory.", {0.2,0.9,0.2}) --Refresh buttons self.clearButtons() createOpenCloseButton() createSurfaceButtons() createScaleButtons() else --Save exists already broadcastToAll("Memory already contains a save with this Name or URL. Delete it first.", {0.9,0.2,0.2}) end end end end --Loads table surface function click_loadMemory(_, color, index) if permissionCheck(color) then self.editInput({index=0, value=tableImageData[index].name}) self.editInput({index=1, value=tableImageData[index].url}) updateSurface() broadcastToAll("Table Image Loaded", {0.2,0.9,0.2}) end end --Deletes table surface function click_deleteMemory(_, color, index) if permissionCheck(color) then table.remove(tableImageData, index) self.clearButtons() createOpenCloseButton() createSurfaceButtons() createScaleButtons() broadcastToAll("Element Removed from Memory", {0.2,0.9,0.2}) end end --Updates surface from the values in the input field function updateSurface() local customInfo = obj_surface.getCustomObject() customInfo.diffuse = self.getInputs()[2].value obj_surface.setCustomObject(customInfo) obj_surface = obj_surface.reload() end --Table Scale control --Applies Scale to table pieces function click_applyScale(_, color) if permissionCheck(color) then local newWidth = tonumber(self.getInputs()[3].value) local newDepth = tonumber(self.getInputs()[4].value) if type(newWidth) ~= "number" then broadcastToAll("Invalid Width", {0.9,0.2,0.2}) return elseif type(newDepth) ~= "number" then broadcastToAll("Invalid Depth", {0.9,0.2,0.2}) return elseif newWidth<0.1 or newDepth<0.1 then broadcastToAll("Scale cannot go below 0.1", {0.9,0.2,0.2}) return elseif newWidth>12 or newDepth>12 then broadcastToAll("Scale should not go over 12 (world size limitation)", {0.9,0.2,0.2}) return else changeTableScale(math.abs(newWidth), math.abs(newDepth)) broadcastToAll("Scale applied.", {0.2,0.9,0.2}) end end end --Checks/unchecks move box for hands function click_checkMove(_, color) if permissionCheck(color) then local find_func = function(o) return o.click_function=="click_checkMove" end if checkData.move == true then checkData.move = false local buttonEntry = findButton(self, find_func) self.editButton({index=buttonEntry.index, label=""}) else checkData.move = true local buttonEntry = findButton(self, find_func) self.editButton({index=buttonEntry.index, label=string.char(10008)}) end end end --Checks/unchecks scale box for hands --This button was disabled for technical reasons --[[ function click_checkScale(_, color) if permissionCheck(color) then local find_func = function(o) return o.click_function=="click_checkScale" end if checkData.scale == true then checkData.scale = false local buttonEntry = findButton(self, find_func) self.editButton({index=buttonEntry.index, label=""}) else checkData.scale = true local buttonEntry = findButton(self, find_func) self.editButton({index=buttonEntry.index, label=string.char(10008)}) end end end ]] --Alters scale of elements and moves them function changeTableScale(width, depth) --Scaling factors used to translate scale to position offset local width2pos = (width-1) * 18 local depth2pos = (depth-1) * 18 --Hand zone movement if checkData.move == true then for _, pc in ipairs(ref_playerColor) do if Player[pc].getHandCount() > 0 then moveHandZone(Player[pc], width2pos, depth2pos) end end end --Hand zone scaling --The button to enable this was disabled for technical reasons if checkData.scale == true then for _, pc in ipairs(ref_playerColor) do if Player[pc].getHandCount() > 0 then scaleHandZone(Player[pc], width, depth) end end end --Resizing table elements obj_side_top.setScale({width, 1, 1}) obj_side_bot.setScale({width, 1, 1}) obj_side_lef.setScale({depth, 1, 1}) obj_side_rig.setScale({depth, 1, 1}) obj_surface.setScale({width, 1, depth}) --Moving table elements to accomodate new scale obj_side_lef.setPosition({-width2pos,tableHeightOffset,0}) obj_side_rig.setPosition({ width2pos,tableHeightOffset,0}) obj_side_top.setPosition({0,tableHeightOffset, depth2pos}) obj_side_bot.setPosition({0,tableHeightOffset,-depth2pos}) obj_leg1.setPosition({-width2pos,tableHeightOffset,-depth2pos}) obj_leg2.setPosition({-width2pos,tableHeightOffset, depth2pos}) obj_leg3.setPosition({ width2pos,tableHeightOffset, depth2pos}) obj_leg4.setPosition({ width2pos,tableHeightOffset,-depth2pos}) self.setPosition(obj_leg4.positionToWorld({-22.12, 8.74,-19.16})) --Only enabled when changing tableHeightOffset --obj_surface.setPosition({0,tableHeightOffset,0}) end --Move hand zone, p=player reference, facts are scaling factors function moveHandZone(p, width2pos, depth2pos) local widthX = obj_side_rig.getPosition().x local depthZ = obj_side_top.getPosition().z for i=1, p.getHandCount() do local handT = p.getHandTransform() local pos = handT.position local y = handT.rotation.y if y<45 or y>320 or y>135 and y<225 then if pos.z > 0 then pos.z = pos.z + depth2pos - depthZ else pos.z = pos.z - depth2pos + depthZ end else if pos.x > 0 then pos.x = pos.x + width2pos - widthX else pos.x = pos.x - width2pos + widthX end end --Only enabled when changing tableHeightOffset --pos.y = tableHeightOffset + 14 handT.position = pos p.setHandTransform(handT, i) end end ---Scales hand zones, p=player reference, facts are scaling factors function scaleHandZone(p, width, depth) local widthFact = width / obj_side_top.getScale().x local depthFact = depth / obj_side_lef.getScale().x for i=1, p.getHandCount() do local handT = p.getHandTransform() local scale = handT.scale local y = handT.rotation.y if y<45 or y>320 or y>135 and y<225 then scale.x = scale.x * widthFact else scale.x = scale.x * depthFact end handT.scale = scale p.setHandTransform(handT, i) end end --Information gathering --Checks if a color is promoted or host function permissionCheck(color) if Player[color].host==true or Player[color].promoted==true then return true else return false end end --Locates a string saved within memory file function findInImageDataIndex(...) for _, str in ipairs({...}) do for i, v in ipairs(tableImageData) do if v.url == str or v.name == str then return i end end end return nil end --Round number (num) to the Nth decimal (dec) function round(num, dec) local mult = 10^(dec or 0) return math.floor(num * mult + 0.5) / mult end --Locates a button with a helper function function findButton(obj, func) if func==nil then error("No func supplied to findButton") end for _, v in ipairs(obj.getButtons()) do if func(v) then return v end end return nil end --Creation of buttons/inputs function createOpenCloseButton() local tooltip = "Open Table Control Panel" if controlActive then tooltip = "Close Table Control Panel" end self.createButton({ click_function="click_toggleControl", function_owner=self, position={0,0,0}, rotation={-45,0,0}, height=400, width=400, color={1,1,1,0}, tooltip=tooltip }) end function createSurfaceInput() local currentURL = obj_surface.getCustomObject().diffuse local nickname = "" if findInImageDataIndex(currentURL) ~= nil then nickname = tableImageData[findInImageDataIndex(currentURL)].name end self.createInput({ label="Nickname", input_function="none", function_owner=self, alignment=3, position={0,0,2}, height=224, width=4000, font_size=200, tooltip="Enter nickname for table image (only used for save)", value=nickname }) self.createInput({ label="URL", input_function="none", function_owner=self, alignment=3, position={0,0,3}, height=224, width=4000, font_size=200, tooltip="Enter URL for tabletop image", value=currentURL }) end function createSurfaceButtons() --Label self.createButton({ label="Tabletop Surface Image", click_function="none", position={0,0,1}, height=0, width=0, font_size=300, font_color={1,1,1} }) --Functional self.createButton({ label="Apply Image\nTo Table", click_function="click_applySurface", function_owner=self, tooltip="Apply URL as table image", position={2,0,4}, height=440, width=1400, font_size=200, }) self.createButton({ label="Save Image\nTo Memory", click_function="click_saveSurface", function_owner=self, tooltip="Record URL into memory (requires nickname)", position={-2,0,4}, height=440, width=1400, font_size=200, }) --Label self.createButton({ label="Load From Memory", click_function="none", position={0,0,5.5}, height=0, width=0, font_size=300, font_color={1,1,1} }) --Saves, created dynamically from memory file for i, memoryEntry in ipairs(tableImageData) do --Load local funcName = i.."loadMemory" local func = function(x,y) click_loadMemory(x,y,i) end self.setVar(funcName, func) self.createButton({ label=memoryEntry.name, click_function=funcName, function_owner=self, tooltip=memoryEntry.url, font_size=200, position={-0.6,0,6.5+0.5*(i-1)}, height=240, width=3300, }) --Delete local funcName = i.."deleteMemory" local func = function(x,y) click_deleteMemory(x,y,i) end self.setVar(funcName, func) self.createButton({ label="DELETE", click_function=funcName, function_owner=self, tooltip="", position={3.6,0,6.5+0.5*(i-1)}, height=240, width=600, font_size=160, font_color={1,0,0}, color={0.8,0.8,0.8} }) end end function createScaleInput() self.createInput({ label=string.char(8644), input_function="none", function_owner=self, alignment=3, position={-8.5,0,2}, height=224, width=400, font_size=200, tooltip="Table Width", value=round(obj_side_top.getScale().x, 1) }) self.createInput({ label=string.char(8645), input_function="none", function_owner=self, alignment=3, position={-7.5,0,2}, height=224, width=400, font_size=200, tooltip="Table Depth", value=round(obj_side_lef.getScale().x, 1) }) end function createScaleButtons() --Labels self.createButton({ label="Table Scale", click_function="none", position={-8,0,1}, height=0, width=0, font_size=300, font_color={1,1,1} }) self.createButton({ label=string.char(8644).." "..string.char(8645), click_function="none", position={-8,0,2}, height=0, width=0, font_size=300, font_color={1,1,1} }) self.createButton({ label="Move Hands:", click_function="none", position={-8.3,0,3}, height=0, width=0, font_size=200, font_color={1,1,1} }) --Disabled due to me removing the feature for technical reasons --[[ self.createButton({ label="Scale Hands:", click_function="none", position={-8.3,0,4}, height=0, width=0, font_size=200, font_color={1,1,1} }) ]] --Checkboxes local label = "" if checkData.move == true then label = string.char(10008) end self.createButton({ label=label, click_function="click_checkMove", function_owner=self, tooltip="Check to move hands when table is rescaled", position={-6.8,0,3}, height=224, width=224, font_size=200, }) --[[ local label = "" if checkData.scale == true then label = string.char(10008) end self.createButton({ label=label, click_function="click_checkScale", function_owner=self, tooltip="Check to scale the width of hands when table is rescaled", position={-6.8,0,4}, height=224, width=224, font_size=200, }) ]] --Apply button self.createButton({ label="Apply Scale", click_function="click_applyScale", function_owner=self, tooltip="Apply width/depth to table", position={-8,0,4}, height=440, width=1400, font_size=200, }) end --Data tables ref_noninteractable = { "afc863","c8edca","393bf7","12c65e","f938a2","9f95fd","35b95f", "5af8f2","4ee1f2","bd69bd" } ref_playerColor = { "White", "Brown", "Red", "Orange", "Yellow", "Green", "Teal", "Blue", "Purple", "Pink", "Black" } --Dummy function, absorbs unwanted triggers function none() endLuaScriptState{"cd":{"move":true,"scale":false},"tid":[{"name":"Felt - Green","url":"https://i.imgur.com/eHXDjyy.jpg"},{"name":"Felt - Red","url":"https://i.imgur.com/DbPelDi.jpg"},{"name":"Felt - Grey","url":"https://i.imgur.com/N0O6aqj.jpg"}]}XmlUI5.GUIDf938a2NameCustom_AssetbundleTransformposXposY"posZBrotX ܥ<rotYrotZscaleX@scaleY?scaleZ?NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomAssetbundleAssetbundleURLehttp://cloud-3.steamusercontent.com/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/AssetbundleSecondaryURLMaterialIndexTypeIndexLoopingEffectIndexLuaScriptLuaScriptStateXmlUI6.GUID9f95fdNameCustom_AssetbundleTransformposX2posY"posZrotXrotYV@rotZscaleX@scaleY?scaleZ?NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomAssetbundleAssetbundleURLehttp://cloud-3.steamusercontent.com/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/AssetbundleSecondaryURLMaterialIndexTypeIndexLoopingEffectIndexLuaScriptLuaScriptStateXmlUI7.GUID35b95fNameCustom_AssetbundleTransformposXposY"posZB@rotX ܥ<rotYf@rotZscaleX@scaleY?scaleZ?NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomAssetbundleAssetbundleURLehttp://cloud-3.steamusercontent.com/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/AssetbundleSecondaryURLMaterialIndexTypeIndexLoopingEffectIndexLuaScriptLuaScriptStateXmlUI8.GUID5af8f2NameCustom_AssetbundleTransformposX2@posY"posZrotXrotYp@rotZscaleX@scaleY?scaleZ?NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomAssetbundleAssetbundleURLehttp://cloud-3.steamusercontent.com/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/AssetbundleSecondaryURLMaterialIndexTypeIndexLoopingEffectIndexLuaScriptLuaScriptStateXmlUI9dGUIDedfd40Name HandTriggerTransformposXBposY@posZ@@rotXrotYV@rotZscaleX@y'@scaleY@scaleZ@OQ@NicknameDescriptionGMNotesPurpleAltLookAngle&xyzColorDiffuse1r@b?g?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorPurpleLuaScriptLuaScriptStateXmlUI10^GUID258934Name HandTriggerTransformposXBposY@posZ@@@rotXrotYV@rotZscaleX@y'@scaleY@scaleZ@OQ@NicknameDescriptionGMNotesRedAltLookAngle&xyzColorDiffuse1r Zd?g ?ba?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorRedLuaScriptLuaScriptStateXmlUI11dGUID7a77d2Name HandTriggerTransformposXposY@posZK@rotXrotYf@rotZscaleX@y'@scaleY@scaleZ@OQ@NicknameDescriptionGMNotesOrangeAltLookAngle&xyzColorDiffuse1r ?g?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorOrangeLuaScriptLuaScriptStateXmlUI12dGUID4b64d0Name HandTriggerTransformposXposY@posZKrotXrotYrotZscaleX`'@scaleY @scaleZ%*@NicknameDescriptionGMNotesYellowAltLookAngle&xyzColorDiffuse1r?gj?b@?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorYellowLuaScriptLuaScriptStateXmlUI13bGUIDe5fadcName HandTriggerTransformposXBposY@posZrotXrotYV@rotZscaleX@y'@scaleY@scaleZ@bQ@NicknameDescriptionGMNotesBrownAltLookAngle&xyzColorDiffuse1rZ?gh?b`= ?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorBrownLuaScriptLuaScriptStateXmlUI14`GUIDacbbccName HandTriggerTransformposXB@posY@posZ@@rotXrotYp@rotZscaleX@y'@scaleY@scaleZ@OQ@NicknameDescriptionGMNotesBlueAltLookAngle&xyzColorDiffuse1r ?5?g?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorBlueLuaScriptLuaScriptStateXmlUI15CGUID519201NameChinese_Checkers_PieceTransformposX{B@posYУпposZ@\MrotXb$_?rotYf@rotZ8?scaleXef?scaleYef?scaleZef?NicknameFlex Table ControlDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsMaterialIndexLuaScript?tableHeightOffset = -9 function onSave() saved_data = JSON.encode({tid=tableImageData, cd=checkData}) --saved_data = "" return saved_data end function onload(saved_data) --Loads the tracking for if the game has started yet if saved_data ~= "" then local loaded_data = JSON.decode(saved_data) tableImageData = loaded_data.tid checkData = loaded_data.cd else tableImageData = {} checkData = {move=false, scale=false} end --Disables interactable status of objects with GUID in list for _, guid in ipairs(ref_noninteractable) do local obj = getObjectFromGUID(guid) if obj then obj.interactable = false end end --Establish references to table parts obj_leg1 = getObjectFromGUID("afc863") obj_leg2 = getObjectFromGUID("c8edca") obj_leg3 = getObjectFromGUID("393bf7") obj_leg4 = getObjectFromGUID("12c65e") obj_surface = getObjectFromGUID("4ee1f2") obj_side_top = getObjectFromGUID("35b95f") obj_side_bot = getObjectFromGUID("f938a2") obj_side_lef = getObjectFromGUID("9f95fd") obj_side_rig = getObjectFromGUID("5af8f2") controlActive = false createOpenCloseButton() end --Activation/deactivation of control panel --Activated by clicking on function click_toggleControl(_, color) if permissionCheck(color) then if not controlActive then --Activate control panel controlActive = true self.clearButtons() createOpenCloseButton() createSurfaceInput() createSurfaceButtons() createScaleInput() createScaleButtons() else --Deactivate control panel controlActive = false self.clearButtons() self.clearInputs() createOpenCloseButton() end end end --Table surface control --Changes table surface function click_applySurface(_, color) if permissionCheck(color) then updateSurface() broadcastToAll("New Table Image Applied", {0.2,0.9,0.2}) end end --Saves table surface function click_saveSurface(_, color) if permissionCheck(color) then local nickname = self.getInputs()[1].value local url = self.getInputs()[2].value if nickname == "" then --No nickname broadcastToAll("Please supply a nickname for this save.", {0.9,0.2,0.2}) else --Nickname exists if findInImageDataIndex(url, nickname) == nil then --Save doesn't exist already table.insert(tableImageData, {url=url, name=nickname}) broadcastToAll("Image URL saved to memory.", {0.2,0.9,0.2}) --Refresh buttons self.clearButtons() createOpenCloseButton() createSurfaceButtons() createScaleButtons() else --Save exists already broadcastToAll("Memory already contains a save with this Name or URL. Delete it first.", {0.9,0.2,0.2}) end end end end --Loads table surface function click_loadMemory(_, color, index) if permissionCheck(color) then self.editInput({index=0, value=tableImageData[index].name}) self.editInput({index=1, value=tableImageData[index].url}) updateSurface() broadcastToAll("Table Image Loaded", {0.2,0.9,0.2}) end end --Deletes table surface function click_deleteMemory(_, color, index) if permissionCheck(color) then table.remove(tableImageData, index) self.clearButtons() createOpenCloseButton() createSurfaceButtons() createScaleButtons() broadcastToAll("Element Removed from Memory", {0.2,0.9,0.2}) end end --Updates surface from the values in the input field function updateSurface() local customInfo = obj_surface.getCustomObject() customInfo.diffuse = self.getInputs()[2].value obj_surface.setCustomObject(customInfo) obj_surface = obj_surface.reload() end --Table Scale control --Applies Scale to table pieces function click_applyScale(_, color) if permissionCheck(color) then local newWidth = tonumber(self.getInputs()[3].value) local newDepth = tonumber(self.getInputs()[4].value) if type(newWidth) ~= "number" then broadcastToAll("Invalid Width", {0.9,0.2,0.2}) return elseif type(newDepth) ~= "number" then broadcastToAll("Invalid Depth", {0.9,0.2,0.2}) return elseif newWidth<0.1 or newDepth<0.1 then broadcastToAll("Scale cannot go below 0.1", {0.9,0.2,0.2}) return elseif newWidth>12 or newDepth>12 then broadcastToAll("Scale should not go over 12 (world size limitation)", {0.9,0.2,0.2}) return else changeTableScale(math.abs(newWidth), math.abs(newDepth)) broadcastToAll("Scale applied.", {0.2,0.9,0.2}) end end end --Checks/unchecks move box for hands function click_checkMove(_, color) if permissionCheck(color) then local find_func = function(o) return o.click_function=="click_checkMove" end if checkData.move == true then checkData.move = false local buttonEntry = findButton(self, find_func) self.editButton({index=buttonEntry.index, label=""}) else checkData.move = true local buttonEntry = findButton(self, find_func) self.editButton({index=buttonEntry.index, label=string.char(10008)}) end end end --Checks/unchecks scale box for hands --This button was disabled for technical reasons --[[ function click_checkScale(_, color) if permissionCheck(color) then local find_func = function(o) return o.click_function=="click_checkScale" end if checkData.scale == true then checkData.scale = false local buttonEntry = findButton(self, find_func) self.editButton({index=buttonEntry.index, label=""}) else checkData.scale = true local buttonEntry = findButton(self, find_func) self.editButton({index=buttonEntry.index, label=string.char(10008)}) end end end ]] --Alters scale of elements and moves them function changeTableScale(width, depth) --Scaling factors used to translate scale to position offset local width2pos = (width-1) * 18 local depth2pos = (depth-1) * 18 --Hand zone movement if checkData.move == true then for _, pc in ipairs(ref_playerColor) do if Player[pc].getHandCount() > 0 then moveHandZone(Player[pc], width2pos, depth2pos) end end end --Hand zone scaling --The button to enable this was disabled for technical reasons if checkData.scale == true then for _, pc in ipairs(ref_playerColor) do if Player[pc].getHandCount() > 0 then scaleHandZone(Player[pc], width, depth) end end end --Resizing table elements obj_side_top.setScale({width, 1, 1}) obj_side_bot.setScale({width, 1, 1}) obj_side_lef.setScale({depth, 1, 1}) obj_side_rig.setScale({depth, 1, 1}) obj_surface.setScale({width, 1, depth}) --Moving table elements to accomodate new scale obj_side_lef.setPosition({-width2pos,tableHeightOffset,0}) obj_side_rig.setPosition({ width2pos,tableHeightOffset,0}) obj_side_top.setPosition({0,tableHeightOffset, depth2pos}) obj_side_bot.setPosition({0,tableHeightOffset,-depth2pos}) obj_leg1.setPosition({-width2pos,tableHeightOffset,-depth2pos}) obj_leg2.setPosition({-width2pos,tableHeightOffset, depth2pos}) obj_leg3.setPosition({ width2pos,tableHeightOffset, depth2pos}) obj_leg4.setPosition({ width2pos,tableHeightOffset,-depth2pos}) self.setPosition(obj_leg4.positionToWorld({-22.12, 8.74,-19.16})) --Only enabled when changing tableHeightOffset --obj_surface.setPosition({0,tableHeightOffset,0}) end --Move hand zone, p=player reference, facts are scaling factors function moveHandZone(p, width2pos, depth2pos) local widthX = obj_side_rig.getPosition().x local depthZ = obj_side_top.getPosition().z for i=1, p.getHandCount() do local handT = p.getHandTransform() local pos = handT.position local y = handT.rotation.y if y<45 or y>320 or y>135 and y<225 then if pos.z > 0 then pos.z = pos.z + depth2pos - depthZ else pos.z = pos.z - depth2pos + depthZ end else if pos.x > 0 then pos.x = pos.x + width2pos - widthX else pos.x = pos.x - width2pos + widthX end end --Only enabled when changing tableHeightOffset --pos.y = tableHeightOffset + 14 handT.position = pos p.setHandTransform(handT, i) end end ---Scales hand zones, p=player reference, facts are scaling factors function scaleHandZone(p, width, depth) local widthFact = width / obj_side_top.getScale().x local depthFact = depth / obj_side_lef.getScale().x for i=1, p.getHandCount() do local handT = p.getHandTransform() local scale = handT.scale local y = handT.rotation.y if y<45 or y>320 or y>135 and y<225 then scale.x = scale.x * widthFact else scale.x = scale.x * depthFact end handT.scale = scale p.setHandTransform(handT, i) end end --Information gathering --Checks if a color is promoted or host function permissionCheck(color) if Player[color].host==true or Player[color].promoted==true then return true else return false end end --Locates a string saved within memory file function findInImageDataIndex(...) for _, str in ipairs({...}) do for i, v in ipairs(tableImageData) do if v.url == str or v.name == str then return i end end end return nil end --Round number (num) to the Nth decimal (dec) function round(num, dec) local mult = 10^(dec or 0) return math.floor(num * mult + 0.5) / mult end --Locates a button with a helper function function findButton(obj, func) if func==nil then error("No func supplied to findButton") end for _, v in ipairs(obj.getButtons()) do if func(v) then return v end end return nil end --Creation of buttons/inputs function createOpenCloseButton() local tooltip = "Open Table Control Panel" if controlActive then tooltip = "Close Table Control Panel" end self.createButton({ click_function="click_toggleControl", function_owner=self, position={0,0,0}, rotation={-45,0,0}, height=400, width=400, color={1,1,1,0}, tooltip=tooltip }) end function createSurfaceInput() local currentURL = obj_surface.getCustomObject().diffuse local nickname = "" if findInImageDataIndex(currentURL) ~= nil then nickname = tableImageData[findInImageDataIndex(currentURL)].name end self.createInput({ label="Nickname", input_function="none", function_owner=self, alignment=3, position={0,0,2}, height=224, width=4000, font_size=200, tooltip="Enter nickname for table image (only used for save)", value=nickname }) self.createInput({ label="URL", input_function="none", function_owner=self, alignment=3, position={0,0,3}, height=224, width=4000, font_size=200, tooltip="Enter URL for tabletop image", value=currentURL }) end function createSurfaceButtons() --Label self.createButton({ label="Tabletop Surface Image", click_function="none", position={0,0,1}, height=0, width=0, font_size=300, font_color={1,1,1} }) --Functional self.createButton({ label="Apply Image\nTo Table", click_function="click_applySurface", function_owner=self, tooltip="Apply URL as table image", position={2,0,4}, height=440, width=1400, font_size=200, }) self.createButton({ label="Save Image\nTo Memory", click_function="click_saveSurface", function_owner=self, tooltip="Record URL into memory (requires nickname)", position={-2,0,4}, height=440, width=1400, font_size=200, }) --Label self.createButton({ label="Load From Memory", click_function="none", position={0,0,5.5}, height=0, width=0, font_size=300, font_color={1,1,1} }) --Saves, created dynamically from memory file for i, memoryEntry in ipairs(tableImageData) do --Load local funcName = i.."loadMemory" local func = function(x,y) click_loadMemory(x,y,i) end self.setVar(funcName, func) self.createButton({ label=memoryEntry.name, click_function=funcName, function_owner=self, tooltip=memoryEntry.url, font_size=200, position={-0.6,0,6.5+0.5*(i-1)}, height=240, width=3300, }) --Delete local funcName = i.."deleteMemory" local func = function(x,y) click_deleteMemory(x,y,i) end self.setVar(funcName, func) self.createButton({ label="DELETE", click_function=funcName, function_owner=self, tooltip="", position={3.6,0,6.5+0.5*(i-1)}, height=240, width=600, font_size=160, font_color={1,0,0}, color={0.8,0.8,0.8} }) end end function createScaleInput() self.createInput({ label=string.char(8644), input_function="none", function_owner=self, alignment=3, position={-8.5,0,2}, height=224, width=400, font_size=200, tooltip="Table Width", value=round(obj_side_top.getScale().x, 1) }) self.createInput({ label=string.char(8645), input_function="none", function_owner=self, alignment=3, position={-7.5,0,2}, height=224, width=400, font_size=200, tooltip="Table Depth", value=round(obj_side_lef.getScale().x, 1) }) end function createScaleButtons() --Labels self.createButton({ label="Table Scale", click_function="none", position={-8,0,1}, height=0, width=0, font_size=300, font_color={1,1,1} }) self.createButton({ label=string.char(8644).." "..string.char(8645), click_function="none", position={-8,0,2}, height=0, width=0, font_size=300, font_color={1,1,1} }) self.createButton({ label="Move Hands:", click_function="none", position={-8.3,0,3}, height=0, width=0, font_size=200, font_color={1,1,1} }) --Disabled due to me removing the feature for technical reasons --[[ self.createButton({ label="Scale Hands:", click_function="none", position={-8.3,0,4}, height=0, width=0, font_size=200, font_color={1,1,1} }) ]] --Checkboxes local label = "" if checkData.move == true then label = string.char(10008) end self.createButton({ label=label, click_function="click_checkMove", function_owner=self, tooltip="Check to move hands when table is rescaled", position={-6.8,0,3}, height=224, width=224, font_size=200, }) --[[ local label = "" if checkData.scale == true then label = string.char(10008) end self.createButton({ label=label, click_function="click_checkScale", function_owner=self, tooltip="Check to scale the width of hands when table is rescaled", position={-6.8,0,4}, height=224, width=224, font_size=200, }) ]] --Apply button self.createButton({ label="Apply Scale", click_function="click_applyScale", function_owner=self, tooltip="Apply width/depth to table", position={-8,0,4}, height=440, width=1400, font_size=200, }) end --Data tables ref_noninteractable = { "afc863","c8edca","393bf7","12c65e","f938a2","9f95fd","35b95f", "5af8f2","4ee1f2","bd69bd" } ref_playerColor = { "White", "Brown", "Red", "Orange", "Yellow", "Green", "Teal", "Blue", "Purple", "Pink", "Black" } --Dummy function, absorbs unwanted triggers function none() endLuaScriptState{"cd":{"move":true,"scale":false},"tid":[{"name":"Felt - Green","url":"https://i.imgur.com/eHXDjyy.jpg"},{"name":"Felt - Red","url":"https://i.imgur.com/DbPelDi.jpg"},{"name":"Felt - Grey","url":"https://i.imgur.com/N0O6aqj.jpg"}]}XmlUI16bGUID29e178Name HandTriggerTransformposXB@posY@posZ@@@rotXrotYp@rotZscaleX@y'@scaleY@scaleZ@OQ@NicknameDescriptionGMNotesGreenAltLookAngle&xyzColorDiffuse1rt?gn?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorGreenLuaScriptLuaScriptStateXmlUI17`GUID885572Name HandTriggerTransformposXB@posY@posZrotXrotYp@rotZscaleX@y'@scaleY@scaleZ@OQ@NicknameDescriptionGMNotesTealAltLookAngle&xyzColorDiffuse1r?g?5?b l?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorTealLuaScriptLuaScriptStateXmlUI18GUID4ee1f2Name Custom_ModelTransformposXposY"posZrotXrotYC _rotZscaleX@scaleY?scaleZ@NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomMeshMeshURLehttp://cloud-3.steamusercontent.com/ugc/879750610978796176/4A5A65543B98BCFBF57E910D06EC984208223D38/DiffuseURL https://i.imgur.com/N0O6aqj.jpgNormalURLColliderURLConvexMaterialIndexTypeIndexCustomShaderSpecularColor&r?g?b?SpecularIntensitySpecularSharpness@FresnelStrengthCastShadowsLuaScriptLuaScriptStateXmlUI19sGUIDa769dfNameChecker_blackTransformposXBposY@?posZL@rotX@>rotY`@rotZ >scaleX @scaleY @scaleZ @Nickname게임 시작DescriptionGMNotesAltLookAngle&xyzColorDiffuse1rgbaLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript,q----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\button loading = true assets = {} players = { total = 0, waiting = 0, ready = 0 } readyText = false waitingText = true currentPlayers = {} playerList = { white = false, brown = false, red = false, orange = false, yellow = false, green = false, teal = false, blue = false, purple = false, pink = false, } card_Colors = {["노랑"] = "Yellow", ["파랑"] = "Blue", ["빨강"] = "Red", ["검정"] = "Black", ["초록"] = "Green", ["보라"] = "Purple"} simColors = {"노랑", "파랑", "빨강", "검정", "초록", "보라"} SixSymbolColor = {White = '[FFFFFF]', Brown = '[703A16]', Red = '[DA1917]', Orange = '[F3631C]', Yellow = '[E6E42B]', Green = '[30B22A]', Teal = '[20B09A]', Blue = '[1E87FF]', Purple = '[9F1FEF]', Pink = '[F46FCD]'} playerArea = {["Blue"] = getObjectFromGUID('1f223b'), ["Teal"] = getObjectFromGUID('3fee9c'), ["Green"] = getObjectFromGUID('60b45a'), ["Orange"] = getObjectFromGUID('d5e44a'), ["Red"] = getObjectFromGUID('1f5352'), ["Brown"] = getObjectFromGUID('d362d6'), ["Purple"] = getObjectFromGUID('65d6f1'), ["Yellow"] = getObjectFromGUID('c10f83')} deck = nil turnOrder = {"Yellow", "Purple", "Brown", "Red", "Orange", "Green", "Teal", "Blue"} tempOrder = {} tourExp = false hard = 1 realSeatedPlayers = {} loaded = { cards = false, deck = false, locationDeck = false, currentLocationCard = false, currentLocation = false, delGoalDeck = false, goalDeck = false, delTourDeck = false, tourDeck = false, terrainDeck = false, } function onload() self.createButton({ click_function = 'setup_auto', label = '게임시작', function_owner = self, position = {0, 0.3, 0}, rotation = {0, 0, 0}, width = 1400, height = 500, font_size = 200}) self.createButton({ click_function = 'nextRound', label = '다음 라운드', function_owner = self, position = {0, 0.3, 1.5}, rotation = {0, 0, 0}, width = 1400, height = 500, font_size = 200}) self.createButton({ click_function = 'useExp', label = '관광지\n확장 사용 X', function_owner = self, position = {-3, 0.3, 1.5}, rotation = {0, 0, 0}, width = 800, height = 400, font_size = 100}) self.createButton({ click_function = 'diffToggle', label = '기본 맵', function_owner = self, position = {-3, 0.3, 0}, rotation = {0, 0, 0}, width = 800, height = 400, font_size = 100}) self.createButton({ click_function = 'toggleUI', label = 'UI 보기/감추기', function_owner = self, position = {3, 0.3, 0}, rotation = {0, 0, 0}, width = 1400, height = 500, tooltip = "좌클릭:레디, 우클릭: 상단 버튼", font_size = 200}) self.createButton({ click_function = 'nextTerra', label = '다음 지형', function_owner = self, position = {3, 0.3, 1.5}, rotation = {0, 0, 0}, width = 1400, height = 500, font_size = 200}) currentPlayers = Player.getPlayers() for i, color in ipairs(getSeatedPlayers()) do if not(color == 'Grey' or color == 'Black') then table.insert(realSeatedPlayers, #realSeatedPlayers+1, color) end end xmlCode = [[ ]] for color,_ in pairs(playerList) do xmlCode = xmlCode..[[ ]] end xmlCode = xmlCode..[[ ]] for color,_ in pairs(playerList) do xmlCode = xmlCode..[[ ]] end for i,color in pairs(Player.getAvailableColors()) do if not(color == 'White' or color == 'Pink' or color == 'Grey' or color == 'Black') then xmlCode = xmlCode..[[ ]] end end xmlCode = xmlCode..[[ ]] Wait.time(function() Global.UI.setXml(Global.UI.getXml() .. xmlCode) end, 1) Wait.time(function() initializeList() end, 1.2) end function diffToggle() hard = hard + 1 setMap() if hard % 3 == 1 then self.editButton({ index = 3, label = '기본 맵', }) broadcastToAll("기본 맵을 사용합니다.") elseif hard % 3 == 2 then self.editButton({ index = 3, label = '넓은 맵', }) broadcastToAll("더 넓은 맵을 사용합니다.") elseif hard % 3 == 0 then self.editButton({ index = 3, label = '항구 맵', }) broadcastToAll("항구 맵을 사용합니다.") end end function useExp() tourExp = not tourExp if tourExp then self.editButton({ index = 2, label = '관광지\n확장 사용 O', }) broadcastToAll("관광지 목표 카드를 사용합니다.") else self.editButton({ index = 2, label = '관광지\n확장 사용 X', }) broadcastToAll("관광지 목표 카드를 사용하지 않습니다.") end end function setup_auto() if checkPlayersSeated() then FirstPlayer() startLuaCoroutine(self, "setup") --getObjectFromGUID('b58cdb').call("buttonPress") --self.destruct() -- edit1() end end function setVillage() -- local villInfo = {"A", "B", "C", "D", "E", "A", "B", "C", "D", "E"} -- print(currentLocation) local villInfo = {} for i=1, 10 do table.insert(villInfo, #villInfo+1, string.split(currentLocation, " ")[i]) -- print(string.split(currentLocation, " ")[i]) end for i, color in ipairs(Player.getAvailableColors()) do playerArea[color].setInvisibleTo(tempOrder) playerArea[color].unregisterCollisions() end for i, color in ipairs(tempOrder) do -- print(color) if color ~= nil then local tempInfo = {nil,nil,nil,nil,nil,nil,nil,nil,nil,nil} for j=1, 10 do local newIndex = (i-j-1)%10 if newIndex == 0 then table.insert(tempInfo, j, villInfo[10]) else table.insert(tempInfo, j, villInfo[10-newIndex]) end end -- print(color) if playerArea[color] ~= nil then playerArea[color].clearButtons() playerArea[color].setInvisibleTo({}) playerArea[color].registerCollisions(true) playerArea[color].call("setVill", tempInfo) end -- playerArea[color].call("setMap") -- playerArea[color].reload() end end end function setMap() easyLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/' hardLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563295173/267D64CD7C9AEE32B7007F11A8A26C3A916A3305/' harderLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563298150/801A3DE3659B40B6C4D77200D0BE35BD6EA6BAB7/' for i, color in ipairs(Player.getAvailableColors()) do -- playerArea[color].call("mapUse") if hard%3 == 1 then playerArea[color].setCustomObject({image = easyLink,}) elseif hard%3 == 2 then playerArea[color].setCustomObject({image = hardLink,}) elseif hard%3 == 0 then playerArea[color].setCustomObject({image = harderLink,}) end playerArea[color] = playerArea[color].reload() -- print(color) end end function checkPlayersSeated() realSeatedPlayers = {} for i, color in ipairs(getSeatedPlayers()) do if not(color == 'Grey' or color == 'Black') then table.insert(realSeatedPlayers, #realSeatedPlayers+1, color) end end local seatedPlayers = realSeatedPlayers seatedPlayerColors = {} for _, playerColor in ipairs(seatedPlayers) do if playerColor == 'Brown' or playerColor == 'Red' or playerColor == 'Orange' or playerColor == 'Yellow' or playerColor == 'Green' or playerColor == 'Blue' or playerColor == 'Purple' or playerColor == 'Teal' or playerColor == 'Black' or playerColor == 'Grey' then table.insert(seatedPlayerColors, playerColor) end end if #seatedPlayerColors == 0 then broadcastToAll('게임 시작 전에 자리에 앉아 주세요.') return false end if #seatedPlayerColors ~= #seatedPlayers then broadcastToAll('모든 플레이어가 자리에 앉았는지 확인해 주세요.') return false end return true end function FirstPlayer() q = 1 PlayerColors = {} PlayerNames = {} for _, p in ipairs(getSeatedPlayers()) do PlayerColors[q] = Player[p].color PlayerNames[q] = Player[p].steam_name q = q+1 end RandomPlayer = math.random(1, #PlayerColors) + os.date('%S') RandomPlayer = math.fmod(RandomPlayer,#PlayerColors) if RandomPlayer < 0 then RandomPlayer = RandomPlayer + #PlayerColors end RandomPlayer = RandomPlayer + 1 pl = PlayerColors[RandomPlayer] broadcastToAll(SixSymbolColor[tostring(pl)] .. PlayerNames[RandomPlayer] .. '[FFFFFF] 님이 [i]선 플레이어 입니다[/i]') Turns.enable = true Turns.turn_color = pl --currentTurn = 1 tempOrder = {} for i, c in ipairs(turnOrder) do for j, sc in ipairs(realSeatedPlayers) do if #tempOrder == #realSeatedPlayers then break end if sc == pl then table.insert(tempOrder, #tempOrder+1, sc) if j+1 <= #realSeatedPlayers then pl = realSeatedPlayers[j+1] else pl = realSeatedPlayers[(j+1) % #realSeatedPlayers] end end end end end function nextRound() startLuaCoroutine(self, "nr") end function nextTerra() Global.call("nextTerrain") end function nr() loaded = { cards = false, deck = false, locationDeck = false, currentLocationCard = false, currentLocation = false, delGoalDeck = false, goalDeck = false, delTourDeck = false, tourDeck = false, terrainDeck = false, } while (loaded.cards == false) do cards = getTerrainCards() sleep(0.05 * #getSeatedPlayers()) loaded.cards = true end while (loaded.terrainDeck == false) do sleep(0.05 * #getSeatedPlayers()) terrainDeck = getTerrainDeck() if terrainDeck ~= nil then loaded.terrainDeck = true; end end terrainDeck.shuffle() -- print(locationDeck.hasTag("location")) return 1 end function setup() loaded = { cards = false, deck = false, locationDeck = false, currentLocationCard = false, currentLocation = false, delGoalDeck = false, goalDeck = false, delTourDeck = false, tourDeck = false, terrainDeck = false, } while (loaded.cards == false) do cards = getCards() sleep(0.05 * #getSeatedPlayers()) if cards ~= nil then loaded.cards = true; end end -- print(cards) sleep(0.05 * #getSeatedPlayers()) while (loaded.deck == false) do deck = getDeck() sleep(0.05 * #getSeatedPlayers()) if deck ~= nil then loaded.deck = true; end end -- print(deck) if deck == nil then broadcastToAll(SixSymbolColor["Red"] .. "덱을 찾을 수 없습니다!") return 1; end for i, c in ipairs(deck.getObjects()) do local card = deck.takeObject({ position = deck.getPosition() + vector(0, 3, 0), }) if card.getGMNotes() == "지형 카드" then card.setPosition({-10.00, 1.57, -26.00}) card.setRotation(deck.getRotation()) elseif card.getGMNotes() == "관광지 카드" then -- card.setPosition({-10.00, 1.50, -18.00}) -- card.setRotation(deck.getRotation()) card.destruct() elseif card.getGMNotes() == "마을 선착순 카드" then -- card.setPosition({0.00, 1.50, -18.00}) -- card.setRotation(deck.getRotation()) card.destruct() else card.setPosition(deck.getPosition() + vector(0, -0.1, 0)) card.setRotation(deck.getRotation()) end end sleep(1 + 0.05 * #getSeatedPlayers()) locationDeck = getLocationDeck() while (loaded.locationDeck == false) do sleep(0.05 * #getSeatedPlayers()) if locationDeck ~= nil then loaded.locationDeck = true; end end -- print(locationDeck) if locationDeck == nil then broadcastToAll(SixSymbolColor["Red"] .. "마을 위치 덱을 찾을 수 없습니다!") return 1; end locationDeck.shuffle() sleep(0.05 * #getSeatedPlayers()) local locationPos = {8.00, 1.50, -22.00} local tourPos = {-9.20, 1.50, -11.50} local goalPos = {0.00, 1.50, -11.50} -- sleep(0.5) while (loaded.currentLocationCard == false) do sleep(0.05 * #getSeatedPlayers()) local currentLocationCard = locationDeck.takeObject({ position = locationPos, rotation = {0.00, 180.00, 0.00}, }) sleep(0.05 * #getSeatedPlayers()) if currentLocationCard == nil then broadcastToAll(SixSymbolColor["Red"] .. "현재 마을위치 카드를 찾을 수 없습니다! 잠시만 기다려 주세요...") else currentLocation = currentLocationCard.getDescription() if currentLocation == nil then broadcastToAll(SixSymbolColor["Red"] .. "현재 마을위치를 찾을 수 없습니다!") return 1; end loaded.currentLocationCard = true sleep(0.05 * #getSeatedPlayers()) end end -- goalDeck = getGoalDeck() -- sleep(0.05 * #getSeatedPlayers()) sleep(0.2 + 0.05 * #getSeatedPlayers()) delGoalDeck = getGoalDeck() sleep(0.2 + 0.05 * #getSeatedPlayers()) if delGoalDeck ~= nil then delGoalDeck.destruct() -- elseif delGoalDeck == nil then -- broadcastToAll("삭제할 목표카드 덱을 찾을 수 없습니다!") end while (loaded.goalDeck == false) do goalDeck = getObjectFromGUID('a58fd6').takeObject({ position = {0.00, 2.50, -18.00}, rotation = {0.00, 90.00, 0.00}, }) if goalDeck == nil then broadcastToAll(SixSymbolColor["Red"] .. "목표카드 덱을 찾을 수 없습니다! 잠시 기다려 주세요...") sleep(0.5 + 0.1 * #getSeatedPlayers()) -- return 1; else loaded.goalDeck = true sleep(0.5 + 0.3 * #getSeatedPlayers()) end end -- sleep(0.5 * #getSeatedPlayers()) local goals = 5 if #getSeatedPlayers() > 4 then goals = 10 end for i=1, goals do goalDeck.takeObject({ position = goalDeck.getPosition() + vector(0, 0 - i * 0.1, 6.90 * ((i-1)%5+1)), rotation = {0.00, 90.00, 0.00}, }).setScale({2.29, 1.00, 2.29}) end -- sleep(0.5) if goalDeck ~= nil then goalDeck.destruct() end sleep(0.2 + 0.05 * #getSeatedPlayers()) delTourDeck = getTourDeck() sleep(0.2 + 0.05 * #getSeatedPlayers()) if delTourDeck ~= nil then delTourDeck.destruct() -- elseif delTourDeck == nil then -- broadcastToAll("삭제할 기념물 덱을 찾을 수 없습니다!") -- return; end if tourExp then while (loaded.tourDeck == false) do tourDeck = getObjectFromGUID('c27abd').takeObject({ position = {-10.00, 2.50, -18.00}, rotation = {0.00, 90.00, 0.00}, }) if tourDeck == nil then broadcastToAll(SixSymbolColor["Red"] .. "사용할 기념물 덱을 찾을 수 없습니다! 잠시 기다려 주세요...") sleep(0.5 + 0.1 * #getSeatedPlayers()) -- return 1; else loaded.tourDeck = true sleep(0.5 + 0.3 * #getSeatedPlayers()) end end local tours = 1 if #getSeatedPlayers() > 4 then tours = 2 end tourDeck.shuffle() sleep(0.05 * #getSeatedPlayers()) for i=1, tours do tourDeck.takeObject({ position = tourDeck.getPosition() + vector(0, 0, 6.90 * i), rotation = {0.00, 90.00, 0.00}, }).setScale({2.29, 1.00, 2.29}) end -- sleep(0.5) if tourDeck ~= nil then tourDeck.destruct() end end while (loaded.terrainDeck == false) do terrainDeck = getTerrainDeck() sleep(0.05 * #getSeatedPlayers()) if terrainDeck ~= nil then loaded.terrainDeck = true; end end terrainDeck.shuffle() setVillage() setNotes("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n스크립트 by 3JA2") return 1 end function getTerrainCards() local cards = {} local objects = getAllObjects() for index, object in ipairs(objects) do if (object.tag == "Card" and object.hasTag("terrain")) or (object.tag == "Deck" and object.hasTag("terrain")) then cards[#cards+1] = object object.setLock(false) object.setPosition({-10.00, 1.80 + 0.01*index, -26.00}) object.setRotation({0.00, 90.00, 180.00}) end end if cards ~= nil then return cards end end function getCards() local cards = {} local objects = getAllObjects() for index, object in ipairs(objects) do if object.tag == "Card" or object.tag == "Deck" then cards[#cards+1] = object object.setLock(false) object.setPosition({0.00, 1.80 + 0.01*index, -26.00}) object.setRotation({0.00, 90.00, 180.00}) end end if cards ~= nil then return cards end end function getGoalDeck() local objects = getAllObjects() for index, object in ipairs(objects) do if object.tag == "Deck" and object.hasTag("goal") then object.setName("목표 덱") if object ~= nil then return object end end end end function getLocationDeck() local objects = getAllObjects() for index, object in ipairs(objects) do if object.tag == "Deck" and object.hasTag("location") then object.setName("마을 위치 덱") if object ~= nil then return object end end end end function getTourDeck() local objects = getAllObjects() for index, object in ipairs(objects) do if object.tag == "Deck" and object.hasTag("Tourist destination") then object.setName("관광지 덱") if object ~= nil then return object end end end end function getTerrainDeck() local objects = getAllObjects() for index, object in ipairs(objects) do if object.tag == "Deck" and object.hasTag("terrain") then object.setName("지형 덱") if object ~= nil then return object end end end end function getDeck() local objects = getAllObjects() for index, object in ipairs(objects) do if object.tag == "Deck" then object.setName("메인 덱") if object ~= nil then return object end end end end function sleep(sec) local fin = os.clock() + sec while fin > os.clock() do coroutine.yield(0) end end function string:split(delimiter) local result = { } local from = 1 local delim_from, delim_to = string.find( self, delimiter, from ) while delim_from do table.insert( result, string.sub( self, from , delim_from-1 ) ) from = delim_to + 1 delim_from, delim_to = string.find( self, delimiter, from ) end table.insert( result, string.sub( self, from ) ) return result end function initializeList() players.total = #realSeatedPlayers players.waiting = #realSeatedPlayers for _, playerReference in ipairs(currentPlayers) do color = string.lower(playerReference.color) playerList[color] = true Global.UI.setAttribute(color..'PlayerWaiting', "active", "true") Global.UI.setAttribute(color..'NameWaiting', 'text', playerReference.steam_name) Global.UI.setAttribute(color..'NameReady', 'text', playerReference.steam_name) end checkTitle() end function onPlayerChangeColor(newCol) if not(newCol == 'Grey' or newCol == 'Black') then newColor = string.lower(newCol) newPlayerList = getSeatedPlayers() for oldColor,v in pairs(playerList) do found = false if v then for _, playerReference in ipairs(newPlayerList) do if oldColor == string.lower(playerReference) then -- print(playerReference) found = true end end if not(found) then Wait.time(function() Global.UI.setAttribute(newColor..'PlayerWaiting', "active", Global.UI.getAttribute(oldColor..'PlayerWaiting', 'active')) Global.UI.setAttribute(newColor..'PlayerReady', "active", Global.UI.getAttribute(oldColor..'PlayerReady', 'active')) Global.UI.setAttribute(newColor..'NameWaiting', 'text', Global.UI.getAttribute(oldColor..'NameWaiting', 'text')) Global.UI.setAttribute(newColor..'NameReady', 'text', Global.UI.getAttribute(oldColor..'NameReady', 'text')) Global.UI.setAttribute(oldColor..'PlayerWaiting', "active", "false") Global.UI.setAttribute(oldColor..'PlayerReady', "active", "false") playerList[oldColor] = false playerList[newColor] = true end, 0.1) end end end end end function readyWhite() readyButton("white") end function readyBrown() readyButton("brown") end function readyRed() readyButton("red") end function readyOrange() readyButton("orange") end function readyYellow() readyButton("yellow") end function readyGreen() readyButton("green") end function readyTeal() readyButton("teal") end function readyBlue() readyButton("blue") end function readyPurple() readyButton("purple") end function readyPink() readyButton("pink") end function readyButton(playerColor) players.ready = players.ready + 1 players.waiting = players.waiting - 1 checkTitle() Global.UI.setAttribute(playerColor..'PlayerWaiting', "active", "false") Global.UI.setAttribute(playerColor..'PlayerReady', "active", "true") Global.UI.setAttribute(playerColor..'ReadyButton', "active", "false") Global.UI.setAttribute(playerColor..'NotReadyButton', "active", "true") end function notReadyWhite() notReadyButton("white") end function notReadyBrown() notReadyButton("brown") end function notReadyRed() notReadyButton("red") end function notReadyOrange() notReadyButton("orange") end function notReadyYellow() notReadyButton("yellow") end function notReadyGreen() notReadyButton("green") end function notReadyTeal() notReadyButton("teal") end function notReadyBlue() notReadyButton("blue") end function notReadyPurple() notReadyButton("purple") end function notReadyPink() notReadyButton("pink") end function notReadyButton(playerColor) players.ready = players.ready - 1 players.waiting = players.waiting + 1 checkTitle() Global.UI.setAttribute(playerColor..'PlayerWaiting', "active", "true") Global.UI.setAttribute(playerColor..'PlayerReady', "active", "false") Global.UI.setAttribute(playerColor..'ReadyButton', "active", "true") Global.UI.setAttribute(playerColor..'NotReadyButton', "active", "false") end function nextRoundButton() for color, playing in pairs(playerList) do if playing then Global.UI.setAttribute(color..'PlayerReady', "active", "false") Global.UI.setAttribute(color..'PlayerWaiting', "active", "true") Global.UI.setAttribute(color..'ReadyButton', "active", "true") Global.UI.setAttribute(color..'NotReadyButton', "active", "false") end end players.waiting = players.ready players.ready = 0 checkTitle() nextTerra() end function checkTitle() newListHeight = (players.total * 60) + 110 if players.ready == 0 then Global.UI.setAttribute('readyTitle', "active", "false") else Global.UI.setAttribute('readyTitle', "active", "true") newListHeight = newListHeight + 80 end if players.waiting == 0 then Global.UI.setAttribute('waitingTitle', "active", "false") Global.UI.setAttribute('nextRoundButton', "active", "true") -- Global.call("nextTerrain") newListHeight = newListHeight - 30 else Global.UI.setAttribute('waitingTitle', "active", "true") Global.UI.setAttribute('nextRoundButton', "active", "false") end Global.UI.setAttribute('readyUI', "height", tostring(newListHeight)) end function onDestroy() Global.UI.setAttribute('readyUI', "active", "false") end function toggleUI(_,_, click) local visibility = Global.UI.getAttribute('readyUI', "active") -- print(visibility) local topVisibility = Global.UI.getAttribute('nextTerrain2', "active") if click == false then if visibility == "true" then Global.UI.setAttribute('readyUI', "active", "false") Global.UI.setAttribute('nextRound', "active", "false") elseif visibility == "false" then Global.UI.setAttribute('readyUI', "active", "true") Global.UI.setAttribute('nextRound', "active", "true") end else if topVisibility == "true" then Global.UI.setAttribute('nextTerrain2', "active", "false") Global.UI.setAttribute('nextRound2', "active", "false") elseif topVisibility == "false" then Global.UI.setAttribute('nextTerrain2', "active", "true") Global.UI.setAttribute('nextRound2', "active", "true") end end end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\buttonLuaScriptStateXmlUI20D6GUID4bdc92NameDeckTransformposXj>posY J ?posZ:rotXa>rotYՁV@rotZf@scaleX \@scaleY?scaleZ \@Nickname마을 위치 덱DescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDsc0161-62263,64'65+66067(68/69.610&611)612*6CustomDeck93415.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjects20GUIDf580fcNameCardTransformposXθposY?posZ:rotX@rotYwV@rotZ˃f@scaleX \@scaleY?scaleZ \@NicknameDescriptionD A D B A E C E C BGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID16SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI1GUIDae084eNameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionA C B D C D E B A EGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID-6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI2GUIDd714e7NameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionD C E A D C B A E BGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID26SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI3GUIDb6f262NameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionC A E C B A D E B DGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID,6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI4GUID56799dNameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionA D C B D A C E B EGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID'6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI5GUID44e4e4NameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionE A D B C E B D A CGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID+6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI6GUIDfbd14dNameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionB A C B D C E A E D BGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID06SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI7GUIDbc02beNameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionB E D C B A D E C AGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID(6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI8GUID71d3f5NameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionB D C A E B E D C AGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID/6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI9GUID1b5e1eNameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionD B A C E C D A E BGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID.6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI10GUIDae3294NameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionC E B A E D C D A BGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID&6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI11GUID5acf4fNameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionE C A E B D A B D CGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID)6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI12GUID163972NameCardTransformposXposY۬?posZY9rotXQrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionE B D B A C A E C DGMNotes마을 위치 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0 locationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID*6SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI21GUID490bf1NameCardTransformposX`f"posY?posZ'rotX&J`rotYV@rotZ`4'scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotes관광지 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags 0Tourist destinationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID6SidewaysCardCustomDeck93417.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI22GUID928a2dNameCardTransformposX`ff"posY?posZhfrotX`P)`>rotY@V@rotZ M3scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotes관광지 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags 0Tourist destinationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDO7SidewaysCardCustomDeck93418.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI23GUID18190eNameCardTransformposX`ff"posY?posZ^f@rotX@ϜXrotY`V@rotZl>scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotes관광지 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags 0Tourist destinationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID7SidewaysCardCustomDeck93419.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI24GUIDf8998aNameCardTransformposX`ff"posY?posZdf"@rotXwgrotY V@rotZu>scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotes관광지 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags 0Tourist destinationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID8SidewaysCardCustomDeck93420.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI25GUID40d0c1NameCardTransformposX@ff"posY?posZ 0@rotX`rotYV@rotZ*scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotes관광지 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags 0Tourist destinationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDz8SidewaysCardCustomDeck93421.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI26e GUID91262eNameDeckTransformposXj>posY`c1?posZ&rotXqrotY`V@rotZ scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDs0818CustomDeck93422.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjects0GUID57e9e9NameCardTransformposXSposY?posZ'rotX1?rotY V@rotZ3`scaleX \@scaleY?scaleZ \@NicknameA 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID8SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI1GUIDdb8c4dNameCardTransformposXĝ?posY?posZm'rotX蜃?rotYV@rotZv@scaleX \@scaleY?scaleZ \@NicknameA 1DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID8SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI27e GUID7bf2f2NameDeckTransformposXposY`c1?posZ@~f@rotX X>rotY@V@rotZ FN>scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDs0=9189CustomDeck93423.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjects0GUID8d233aNameCardTransformposXposY?posZ }f@rotX`rotYV@rotZo=?scaleX \@scaleY?scaleZ \@NicknameC 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID=9SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI1GUID066f10NameCardTransformposXҍposY7?posZ@(@rotX(`rotYV@rotZuscaleX \@scaleY?scaleZ \@NicknameC 1DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID89SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI28e GUID082f8fNameDeckTransformposX}#j>posY`c1?posZif"@rotXgrotY V@rotZa)>scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDs0919CustomDeck93424.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjects0GUID858825NameCardTransformposX eposYl?posZhf"@rotX@3A?rotY V@rotZzpscaleX \@scaleY?scaleZ \@NicknameD 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID9SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI1GUID3d7ad4NameCardTransformposX?posY ?posZ`o"@rotX ?rotYV@rotZh\scaleX \@scaleY?scaleZ \@NicknameD 1DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID9SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI29e GUIDf20dfaNameDeckTransformposX~zposY`c1?posZ0@rotX Mo>rotYV@rotZ>scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDs0:19CustomDeck93425.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjects0GUID2add04NameCardTransformposXposY?posZ0@rotX`&?rotY V@rotZZSscaleX \@scaleY?scaleZ \@NicknameE 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID:SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI1GUID212016NameCardTransformposX ?posY?posZ`o/@rotXz?rotYV@rotZv@scaleX \@scaleY?scaleZ \@NicknameE 1DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID9SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI30e GUID49b937NameDeckTransformposX a>posY`c1?posZdfrotXՆ>rotY V@rotZ@W>scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDs0l:1g:CustomDeck93426.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjects0GUIDe30ad3NameCardTransformposXhľposY`?posZ@gfrotXVk?rotYV@rotZv@scaleX \@scaleY?scaleZ \@NicknameB 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDl:SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI1GUID765864NameCardTransformposX ϿposY`]?posZrrotX?rotYV@rotZf~v@scaleX \@scaleY?scaleZ \@NicknameB 1DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDg:SidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI31U,GUIDa58fd6Name Infinite_BagTransformposXϑm>posYposZ4rotXiᵾrotY {?rotZ>scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r`?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsMaterialIndexMeshIndexLuaScriptLuaScriptStateXmlUIContainedObjects)0)GUIDedeb33NameDeckTransformposXLI @posY0 @posZ@x%rotXvv@rotY`RV@rotZ${v@scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDsK0123456789CustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjects%0GUID2add04NameCardTransformposX@posY?posZ*0@rotX)?rotYV@rotZVscaleX \@scaleY?scaleZ \@NicknameE 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI1GUID858825NameCardTransformposX@B@posYX?posZ00@rotX_jrotY`V@rotZcZscaleX \@scaleY?scaleZ \@NicknameD 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI2GUID8d233aNameCardTransformposXօ@posY@}R?posZ Jp0@rotX q%crotY V@rotZ}?scaleX \@scaleY?scaleZ \@NicknameC 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI3GUIDe30ad3NameCardTransformposX^@posYy?posZ o/@rotX`n?rotYV@rotZJ2vscaleX \@scaleY?scaleZ \@NicknameB 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI4GUID57e9e9NameCardTransformposXF@posY`?posZP/@rotXUrotYV@rotZ`y@cscaleX \@scaleY?scaleZ \@NicknameA 2DescriptionGMNotes마을 선착순 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0goalLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI5GUID212016NameCardTransformposX,&@posY?posZ &@rotXrotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotes관광지 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags 0Tourist destinationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI2GUIDf8998aNameCardTransformposX$posY?posZ2rotX1>rotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotes관광지 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags 0Tourist destinationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI3GUID18190eNameCardTransformposX$posY?posZ2rotX1>rotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotes관광지 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags 0Tourist destinationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI4GUID40d0c1NameCardTransformposX$posY?posZ2rotX1>rotYV@rotZf@scaleX \@scaleY?scaleZ \@NicknameDescriptionGMNotes관광지 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags 0Tourist destinationLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI33jGUID559522NameDeckTransformposX$posY`X?posZ:rotX`TŒrotYuV@rotZf@scaleX \@scaleY?scaleZ \@Nickname 지형 덱DescriptionGMNotesAltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDs0h61c62z63m64k65g66x67f68r69a610v611q612t613i614n615b616e617s618y619p620d621l622j623u624o625w626`6CustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjectse0GUID5d371fNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname 황무지DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDh6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI1GUID8bc0ceNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname산DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDc6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI2GUIDeb7b92NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname숲DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDz6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI3GUIDed63b7NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname물DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDm6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI4GUID09c3b3NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname물DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDk6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI5GUID7fe2beNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname산DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDg6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI6GUID42a818NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname숲DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDx6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI7GUID086fb1NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname산DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDf6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI8GUID894ef9NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname 황무지DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDr6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI9GUID992434NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname산DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDa6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI10GUIDd8084cNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname조커DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDv6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI11GUID6eb881NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname 황무지DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDq6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI12GUIDd2905cNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname숲DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDt6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI13GUIDdcf84fNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname산DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDi6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI14GUID34283cNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname숲DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDn6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI15GUID825cddNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname물DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDb6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI16GUID4d915aNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname 황무지DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDe6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI17GUID5a19caNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname 황무지DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDs6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI18GUIDca3c38NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname숲DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDy6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI19GUIDef58acNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname 황무지DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDp6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI20GUID004445NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname물DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDd6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI21GUID71d628NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname 황무지DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDl6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI22GUID82cc49NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname 황무지DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDj6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI23GUIDf59f90NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname숲DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDu6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI24GUID3643deNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname조커DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDo6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI25GUIDa4971cNameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname숲DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDw6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI26GUIDabbb94NameCardTransformposX$posY`?posZ:rotX>rotY V@rotZf@scaleX \@scaleY?scaleZ \@Nickname산DescriptionGMNotes지형 카드AltLookAngle&xyzColorDiffuse&r?g?b?Tags0terrainLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardID`6SidewaysCardCustomDeck93416.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563276967/19761943C9C09A22A8377B278D45F3069814EA57/BackURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563284209/60A3E8AFD3A1461656FBD34D937D82AEFB2C079B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI34P/GUIDd362d6Name Custom_TokenTransformposX;posYM?posZ <?rotX@>rotYsp@rotZscaleX6@scaleY?scaleZ6@NicknameDescriptionGMNotesBrownAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomImageImageURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/ImageSecondaryURLImageScalar?WidthScaleCustomTokenKThickness?MergeDistancePixels.@StandUpStackableLuaScript+----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoard easyLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/' hardLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563295173/267D64CD7C9AEE32B7007F11A8A26C3A916A3305/' harderLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563298150/801A3DE3659B40B6C4D77200D0BE35BD6EA6BAB7/' tourScore = 0 villScore = 0 totalScore = 0 textPos = { {-0.602 , 0.107 , -1.080}, {0.172 , 0.108 , -0.784}, {0.491 , 0.108 , -0.272}, {0.634 , 0.107 , 0.535}, {0.026 , 0.107 , 1.062}, {-0.445 , 0.107 , 1.349}, {-1.229 , 0.107 , 1.072}, {-1.543 , 0.107 , 0.526}, {-1.683 , 0.107 , -0.277}, {-1.379 , 0.107 , -0.793} } textPosHard = { {-0.547 , 0.107 , -0.919}, {0.385 , 0.112 , -0.696}, {0.643 , 0.107 , -0.244}, {0.632 , 0.112 , 0.682}, {0.105 , 0.112 , 1.121}, {-0.542 , 0.112 , 1.373}, {-1.336 , 0.112 , 1.363}, {-1.864 , 0.112 , 0.447}, {-1.735 , 0.112 , -0.241}, {-1.329 , 0.112 , -0.908} } textPosHarder = { {-0.524 , 0.102 , -0.932}, {0.077 , 0.110 , -0.725}, {0.56 , 0.102 , -0.305}, {0.444 , 0.102 , 0.330}, {0.208 , 0.102 , 0.762}, {-0.401 , 0.102 , 0.964}, {-1.136 , 0.102 , 0.954}, {-1.613 , 0.102 , 0.545}, {-1.492 , 0.102 , -0.093}, {-1.491 , 0.102 , -0.511} } tourBtns = { {1.308 , 0.110 , -1.345}, {1.308 , 0.110 , -1.158}, {1.308 , 0.110 , -0.974}, {1.308 , 0.110 , -0.806}, {1.308 , 0.110 , -0.605}, {1.572 , 0.110 , -1.345}, {1.572 , 0.110 , -1.158}, {1.572 , 0.110 , -0.974}, {1.572 , 0.110 , -0.806}, {1.572 , 0.110 , -0.605} } tourBtnsScore = { 1,2,2,3,4, 2,2,3,4,5 } tourBtnsHard = { {1.304 , 0.107 , -1.355}, {1.457 , 0.107 , -1.355}, {1.728 , 0.107 , -1.355}, {1.304 , 0.107 , -1.160}, {1.457 , 0.107 , -1.160}, {1.728 , 0.107 , -1.160}, {1.304 , 0.107 , -0.978}, {1.457 , 0.107 , -0.978}, {1.728 , 0.107 , -0.978}, {1.304 , 0.107 , -0.794}, {1.457 , 0.107 , -0.794}, {1.728 , 0.107 , -0.794}, {1.304 , 0.107 , -0.611}, {1.457 , 0.107 , -0.611}, {1.728 , 0.107 , -0.611}, } tourBtnsScoreHard = { 1,2,2, 2,2,3, 2,3,3, 3,4,4, 4,5,5 } tourBtnsHarder = { {1.2 , 0.107 , -1.302}, {1.2 , 0.107 , -1.132}, {1.2 , 0.107 , -0.965}, {1.2 , 0.107 , -0.805}, {1.2 , 0.107 , -0.646}, {1.2 , 0.107 , -0.474}, {1.402 , 0.107 , -1.300}, {1.343 , 0.107 , -1.132}, {1.343 , 0.107 , -0.965}, {1.483 , 0.107 , -0.965}, {1.404 , 0.107 , -0.805}, {1.404 , 0.107 , -0.646}, {1.346 , 0.107 , -0.474}, {1.491 , 0.107 , -0.474}, {1.675 , 0.107 , -0.474}, } tourBtnsScoreHarder = { 2,0,1,2,3,2, 1,4,0,6,4,5,1,-2,-5 } tourScoreAvailable = {} villScoreAvailable = {} villBtn = { {1.382 , 0.107 , -0.093}, {1.382 , 0.107 , 0.062}, {1.853 , 0.107 , -0.241}, {1.853 , 0.107 , -0.093}, {1.853 , 0.107 , 0.062} } villBtnScore = { 14,13,12,11,10 } villBtnHard = { {1.393 , 0.107 , -0.088}, {1.393 , 0.107 , 0.075}, {1.858 , 0.107 , -0.244}, {1.858 , 0.107 , -0.088}, {1.858 , 0.107 , 0.075} } villBtnScoreHard = { 20,19,18,17,16 } villBtnHarder = { {1.26 , 0.107 , -0.082}, {1.26 , 0.107 , 0.065}, {1.686 , 0.107 , -0.220}, {1.686 , 0.107 , -0.082}, {1.686 , 0.107 , 0.065} } villBtnScoreHarder = { 17,16,15,13,11 } function setVill(info) vilInfo = info local diff = getObjectFromGUID('a769df').getVar("hard") local tempPos = {} tempTour = {} tempTourScore = {} tempVill = {} tempVillScore = {} tourScoreAvailable = {} villScoreAvailable = {} tourScore = 0 villScore = 0 totalScore = 0 self.createButton({ index = 0, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -1.311}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) self.createButton({ index = 1, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -0.097}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) if diff%3==1 then tempPos = textPos tempTour = tourBtns tempTourScore = tourBtnsScore tempVill = villBtn tempVillScore = villBtnScore elseif diff%3==2 then tempPos = textPosHard tempTour = tourBtnsHard tempTourScore = tourBtnsScoreHard tempVill = villBtnHard tempVillScore = villBtnScoreHard elseif diff%3==0 then tempPos = textPosHarder tempTour = tourBtnsHarder tempTourScore = tourBtnsScoreHarder tempVill = villBtnHarder tempVillScore = villBtnScoreHarder end for i, c in ipairs(info) do self.createButton({ click_function = "none", function_owner = self, label = c, position = tempPos[i], width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) end btnNum = #self.getButtons()-1 -- print(btnNum) for i, c in ipairs(tempTour) do -- print(tonumber(btnNum+i)) self.createButton({ index = tonumber(btnNum+i), click_function = "addUp_" .. i, function_owner = self, label = tempTourScore[i], position = tempTour[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempTour) do table.insert(tourScoreAvailable, #tourScoreAvailable+1, true) end villBtnNum = btnNum + #tempTour for i, c in ipairs(tempVill) do self.createButton({ index = tonumber(villBtnNum+i), click_function = "addUpVill_" .. i, function_owner = self, label = tempVillScore[i], position = tempVill[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempVill) do table.insert(villScoreAvailable, #villScoreAvailable+1, true) end end function addUp_1() local tourIndex = 1 commonAdd(tourIndex) end function addUp_2() local tourIndex = 2 commonAdd(tourIndex) end function addUp_3() local tourIndex = 3 commonAdd(tourIndex) end function addUp_4() local tourIndex = 4 commonAdd(tourIndex) end function addUp_5() local tourIndex = 5 commonAdd(tourIndex) end function addUp_6() local tourIndex = 6 commonAdd(tourIndex) end function addUp_7() local tourIndex = 7 commonAdd(tourIndex) end function addUp_8() local tourIndex = 8 commonAdd(tourIndex) end function addUp_9() local tourIndex = 9 commonAdd(tourIndex) end function addUp_10() local tourIndex = 10 commonAdd(tourIndex) end function addUp_11() local tourIndex = 11 commonAdd(tourIndex) end function addUp_12() local tourIndex = 12 commonAdd(tourIndex) end function addUp_13() local tourIndex = 13 commonAdd(tourIndex) end function addUp_14() local tourIndex = 14 commonAdd(tourIndex) end function addUp_15() local tourIndex = 15 commonAdd(tourIndex) end -- function addUp_16() local tourIndex = 16 commonAdd(tourIndex) end -- function addUp_17() local tourIndex = 17 commonAdd(tourIndex) end -- function addUp_18() local tourIndex = 18 commonAdd(tourIndex) end -- function addUp_19() local tourIndex = 19 commonAdd(tourIndex) end -- function addUp_20() local tourIndex = 20 commonAdd(tourIndex) end -- function addUp_21() local tourIndex = 21 commonAdd(tourIndex) end function addUpVill_1() local villIndex = 1 villAdd(villIndex) end function addUpVill_2() local villIndex = 2 villAdd(villIndex) end function addUpVill_3() local villIndex = 3 villAdd(villIndex) end function addUpVill_4() local villIndex = 4 villAdd(villIndex) end function addUpVill_5() local villIndex = 5 villAdd(villIndex) end function commonAdd(tourIndex) if tourScoreAvailable[tourIndex] then tourScore = tourScore + tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] else tourScore = tourScore - tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] end if tourScoreAvailable[tourIndex] then self.editButton({ index = tonumber(btnNum+tourIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(btnNum+tourIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end function villAdd(villIndex) -- print(villScoreAvailable[villIndex]) if villScoreAvailable[villIndex] then villScore = villScore + tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] else villScore = villScore - tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] end if villScoreAvailable[villIndex] then self.editButton({ index = tonumber(villBtnNum+villIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(villBtnNum+villIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end -- function addUp_1(score) tourScore = tourScore + score end function sumUp() self.editButton({ index = 0, label = tourScore .. "점", }) end function sumUpVill() self.editButton({ index = 1, label = "마을:\n" .. villScore .. "점", -- label = villScore, }) end function mapUse() local diff = getObjectFromGUID('a769df').getVar("hard") -- print(diff) local tempPos = {} if diff%3==1 then self.setCustomObject({image = easyLink,}) tempPos = textPos elseif diff%3==2 then self.setCustomObject({image = hardLink,}) tempPos = textPosHard elseif diff%3==0 then self.setCustomObject({image = harderLink,}) tempPos = textPosHarder end end function sleep(sec) local fin = os.clock() + sec while fin > os.clock() do coroutine.yield(0) end end function none() end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoardLuaScriptStateXmlUI35N/GUID1f5352Name Custom_TokenTransformposX;posYM?posZ@@rotXrotYp@rotZ@կscaleX6@scaleY?scaleZ6@NicknameDescriptionGMNotesRedAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomImageImageURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/ImageSecondaryURLImageScalar?WidthScaleCustomTokenKThickness?MergeDistancePixels.@StandUpStackableLuaScript+----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoard easyLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/' hardLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563295173/267D64CD7C9AEE32B7007F11A8A26C3A916A3305/' harderLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563298150/801A3DE3659B40B6C4D77200D0BE35BD6EA6BAB7/' tourScore = 0 villScore = 0 totalScore = 0 textPos = { {-0.602 , 0.107 , -1.080}, {0.172 , 0.108 , -0.784}, {0.491 , 0.108 , -0.272}, {0.634 , 0.107 , 0.535}, {0.026 , 0.107 , 1.062}, {-0.445 , 0.107 , 1.349}, {-1.229 , 0.107 , 1.072}, {-1.543 , 0.107 , 0.526}, {-1.683 , 0.107 , -0.277}, {-1.379 , 0.107 , -0.793} } textPosHard = { {-0.547 , 0.107 , -0.919}, {0.385 , 0.112 , -0.696}, {0.643 , 0.107 , -0.244}, {0.632 , 0.112 , 0.682}, {0.105 , 0.112 , 1.121}, {-0.542 , 0.112 , 1.373}, {-1.336 , 0.112 , 1.363}, {-1.864 , 0.112 , 0.447}, {-1.735 , 0.112 , -0.241}, {-1.329 , 0.112 , -0.908} } textPosHarder = { {-0.524 , 0.102 , -0.932}, {0.077 , 0.110 , -0.725}, {0.56 , 0.102 , -0.305}, {0.444 , 0.102 , 0.330}, {0.208 , 0.102 , 0.762}, {-0.401 , 0.102 , 0.964}, {-1.136 , 0.102 , 0.954}, {-1.613 , 0.102 , 0.545}, {-1.492 , 0.102 , -0.093}, {-1.491 , 0.102 , -0.511} } tourBtns = { {1.308 , 0.110 , -1.345}, {1.308 , 0.110 , -1.158}, {1.308 , 0.110 , -0.974}, {1.308 , 0.110 , -0.806}, {1.308 , 0.110 , -0.605}, {1.572 , 0.110 , -1.345}, {1.572 , 0.110 , -1.158}, {1.572 , 0.110 , -0.974}, {1.572 , 0.110 , -0.806}, {1.572 , 0.110 , -0.605} } tourBtnsScore = { 1,2,2,3,4, 2,2,3,4,5 } tourBtnsHard = { {1.304 , 0.107 , -1.355}, {1.457 , 0.107 , -1.355}, {1.728 , 0.107 , -1.355}, {1.304 , 0.107 , -1.160}, {1.457 , 0.107 , -1.160}, {1.728 , 0.107 , -1.160}, {1.304 , 0.107 , -0.978}, {1.457 , 0.107 , -0.978}, {1.728 , 0.107 , -0.978}, {1.304 , 0.107 , -0.794}, {1.457 , 0.107 , -0.794}, {1.728 , 0.107 , -0.794}, {1.304 , 0.107 , -0.611}, {1.457 , 0.107 , -0.611}, {1.728 , 0.107 , -0.611}, } tourBtnsScoreHard = { 1,2,2, 2,2,3, 2,3,3, 3,4,4, 4,5,5 } tourBtnsHarder = { {1.2 , 0.107 , -1.302}, {1.2 , 0.107 , -1.132}, {1.2 , 0.107 , -0.965}, {1.2 , 0.107 , -0.805}, {1.2 , 0.107 , -0.646}, {1.2 , 0.107 , -0.474}, {1.402 , 0.107 , -1.300}, {1.343 , 0.107 , -1.132}, {1.343 , 0.107 , -0.965}, {1.483 , 0.107 , -0.965}, {1.404 , 0.107 , -0.805}, {1.404 , 0.107 , -0.646}, {1.346 , 0.107 , -0.474}, {1.491 , 0.107 , -0.474}, {1.675 , 0.107 , -0.474}, } tourBtnsScoreHarder = { 2,0,1,2,3,2, 1,4,0,6,4,5,1,-2,-5 } tourScoreAvailable = {} villScoreAvailable = {} villBtn = { {1.382 , 0.107 , -0.093}, {1.382 , 0.107 , 0.062}, {1.853 , 0.107 , -0.241}, {1.853 , 0.107 , -0.093}, {1.853 , 0.107 , 0.062} } villBtnScore = { 14,13,12,11,10 } villBtnHard = { {1.393 , 0.107 , -0.088}, {1.393 , 0.107 , 0.075}, {1.858 , 0.107 , -0.244}, {1.858 , 0.107 , -0.088}, {1.858 , 0.107 , 0.075} } villBtnScoreHard = { 20,19,18,17,16 } villBtnHarder = { {1.26 , 0.107 , -0.082}, {1.26 , 0.107 , 0.065}, {1.686 , 0.107 , -0.220}, {1.686 , 0.107 , -0.082}, {1.686 , 0.107 , 0.065} } villBtnScoreHarder = { 17,16,15,13,11 } function setVill(info) vilInfo = info local diff = getObjectFromGUID('a769df').getVar("hard") local tempPos = {} tempTour = {} tempTourScore = {} tempVill = {} tempVillScore = {} tourScoreAvailable = {} villScoreAvailable = {} tourScore = 0 villScore = 0 totalScore = 0 self.createButton({ index = 0, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -1.311}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) self.createButton({ index = 1, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -0.097}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) if diff%3==1 then tempPos = textPos tempTour = tourBtns tempTourScore = tourBtnsScore tempVill = villBtn tempVillScore = villBtnScore elseif diff%3==2 then tempPos = textPosHard tempTour = tourBtnsHard tempTourScore = tourBtnsScoreHard tempVill = villBtnHard tempVillScore = villBtnScoreHard elseif diff%3==0 then tempPos = textPosHarder tempTour = tourBtnsHarder tempTourScore = tourBtnsScoreHarder tempVill = villBtnHarder tempVillScore = villBtnScoreHarder end for i, c in ipairs(info) do self.createButton({ click_function = "none", function_owner = self, label = c, position = tempPos[i], width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) end btnNum = #self.getButtons()-1 -- print(btnNum) for i, c in ipairs(tempTour) do -- print(tonumber(btnNum+i)) self.createButton({ index = tonumber(btnNum+i), click_function = "addUp_" .. i, function_owner = self, label = tempTourScore[i], position = tempTour[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempTour) do table.insert(tourScoreAvailable, #tourScoreAvailable+1, true) end villBtnNum = btnNum + #tempTour for i, c in ipairs(tempVill) do self.createButton({ index = tonumber(villBtnNum+i), click_function = "addUpVill_" .. i, function_owner = self, label = tempVillScore[i], position = tempVill[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempVill) do table.insert(villScoreAvailable, #villScoreAvailable+1, true) end end function addUp_1() local tourIndex = 1 commonAdd(tourIndex) end function addUp_2() local tourIndex = 2 commonAdd(tourIndex) end function addUp_3() local tourIndex = 3 commonAdd(tourIndex) end function addUp_4() local tourIndex = 4 commonAdd(tourIndex) end function addUp_5() local tourIndex = 5 commonAdd(tourIndex) end function addUp_6() local tourIndex = 6 commonAdd(tourIndex) end function addUp_7() local tourIndex = 7 commonAdd(tourIndex) end function addUp_8() local tourIndex = 8 commonAdd(tourIndex) end function addUp_9() local tourIndex = 9 commonAdd(tourIndex) end function addUp_10() local tourIndex = 10 commonAdd(tourIndex) end function addUp_11() local tourIndex = 11 commonAdd(tourIndex) end function addUp_12() local tourIndex = 12 commonAdd(tourIndex) end function addUp_13() local tourIndex = 13 commonAdd(tourIndex) end function addUp_14() local tourIndex = 14 commonAdd(tourIndex) end function addUp_15() local tourIndex = 15 commonAdd(tourIndex) end -- function addUp_16() local tourIndex = 16 commonAdd(tourIndex) end -- function addUp_17() local tourIndex = 17 commonAdd(tourIndex) end -- function addUp_18() local tourIndex = 18 commonAdd(tourIndex) end -- function addUp_19() local tourIndex = 19 commonAdd(tourIndex) end -- function addUp_20() local tourIndex = 20 commonAdd(tourIndex) end -- function addUp_21() local tourIndex = 21 commonAdd(tourIndex) end function addUpVill_1() local villIndex = 1 villAdd(villIndex) end function addUpVill_2() local villIndex = 2 villAdd(villIndex) end function addUpVill_3() local villIndex = 3 villAdd(villIndex) end function addUpVill_4() local villIndex = 4 villAdd(villIndex) end function addUpVill_5() local villIndex = 5 villAdd(villIndex) end function commonAdd(tourIndex) if tourScoreAvailable[tourIndex] then tourScore = tourScore + tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] else tourScore = tourScore - tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] end if tourScoreAvailable[tourIndex] then self.editButton({ index = tonumber(btnNum+tourIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(btnNum+tourIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end function villAdd(villIndex) -- print(villScoreAvailable[villIndex]) if villScoreAvailable[villIndex] then villScore = villScore + tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] else villScore = villScore - tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] end if villScoreAvailable[villIndex] then self.editButton({ index = tonumber(villBtnNum+villIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(villBtnNum+villIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end -- function addUp_1(score) tourScore = tourScore + score end function sumUp() self.editButton({ index = 0, label = tourScore .. "점", }) end function sumUpVill() self.editButton({ index = 1, label = "마을:\n" .. villScore .. "점", -- label = villScore, }) end function mapUse() local diff = getObjectFromGUID('a769df').getVar("hard") -- print(diff) local tempPos = {} if diff%3==1 then self.setCustomObject({image = easyLink,}) tempPos = textPos elseif diff%3==2 then self.setCustomObject({image = hardLink,}) tempPos = textPosHard elseif diff%3==0 then self.setCustomObject({image = harderLink,}) tempPos = textPosHarder end end function sleep(sec) local fin = os.clock() + sec while fin > os.clock() do coroutine.yield(0) end end function none() end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoardLuaScriptStateXmlUI36Q/GUIDd5e44aName Custom_TokenTransformposX>posYM?posZF@rotX>rotYv@rotZ`k>scaleX6@scaleY?scaleZ6@NicknameDescriptionGMNotesOrangeAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomImageImageURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/ImageSecondaryURLImageScalar?WidthScaleCustomTokenKThickness?MergeDistancePixels.@StandUpStackableLuaScript+----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoard easyLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/' hardLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563295173/267D64CD7C9AEE32B7007F11A8A26C3A916A3305/' harderLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563298150/801A3DE3659B40B6C4D77200D0BE35BD6EA6BAB7/' tourScore = 0 villScore = 0 totalScore = 0 textPos = { {-0.602 , 0.107 , -1.080}, {0.172 , 0.108 , -0.784}, {0.491 , 0.108 , -0.272}, {0.634 , 0.107 , 0.535}, {0.026 , 0.107 , 1.062}, {-0.445 , 0.107 , 1.349}, {-1.229 , 0.107 , 1.072}, {-1.543 , 0.107 , 0.526}, {-1.683 , 0.107 , -0.277}, {-1.379 , 0.107 , -0.793} } textPosHard = { {-0.547 , 0.107 , -0.919}, {0.385 , 0.112 , -0.696}, {0.643 , 0.107 , -0.244}, {0.632 , 0.112 , 0.682}, {0.105 , 0.112 , 1.121}, {-0.542 , 0.112 , 1.373}, {-1.336 , 0.112 , 1.363}, {-1.864 , 0.112 , 0.447}, {-1.735 , 0.112 , -0.241}, {-1.329 , 0.112 , -0.908} } textPosHarder = { {-0.524 , 0.102 , -0.932}, {0.077 , 0.110 , -0.725}, {0.56 , 0.102 , -0.305}, {0.444 , 0.102 , 0.330}, {0.208 , 0.102 , 0.762}, {-0.401 , 0.102 , 0.964}, {-1.136 , 0.102 , 0.954}, {-1.613 , 0.102 , 0.545}, {-1.492 , 0.102 , -0.093}, {-1.491 , 0.102 , -0.511} } tourBtns = { {1.308 , 0.110 , -1.345}, {1.308 , 0.110 , -1.158}, {1.308 , 0.110 , -0.974}, {1.308 , 0.110 , -0.806}, {1.308 , 0.110 , -0.605}, {1.572 , 0.110 , -1.345}, {1.572 , 0.110 , -1.158}, {1.572 , 0.110 , -0.974}, {1.572 , 0.110 , -0.806}, {1.572 , 0.110 , -0.605} } tourBtnsScore = { 1,2,2,3,4, 2,2,3,4,5 } tourBtnsHard = { {1.304 , 0.107 , -1.355}, {1.457 , 0.107 , -1.355}, {1.728 , 0.107 , -1.355}, {1.304 , 0.107 , -1.160}, {1.457 , 0.107 , -1.160}, {1.728 , 0.107 , -1.160}, {1.304 , 0.107 , -0.978}, {1.457 , 0.107 , -0.978}, {1.728 , 0.107 , -0.978}, {1.304 , 0.107 , -0.794}, {1.457 , 0.107 , -0.794}, {1.728 , 0.107 , -0.794}, {1.304 , 0.107 , -0.611}, {1.457 , 0.107 , -0.611}, {1.728 , 0.107 , -0.611}, } tourBtnsScoreHard = { 1,2,2, 2,2,3, 2,3,3, 3,4,4, 4,5,5 } tourBtnsHarder = { {1.2 , 0.107 , -1.302}, {1.2 , 0.107 , -1.132}, {1.2 , 0.107 , -0.965}, {1.2 , 0.107 , -0.805}, {1.2 , 0.107 , -0.646}, {1.2 , 0.107 , -0.474}, {1.402 , 0.107 , -1.300}, {1.343 , 0.107 , -1.132}, {1.343 , 0.107 , -0.965}, {1.483 , 0.107 , -0.965}, {1.404 , 0.107 , -0.805}, {1.404 , 0.107 , -0.646}, {1.346 , 0.107 , -0.474}, {1.491 , 0.107 , -0.474}, {1.675 , 0.107 , -0.474}, } tourBtnsScoreHarder = { 2,0,1,2,3,2, 1,4,0,6,4,5,1,-2,-5 } tourScoreAvailable = {} villScoreAvailable = {} villBtn = { {1.382 , 0.107 , -0.093}, {1.382 , 0.107 , 0.062}, {1.853 , 0.107 , -0.241}, {1.853 , 0.107 , -0.093}, {1.853 , 0.107 , 0.062} } villBtnScore = { 14,13,12,11,10 } villBtnHard = { {1.393 , 0.107 , -0.088}, {1.393 , 0.107 , 0.075}, {1.858 , 0.107 , -0.244}, {1.858 , 0.107 , -0.088}, {1.858 , 0.107 , 0.075} } villBtnScoreHard = { 20,19,18,17,16 } villBtnHarder = { {1.26 , 0.107 , -0.082}, {1.26 , 0.107 , 0.065}, {1.686 , 0.107 , -0.220}, {1.686 , 0.107 , -0.082}, {1.686 , 0.107 , 0.065} } villBtnScoreHarder = { 17,16,15,13,11 } function setVill(info) vilInfo = info local diff = getObjectFromGUID('a769df').getVar("hard") local tempPos = {} tempTour = {} tempTourScore = {} tempVill = {} tempVillScore = {} tourScoreAvailable = {} villScoreAvailable = {} tourScore = 0 villScore = 0 totalScore = 0 self.createButton({ index = 0, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -1.311}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) self.createButton({ index = 1, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -0.097}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) if diff%3==1 then tempPos = textPos tempTour = tourBtns tempTourScore = tourBtnsScore tempVill = villBtn tempVillScore = villBtnScore elseif diff%3==2 then tempPos = textPosHard tempTour = tourBtnsHard tempTourScore = tourBtnsScoreHard tempVill = villBtnHard tempVillScore = villBtnScoreHard elseif diff%3==0 then tempPos = textPosHarder tempTour = tourBtnsHarder tempTourScore = tourBtnsScoreHarder tempVill = villBtnHarder tempVillScore = villBtnScoreHarder end for i, c in ipairs(info) do self.createButton({ click_function = "none", function_owner = self, label = c, position = tempPos[i], width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) end btnNum = #self.getButtons()-1 -- print(btnNum) for i, c in ipairs(tempTour) do -- print(tonumber(btnNum+i)) self.createButton({ index = tonumber(btnNum+i), click_function = "addUp_" .. i, function_owner = self, label = tempTourScore[i], position = tempTour[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempTour) do table.insert(tourScoreAvailable, #tourScoreAvailable+1, true) end villBtnNum = btnNum + #tempTour for i, c in ipairs(tempVill) do self.createButton({ index = tonumber(villBtnNum+i), click_function = "addUpVill_" .. i, function_owner = self, label = tempVillScore[i], position = tempVill[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempVill) do table.insert(villScoreAvailable, #villScoreAvailable+1, true) end end function addUp_1() local tourIndex = 1 commonAdd(tourIndex) end function addUp_2() local tourIndex = 2 commonAdd(tourIndex) end function addUp_3() local tourIndex = 3 commonAdd(tourIndex) end function addUp_4() local tourIndex = 4 commonAdd(tourIndex) end function addUp_5() local tourIndex = 5 commonAdd(tourIndex) end function addUp_6() local tourIndex = 6 commonAdd(tourIndex) end function addUp_7() local tourIndex = 7 commonAdd(tourIndex) end function addUp_8() local tourIndex = 8 commonAdd(tourIndex) end function addUp_9() local tourIndex = 9 commonAdd(tourIndex) end function addUp_10() local tourIndex = 10 commonAdd(tourIndex) end function addUp_11() local tourIndex = 11 commonAdd(tourIndex) end function addUp_12() local tourIndex = 12 commonAdd(tourIndex) end function addUp_13() local tourIndex = 13 commonAdd(tourIndex) end function addUp_14() local tourIndex = 14 commonAdd(tourIndex) end function addUp_15() local tourIndex = 15 commonAdd(tourIndex) end -- function addUp_16() local tourIndex = 16 commonAdd(tourIndex) end -- function addUp_17() local tourIndex = 17 commonAdd(tourIndex) end -- function addUp_18() local tourIndex = 18 commonAdd(tourIndex) end -- function addUp_19() local tourIndex = 19 commonAdd(tourIndex) end -- function addUp_20() local tourIndex = 20 commonAdd(tourIndex) end -- function addUp_21() local tourIndex = 21 commonAdd(tourIndex) end function addUpVill_1() local villIndex = 1 villAdd(villIndex) end function addUpVill_2() local villIndex = 2 villAdd(villIndex) end function addUpVill_3() local villIndex = 3 villAdd(villIndex) end function addUpVill_4() local villIndex = 4 villAdd(villIndex) end function addUpVill_5() local villIndex = 5 villAdd(villIndex) end function commonAdd(tourIndex) if tourScoreAvailable[tourIndex] then tourScore = tourScore + tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] else tourScore = tourScore - tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] end if tourScoreAvailable[tourIndex] then self.editButton({ index = tonumber(btnNum+tourIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(btnNum+tourIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end function villAdd(villIndex) -- print(villScoreAvailable[villIndex]) if villScoreAvailable[villIndex] then villScore = villScore + tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] else villScore = villScore - tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] end if villScoreAvailable[villIndex] then self.editButton({ index = tonumber(villBtnNum+villIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(villBtnNum+villIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end -- function addUp_1(score) tourScore = tourScore + score end function sumUp() self.editButton({ index = 0, label = tourScore .. "점", }) end function sumUpVill() self.editButton({ index = 1, label = "마을:\n" .. villScore .. "점", -- label = villScore, }) end function mapUse() local diff = getObjectFromGUID('a769df').getVar("hard") -- print(diff) local tempPos = {} if diff%3==1 then self.setCustomObject({image = easyLink,}) tempPos = textPos elseif diff%3==2 then self.setCustomObject({image = hardLink,}) tempPos = textPosHard elseif diff%3==0 then self.setCustomObject({image = harderLink,}) tempPos = textPosHarder end end function sleep(sec) local fin = os.clock() + sec while fin > os.clock() do coroutine.yield(0) end end function none() end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoardLuaScriptStateXmlUI37Q/GUIDc10f83Name Custom_TokenTransformposXоposY@M?posZFrotX/>rotY?f@rotZ`g>scaleX6@scaleY?scaleZ6@NicknameDescriptionGMNotesYellowAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomImageImageURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/ImageSecondaryURLImageScalar?WidthScaleCustomTokenKThickness?MergeDistancePixels.@StandUpStackableLuaScript+----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoard easyLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/' hardLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563295173/267D64CD7C9AEE32B7007F11A8A26C3A916A3305/' harderLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563298150/801A3DE3659B40B6C4D77200D0BE35BD6EA6BAB7/' tourScore = 0 villScore = 0 totalScore = 0 textPos = { {-0.602 , 0.107 , -1.080}, {0.172 , 0.108 , -0.784}, {0.491 , 0.108 , -0.272}, {0.634 , 0.107 , 0.535}, {0.026 , 0.107 , 1.062}, {-0.445 , 0.107 , 1.349}, {-1.229 , 0.107 , 1.072}, {-1.543 , 0.107 , 0.526}, {-1.683 , 0.107 , -0.277}, {-1.379 , 0.107 , -0.793} } textPosHard = { {-0.547 , 0.107 , -0.919}, {0.385 , 0.112 , -0.696}, {0.643 , 0.107 , -0.244}, {0.632 , 0.112 , 0.682}, {0.105 , 0.112 , 1.121}, {-0.542 , 0.112 , 1.373}, {-1.336 , 0.112 , 1.363}, {-1.864 , 0.112 , 0.447}, {-1.735 , 0.112 , -0.241}, {-1.329 , 0.112 , -0.908} } textPosHarder = { {-0.524 , 0.102 , -0.932}, {0.077 , 0.110 , -0.725}, {0.56 , 0.102 , -0.305}, {0.444 , 0.102 , 0.330}, {0.208 , 0.102 , 0.762}, {-0.401 , 0.102 , 0.964}, {-1.136 , 0.102 , 0.954}, {-1.613 , 0.102 , 0.545}, {-1.492 , 0.102 , -0.093}, {-1.491 , 0.102 , -0.511} } tourBtns = { {1.308 , 0.110 , -1.345}, {1.308 , 0.110 , -1.158}, {1.308 , 0.110 , -0.974}, {1.308 , 0.110 , -0.806}, {1.308 , 0.110 , -0.605}, {1.572 , 0.110 , -1.345}, {1.572 , 0.110 , -1.158}, {1.572 , 0.110 , -0.974}, {1.572 , 0.110 , -0.806}, {1.572 , 0.110 , -0.605} } tourBtnsScore = { 1,2,2,3,4, 2,2,3,4,5 } tourBtnsHard = { {1.304 , 0.107 , -1.355}, {1.457 , 0.107 , -1.355}, {1.728 , 0.107 , -1.355}, {1.304 , 0.107 , -1.160}, {1.457 , 0.107 , -1.160}, {1.728 , 0.107 , -1.160}, {1.304 , 0.107 , -0.978}, {1.457 , 0.107 , -0.978}, {1.728 , 0.107 , -0.978}, {1.304 , 0.107 , -0.794}, {1.457 , 0.107 , -0.794}, {1.728 , 0.107 , -0.794}, {1.304 , 0.107 , -0.611}, {1.457 , 0.107 , -0.611}, {1.728 , 0.107 , -0.611}, } tourBtnsScoreHard = { 1,2,2, 2,2,3, 2,3,3, 3,4,4, 4,5,5 } tourBtnsHarder = { {1.2 , 0.107 , -1.302}, {1.2 , 0.107 , -1.132}, {1.2 , 0.107 , -0.965}, {1.2 , 0.107 , -0.805}, {1.2 , 0.107 , -0.646}, {1.2 , 0.107 , -0.474}, {1.402 , 0.107 , -1.300}, {1.343 , 0.107 , -1.132}, {1.343 , 0.107 , -0.965}, {1.483 , 0.107 , -0.965}, {1.404 , 0.107 , -0.805}, {1.404 , 0.107 , -0.646}, {1.346 , 0.107 , -0.474}, {1.491 , 0.107 , -0.474}, {1.675 , 0.107 , -0.474}, } tourBtnsScoreHarder = { 2,0,1,2,3,2, 1,4,0,6,4,5,1,-2,-5 } tourScoreAvailable = {} villScoreAvailable = {} villBtn = { {1.382 , 0.107 , -0.093}, {1.382 , 0.107 , 0.062}, {1.853 , 0.107 , -0.241}, {1.853 , 0.107 , -0.093}, {1.853 , 0.107 , 0.062} } villBtnScore = { 14,13,12,11,10 } villBtnHard = { {1.393 , 0.107 , -0.088}, {1.393 , 0.107 , 0.075}, {1.858 , 0.107 , -0.244}, {1.858 , 0.107 , -0.088}, {1.858 , 0.107 , 0.075} } villBtnScoreHard = { 20,19,18,17,16 } villBtnHarder = { {1.26 , 0.107 , -0.082}, {1.26 , 0.107 , 0.065}, {1.686 , 0.107 , -0.220}, {1.686 , 0.107 , -0.082}, {1.686 , 0.107 , 0.065} } villBtnScoreHarder = { 17,16,15,13,11 } function setVill(info) vilInfo = info local diff = getObjectFromGUID('a769df').getVar("hard") local tempPos = {} tempTour = {} tempTourScore = {} tempVill = {} tempVillScore = {} tourScoreAvailable = {} villScoreAvailable = {} tourScore = 0 villScore = 0 totalScore = 0 self.createButton({ index = 0, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -1.311}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) self.createButton({ index = 1, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -0.097}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) if diff%3==1 then tempPos = textPos tempTour = tourBtns tempTourScore = tourBtnsScore tempVill = villBtn tempVillScore = villBtnScore elseif diff%3==2 then tempPos = textPosHard tempTour = tourBtnsHard tempTourScore = tourBtnsScoreHard tempVill = villBtnHard tempVillScore = villBtnScoreHard elseif diff%3==0 then tempPos = textPosHarder tempTour = tourBtnsHarder tempTourScore = tourBtnsScoreHarder tempVill = villBtnHarder tempVillScore = villBtnScoreHarder end for i, c in ipairs(info) do self.createButton({ click_function = "none", function_owner = self, label = c, position = tempPos[i], width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) end btnNum = #self.getButtons()-1 -- print(btnNum) for i, c in ipairs(tempTour) do -- print(tonumber(btnNum+i)) self.createButton({ index = tonumber(btnNum+i), click_function = "addUp_" .. i, function_owner = self, label = tempTourScore[i], position = tempTour[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempTour) do table.insert(tourScoreAvailable, #tourScoreAvailable+1, true) end villBtnNum = btnNum + #tempTour for i, c in ipairs(tempVill) do self.createButton({ index = tonumber(villBtnNum+i), click_function = "addUpVill_" .. i, function_owner = self, label = tempVillScore[i], position = tempVill[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempVill) do table.insert(villScoreAvailable, #villScoreAvailable+1, true) end end function addUp_1() local tourIndex = 1 commonAdd(tourIndex) end function addUp_2() local tourIndex = 2 commonAdd(tourIndex) end function addUp_3() local tourIndex = 3 commonAdd(tourIndex) end function addUp_4() local tourIndex = 4 commonAdd(tourIndex) end function addUp_5() local tourIndex = 5 commonAdd(tourIndex) end function addUp_6() local tourIndex = 6 commonAdd(tourIndex) end function addUp_7() local tourIndex = 7 commonAdd(tourIndex) end function addUp_8() local tourIndex = 8 commonAdd(tourIndex) end function addUp_9() local tourIndex = 9 commonAdd(tourIndex) end function addUp_10() local tourIndex = 10 commonAdd(tourIndex) end function addUp_11() local tourIndex = 11 commonAdd(tourIndex) end function addUp_12() local tourIndex = 12 commonAdd(tourIndex) end function addUp_13() local tourIndex = 13 commonAdd(tourIndex) end function addUp_14() local tourIndex = 14 commonAdd(tourIndex) end function addUp_15() local tourIndex = 15 commonAdd(tourIndex) end -- function addUp_16() local tourIndex = 16 commonAdd(tourIndex) end -- function addUp_17() local tourIndex = 17 commonAdd(tourIndex) end -- function addUp_18() local tourIndex = 18 commonAdd(tourIndex) end -- function addUp_19() local tourIndex = 19 commonAdd(tourIndex) end -- function addUp_20() local tourIndex = 20 commonAdd(tourIndex) end -- function addUp_21() local tourIndex = 21 commonAdd(tourIndex) end function addUpVill_1() local villIndex = 1 villAdd(villIndex) end function addUpVill_2() local villIndex = 2 villAdd(villIndex) end function addUpVill_3() local villIndex = 3 villAdd(villIndex) end function addUpVill_4() local villIndex = 4 villAdd(villIndex) end function addUpVill_5() local villIndex = 5 villAdd(villIndex) end function commonAdd(tourIndex) if tourScoreAvailable[tourIndex] then tourScore = tourScore + tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] else tourScore = tourScore - tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] end if tourScoreAvailable[tourIndex] then self.editButton({ index = tonumber(btnNum+tourIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(btnNum+tourIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end function villAdd(villIndex) -- print(villScoreAvailable[villIndex]) if villScoreAvailable[villIndex] then villScore = villScore + tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] else villScore = villScore - tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] end if villScoreAvailable[villIndex] then self.editButton({ index = tonumber(villBtnNum+villIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(villBtnNum+villIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end -- function addUp_1(score) tourScore = tourScore + score end function sumUp() self.editButton({ index = 0, label = tourScore .. "점", }) end function sumUpVill() self.editButton({ index = 1, label = "마을:\n" .. villScore .. "점", -- label = villScore, }) end function mapUse() local diff = getObjectFromGUID('a769df').getVar("hard") -- print(diff) local tempPos = {} if diff%3==1 then self.setCustomObject({image = easyLink,}) tempPos = textPos elseif diff%3==2 then self.setCustomObject({image = hardLink,}) tempPos = textPosHard elseif diff%3==0 then self.setCustomObject({image = harderLink,}) tempPos = textPosHarder end end function sleep(sec) local fin = os.clock() + sec while fin > os.clock() do coroutine.yield(0) end end function none() end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoardLuaScriptStateXmlUI38P/GUID60b45aName Custom_TokenTransformposX;@posYM?posZ@@rotX@U;rotY V@rotZwscaleX6@scaleY?scaleZ6@NicknameDescriptionGMNotesGreenAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomImageImageURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/ImageSecondaryURLImageScalar?WidthScaleCustomTokenKThickness?MergeDistancePixels.@StandUpStackableLuaScript+----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoard easyLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/' hardLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563295173/267D64CD7C9AEE32B7007F11A8A26C3A916A3305/' harderLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563298150/801A3DE3659B40B6C4D77200D0BE35BD6EA6BAB7/' tourScore = 0 villScore = 0 totalScore = 0 textPos = { {-0.602 , 0.107 , -1.080}, {0.172 , 0.108 , -0.784}, {0.491 , 0.108 , -0.272}, {0.634 , 0.107 , 0.535}, {0.026 , 0.107 , 1.062}, {-0.445 , 0.107 , 1.349}, {-1.229 , 0.107 , 1.072}, {-1.543 , 0.107 , 0.526}, {-1.683 , 0.107 , -0.277}, {-1.379 , 0.107 , -0.793} } textPosHard = { {-0.547 , 0.107 , -0.919}, {0.385 , 0.112 , -0.696}, {0.643 , 0.107 , -0.244}, {0.632 , 0.112 , 0.682}, {0.105 , 0.112 , 1.121}, {-0.542 , 0.112 , 1.373}, {-1.336 , 0.112 , 1.363}, {-1.864 , 0.112 , 0.447}, {-1.735 , 0.112 , -0.241}, {-1.329 , 0.112 , -0.908} } textPosHarder = { {-0.524 , 0.102 , -0.932}, {0.077 , 0.110 , -0.725}, {0.56 , 0.102 , -0.305}, {0.444 , 0.102 , 0.330}, {0.208 , 0.102 , 0.762}, {-0.401 , 0.102 , 0.964}, {-1.136 , 0.102 , 0.954}, {-1.613 , 0.102 , 0.545}, {-1.492 , 0.102 , -0.093}, {-1.491 , 0.102 , -0.511} } tourBtns = { {1.308 , 0.110 , -1.345}, {1.308 , 0.110 , -1.158}, {1.308 , 0.110 , -0.974}, {1.308 , 0.110 , -0.806}, {1.308 , 0.110 , -0.605}, {1.572 , 0.110 , -1.345}, {1.572 , 0.110 , -1.158}, {1.572 , 0.110 , -0.974}, {1.572 , 0.110 , -0.806}, {1.572 , 0.110 , -0.605} } tourBtnsScore = { 1,2,2,3,4, 2,2,3,4,5 } tourBtnsHard = { {1.304 , 0.107 , -1.355}, {1.457 , 0.107 , -1.355}, {1.728 , 0.107 , -1.355}, {1.304 , 0.107 , -1.160}, {1.457 , 0.107 , -1.160}, {1.728 , 0.107 , -1.160}, {1.304 , 0.107 , -0.978}, {1.457 , 0.107 , -0.978}, {1.728 , 0.107 , -0.978}, {1.304 , 0.107 , -0.794}, {1.457 , 0.107 , -0.794}, {1.728 , 0.107 , -0.794}, {1.304 , 0.107 , -0.611}, {1.457 , 0.107 , -0.611}, {1.728 , 0.107 , -0.611}, } tourBtnsScoreHard = { 1,2,2, 2,2,3, 2,3,3, 3,4,4, 4,5,5 } tourBtnsHarder = { {1.2 , 0.107 , -1.302}, {1.2 , 0.107 , -1.132}, {1.2 , 0.107 , -0.965}, {1.2 , 0.107 , -0.805}, {1.2 , 0.107 , -0.646}, {1.2 , 0.107 , -0.474}, {1.402 , 0.107 , -1.300}, {1.343 , 0.107 , -1.132}, {1.343 , 0.107 , -0.965}, {1.483 , 0.107 , -0.965}, {1.404 , 0.107 , -0.805}, {1.404 , 0.107 , -0.646}, {1.346 , 0.107 , -0.474}, {1.491 , 0.107 , -0.474}, {1.675 , 0.107 , -0.474}, } tourBtnsScoreHarder = { 2,0,1,2,3,2, 1,4,0,6,4,5,1,-2,-5 } tourScoreAvailable = {} villScoreAvailable = {} villBtn = { {1.382 , 0.107 , -0.093}, {1.382 , 0.107 , 0.062}, {1.853 , 0.107 , -0.241}, {1.853 , 0.107 , -0.093}, {1.853 , 0.107 , 0.062} } villBtnScore = { 14,13,12,11,10 } villBtnHard = { {1.393 , 0.107 , -0.088}, {1.393 , 0.107 , 0.075}, {1.858 , 0.107 , -0.244}, {1.858 , 0.107 , -0.088}, {1.858 , 0.107 , 0.075} } villBtnScoreHard = { 20,19,18,17,16 } villBtnHarder = { {1.26 , 0.107 , -0.082}, {1.26 , 0.107 , 0.065}, {1.686 , 0.107 , -0.220}, {1.686 , 0.107 , -0.082}, {1.686 , 0.107 , 0.065} } villBtnScoreHarder = { 17,16,15,13,11 } function setVill(info) vilInfo = info local diff = getObjectFromGUID('a769df').getVar("hard") local tempPos = {} tempTour = {} tempTourScore = {} tempVill = {} tempVillScore = {} tourScoreAvailable = {} villScoreAvailable = {} tourScore = 0 villScore = 0 totalScore = 0 self.createButton({ index = 0, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -1.311}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) self.createButton({ index = 1, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -0.097}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) if diff%3==1 then tempPos = textPos tempTour = tourBtns tempTourScore = tourBtnsScore tempVill = villBtn tempVillScore = villBtnScore elseif diff%3==2 then tempPos = textPosHard tempTour = tourBtnsHard tempTourScore = tourBtnsScoreHard tempVill = villBtnHard tempVillScore = villBtnScoreHard elseif diff%3==0 then tempPos = textPosHarder tempTour = tourBtnsHarder tempTourScore = tourBtnsScoreHarder tempVill = villBtnHarder tempVillScore = villBtnScoreHarder end for i, c in ipairs(info) do self.createButton({ click_function = "none", function_owner = self, label = c, position = tempPos[i], width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) end btnNum = #self.getButtons()-1 -- print(btnNum) for i, c in ipairs(tempTour) do -- print(tonumber(btnNum+i)) self.createButton({ index = tonumber(btnNum+i), click_function = "addUp_" .. i, function_owner = self, label = tempTourScore[i], position = tempTour[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempTour) do table.insert(tourScoreAvailable, #tourScoreAvailable+1, true) end villBtnNum = btnNum + #tempTour for i, c in ipairs(tempVill) do self.createButton({ index = tonumber(villBtnNum+i), click_function = "addUpVill_" .. i, function_owner = self, label = tempVillScore[i], position = tempVill[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempVill) do table.insert(villScoreAvailable, #villScoreAvailable+1, true) end end function addUp_1() local tourIndex = 1 commonAdd(tourIndex) end function addUp_2() local tourIndex = 2 commonAdd(tourIndex) end function addUp_3() local tourIndex = 3 commonAdd(tourIndex) end function addUp_4() local tourIndex = 4 commonAdd(tourIndex) end function addUp_5() local tourIndex = 5 commonAdd(tourIndex) end function addUp_6() local tourIndex = 6 commonAdd(tourIndex) end function addUp_7() local tourIndex = 7 commonAdd(tourIndex) end function addUp_8() local tourIndex = 8 commonAdd(tourIndex) end function addUp_9() local tourIndex = 9 commonAdd(tourIndex) end function addUp_10() local tourIndex = 10 commonAdd(tourIndex) end function addUp_11() local tourIndex = 11 commonAdd(tourIndex) end function addUp_12() local tourIndex = 12 commonAdd(tourIndex) end function addUp_13() local tourIndex = 13 commonAdd(tourIndex) end function addUp_14() local tourIndex = 14 commonAdd(tourIndex) end function addUp_15() local tourIndex = 15 commonAdd(tourIndex) end -- function addUp_16() local tourIndex = 16 commonAdd(tourIndex) end -- function addUp_17() local tourIndex = 17 commonAdd(tourIndex) end -- function addUp_18() local tourIndex = 18 commonAdd(tourIndex) end -- function addUp_19() local tourIndex = 19 commonAdd(tourIndex) end -- function addUp_20() local tourIndex = 20 commonAdd(tourIndex) end -- function addUp_21() local tourIndex = 21 commonAdd(tourIndex) end function addUpVill_1() local villIndex = 1 villAdd(villIndex) end function addUpVill_2() local villIndex = 2 villAdd(villIndex) end function addUpVill_3() local villIndex = 3 villAdd(villIndex) end function addUpVill_4() local villIndex = 4 villAdd(villIndex) end function addUpVill_5() local villIndex = 5 villAdd(villIndex) end function commonAdd(tourIndex) if tourScoreAvailable[tourIndex] then tourScore = tourScore + tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] else tourScore = tourScore - tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] end if tourScoreAvailable[tourIndex] then self.editButton({ index = tonumber(btnNum+tourIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(btnNum+tourIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end function villAdd(villIndex) -- print(villScoreAvailable[villIndex]) if villScoreAvailable[villIndex] then villScore = villScore + tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] else villScore = villScore - tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] end if villScoreAvailable[villIndex] then self.editButton({ index = tonumber(villBtnNum+villIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(villBtnNum+villIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end -- function addUp_1(score) tourScore = tourScore + score end function sumUp() self.editButton({ index = 0, label = tourScore .. "점", }) end function sumUpVill() self.editButton({ index = 1, label = "마을:\n" .. villScore .. "점", -- label = villScore, }) end function mapUse() local diff = getObjectFromGUID('a769df').getVar("hard") -- print(diff) local tempPos = {} if diff%3==1 then self.setCustomObject({image = easyLink,}) tempPos = textPos elseif diff%3==2 then self.setCustomObject({image = hardLink,}) tempPos = textPosHard elseif diff%3==0 then self.setCustomObject({image = harderLink,}) tempPos = textPosHarder end end function sleep(sec) local fin = os.clock() + sec while fin > os.clock() do coroutine.yield(0) end end function none() end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoardLuaScriptStateXmlUI39O/GUID3fee9cName Custom_TokenTransformposX;@posYM?posZ>rotX,>rotY`V@rotZ>scaleX6@scaleY?scaleZ6@NicknameDescriptionGMNotesTealAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomImageImageURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/ImageSecondaryURLImageScalar?WidthScaleCustomTokenKThickness?MergeDistancePixels.@StandUpStackableLuaScript+----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoard easyLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/' hardLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563295173/267D64CD7C9AEE32B7007F11A8A26C3A916A3305/' harderLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563298150/801A3DE3659B40B6C4D77200D0BE35BD6EA6BAB7/' tourScore = 0 villScore = 0 totalScore = 0 textPos = { {-0.602 , 0.107 , -1.080}, {0.172 , 0.108 , -0.784}, {0.491 , 0.108 , -0.272}, {0.634 , 0.107 , 0.535}, {0.026 , 0.107 , 1.062}, {-0.445 , 0.107 , 1.349}, {-1.229 , 0.107 , 1.072}, {-1.543 , 0.107 , 0.526}, {-1.683 , 0.107 , -0.277}, {-1.379 , 0.107 , -0.793} } textPosHard = { {-0.547 , 0.107 , -0.919}, {0.385 , 0.112 , -0.696}, {0.643 , 0.107 , -0.244}, {0.632 , 0.112 , 0.682}, {0.105 , 0.112 , 1.121}, {-0.542 , 0.112 , 1.373}, {-1.336 , 0.112 , 1.363}, {-1.864 , 0.112 , 0.447}, {-1.735 , 0.112 , -0.241}, {-1.329 , 0.112 , -0.908} } textPosHarder = { {-0.524 , 0.102 , -0.932}, {0.077 , 0.110 , -0.725}, {0.56 , 0.102 , -0.305}, {0.444 , 0.102 , 0.330}, {0.208 , 0.102 , 0.762}, {-0.401 , 0.102 , 0.964}, {-1.136 , 0.102 , 0.954}, {-1.613 , 0.102 , 0.545}, {-1.492 , 0.102 , -0.093}, {-1.491 , 0.102 , -0.511} } tourBtns = { {1.308 , 0.110 , -1.345}, {1.308 , 0.110 , -1.158}, {1.308 , 0.110 , -0.974}, {1.308 , 0.110 , -0.806}, {1.308 , 0.110 , -0.605}, {1.572 , 0.110 , -1.345}, {1.572 , 0.110 , -1.158}, {1.572 , 0.110 , -0.974}, {1.572 , 0.110 , -0.806}, {1.572 , 0.110 , -0.605} } tourBtnsScore = { 1,2,2,3,4, 2,2,3,4,5 } tourBtnsHard = { {1.304 , 0.107 , -1.355}, {1.457 , 0.107 , -1.355}, {1.728 , 0.107 , -1.355}, {1.304 , 0.107 , -1.160}, {1.457 , 0.107 , -1.160}, {1.728 , 0.107 , -1.160}, {1.304 , 0.107 , -0.978}, {1.457 , 0.107 , -0.978}, {1.728 , 0.107 , -0.978}, {1.304 , 0.107 , -0.794}, {1.457 , 0.107 , -0.794}, {1.728 , 0.107 , -0.794}, {1.304 , 0.107 , -0.611}, {1.457 , 0.107 , -0.611}, {1.728 , 0.107 , -0.611}, } tourBtnsScoreHard = { 1,2,2, 2,2,3, 2,3,3, 3,4,4, 4,5,5 } tourBtnsHarder = { {1.2 , 0.107 , -1.302}, {1.2 , 0.107 , -1.132}, {1.2 , 0.107 , -0.965}, {1.2 , 0.107 , -0.805}, {1.2 , 0.107 , -0.646}, {1.2 , 0.107 , -0.474}, {1.402 , 0.107 , -1.300}, {1.343 , 0.107 , -1.132}, {1.343 , 0.107 , -0.965}, {1.483 , 0.107 , -0.965}, {1.404 , 0.107 , -0.805}, {1.404 , 0.107 , -0.646}, {1.346 , 0.107 , -0.474}, {1.491 , 0.107 , -0.474}, {1.675 , 0.107 , -0.474}, } tourBtnsScoreHarder = { 2,0,1,2,3,2, 1,4,0,6,4,5,1,-2,-5 } tourScoreAvailable = {} villScoreAvailable = {} villBtn = { {1.382 , 0.107 , -0.093}, {1.382 , 0.107 , 0.062}, {1.853 , 0.107 , -0.241}, {1.853 , 0.107 , -0.093}, {1.853 , 0.107 , 0.062} } villBtnScore = { 14,13,12,11,10 } villBtnHard = { {1.393 , 0.107 , -0.088}, {1.393 , 0.107 , 0.075}, {1.858 , 0.107 , -0.244}, {1.858 , 0.107 , -0.088}, {1.858 , 0.107 , 0.075} } villBtnScoreHard = { 20,19,18,17,16 } villBtnHarder = { {1.26 , 0.107 , -0.082}, {1.26 , 0.107 , 0.065}, {1.686 , 0.107 , -0.220}, {1.686 , 0.107 , -0.082}, {1.686 , 0.107 , 0.065} } villBtnScoreHarder = { 17,16,15,13,11 } function setVill(info) vilInfo = info local diff = getObjectFromGUID('a769df').getVar("hard") local tempPos = {} tempTour = {} tempTourScore = {} tempVill = {} tempVillScore = {} tourScoreAvailable = {} villScoreAvailable = {} tourScore = 0 villScore = 0 totalScore = 0 self.createButton({ index = 0, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -1.311}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) self.createButton({ index = 1, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -0.097}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) if diff%3==1 then tempPos = textPos tempTour = tourBtns tempTourScore = tourBtnsScore tempVill = villBtn tempVillScore = villBtnScore elseif diff%3==2 then tempPos = textPosHard tempTour = tourBtnsHard tempTourScore = tourBtnsScoreHard tempVill = villBtnHard tempVillScore = villBtnScoreHard elseif diff%3==0 then tempPos = textPosHarder tempTour = tourBtnsHarder tempTourScore = tourBtnsScoreHarder tempVill = villBtnHarder tempVillScore = villBtnScoreHarder end for i, c in ipairs(info) do self.createButton({ click_function = "none", function_owner = self, label = c, position = tempPos[i], width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) end btnNum = #self.getButtons()-1 -- print(btnNum) for i, c in ipairs(tempTour) do -- print(tonumber(btnNum+i)) self.createButton({ index = tonumber(btnNum+i), click_function = "addUp_" .. i, function_owner = self, label = tempTourScore[i], position = tempTour[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempTour) do table.insert(tourScoreAvailable, #tourScoreAvailable+1, true) end villBtnNum = btnNum + #tempTour for i, c in ipairs(tempVill) do self.createButton({ index = tonumber(villBtnNum+i), click_function = "addUpVill_" .. i, function_owner = self, label = tempVillScore[i], position = tempVill[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempVill) do table.insert(villScoreAvailable, #villScoreAvailable+1, true) end end function addUp_1() local tourIndex = 1 commonAdd(tourIndex) end function addUp_2() local tourIndex = 2 commonAdd(tourIndex) end function addUp_3() local tourIndex = 3 commonAdd(tourIndex) end function addUp_4() local tourIndex = 4 commonAdd(tourIndex) end function addUp_5() local tourIndex = 5 commonAdd(tourIndex) end function addUp_6() local tourIndex = 6 commonAdd(tourIndex) end function addUp_7() local tourIndex = 7 commonAdd(tourIndex) end function addUp_8() local tourIndex = 8 commonAdd(tourIndex) end function addUp_9() local tourIndex = 9 commonAdd(tourIndex) end function addUp_10() local tourIndex = 10 commonAdd(tourIndex) end function addUp_11() local tourIndex = 11 commonAdd(tourIndex) end function addUp_12() local tourIndex = 12 commonAdd(tourIndex) end function addUp_13() local tourIndex = 13 commonAdd(tourIndex) end function addUp_14() local tourIndex = 14 commonAdd(tourIndex) end function addUp_15() local tourIndex = 15 commonAdd(tourIndex) end -- function addUp_16() local tourIndex = 16 commonAdd(tourIndex) end -- function addUp_17() local tourIndex = 17 commonAdd(tourIndex) end -- function addUp_18() local tourIndex = 18 commonAdd(tourIndex) end -- function addUp_19() local tourIndex = 19 commonAdd(tourIndex) end -- function addUp_20() local tourIndex = 20 commonAdd(tourIndex) end -- function addUp_21() local tourIndex = 21 commonAdd(tourIndex) end function addUpVill_1() local villIndex = 1 villAdd(villIndex) end function addUpVill_2() local villIndex = 2 villAdd(villIndex) end function addUpVill_3() local villIndex = 3 villAdd(villIndex) end function addUpVill_4() local villIndex = 4 villAdd(villIndex) end function addUpVill_5() local villIndex = 5 villAdd(villIndex) end function commonAdd(tourIndex) if tourScoreAvailable[tourIndex] then tourScore = tourScore + tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] else tourScore = tourScore - tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] end if tourScoreAvailable[tourIndex] then self.editButton({ index = tonumber(btnNum+tourIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(btnNum+tourIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end function villAdd(villIndex) -- print(villScoreAvailable[villIndex]) if villScoreAvailable[villIndex] then villScore = villScore + tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] else villScore = villScore - tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] end if villScoreAvailable[villIndex] then self.editButton({ index = tonumber(villBtnNum+villIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(villBtnNum+villIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end -- function addUp_1(score) tourScore = tourScore + score end function sumUp() self.editButton({ index = 0, label = tourScore .. "점", }) end function sumUpVill() self.editButton({ index = 1, label = "마을:\n" .. villScore .. "점", -- label = villScore, }) end function mapUse() local diff = getObjectFromGUID('a769df').getVar("hard") -- print(diff) local tempPos = {} if diff%3==1 then self.setCustomObject({image = easyLink,}) tempPos = textPos elseif diff%3==2 then self.setCustomObject({image = hardLink,}) tempPos = textPosHard elseif diff%3==0 then self.setCustomObject({image = harderLink,}) tempPos = textPosHarder end end function sleep(sec) local fin = os.clock() + sec while fin > os.clock() do coroutine.yield(0) end end function none() end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoardLuaScriptStateXmlUI40O/GUID1f223bName Custom_TokenTransformposX;@posYM?posZ@rotXVrotY`V@rotZ`scaleX6@scaleY?scaleZ6@NicknameDescriptionGMNotesBlueAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomImageImageURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/ImageSecondaryURLImageScalar?WidthScaleCustomTokenKThickness?MergeDistancePixels.@StandUpStackableLuaScript+----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoard easyLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/' hardLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563295173/267D64CD7C9AEE32B7007F11A8A26C3A916A3305/' harderLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563298150/801A3DE3659B40B6C4D77200D0BE35BD6EA6BAB7/' tourScore = 0 villScore = 0 totalScore = 0 textPos = { {-0.602 , 0.107 , -1.080}, {0.172 , 0.108 , -0.784}, {0.491 , 0.108 , -0.272}, {0.634 , 0.107 , 0.535}, {0.026 , 0.107 , 1.062}, {-0.445 , 0.107 , 1.349}, {-1.229 , 0.107 , 1.072}, {-1.543 , 0.107 , 0.526}, {-1.683 , 0.107 , -0.277}, {-1.379 , 0.107 , -0.793} } textPosHard = { {-0.547 , 0.107 , -0.919}, {0.385 , 0.112 , -0.696}, {0.643 , 0.107 , -0.244}, {0.632 , 0.112 , 0.682}, {0.105 , 0.112 , 1.121}, {-0.542 , 0.112 , 1.373}, {-1.336 , 0.112 , 1.363}, {-1.864 , 0.112 , 0.447}, {-1.735 , 0.112 , -0.241}, {-1.329 , 0.112 , -0.908} } textPosHarder = { {-0.524 , 0.102 , -0.932}, {0.077 , 0.110 , -0.725}, {0.56 , 0.102 , -0.305}, {0.444 , 0.102 , 0.330}, {0.208 , 0.102 , 0.762}, {-0.401 , 0.102 , 0.964}, {-1.136 , 0.102 , 0.954}, {-1.613 , 0.102 , 0.545}, {-1.492 , 0.102 , -0.093}, {-1.491 , 0.102 , -0.511} } tourBtns = { {1.308 , 0.110 , -1.345}, {1.308 , 0.110 , -1.158}, {1.308 , 0.110 , -0.974}, {1.308 , 0.110 , -0.806}, {1.308 , 0.110 , -0.605}, {1.572 , 0.110 , -1.345}, {1.572 , 0.110 , -1.158}, {1.572 , 0.110 , -0.974}, {1.572 , 0.110 , -0.806}, {1.572 , 0.110 , -0.605} } tourBtnsScore = { 1,2,2,3,4, 2,2,3,4,5 } tourBtnsHard = { {1.304 , 0.107 , -1.355}, {1.457 , 0.107 , -1.355}, {1.728 , 0.107 , -1.355}, {1.304 , 0.107 , -1.160}, {1.457 , 0.107 , -1.160}, {1.728 , 0.107 , -1.160}, {1.304 , 0.107 , -0.978}, {1.457 , 0.107 , -0.978}, {1.728 , 0.107 , -0.978}, {1.304 , 0.107 , -0.794}, {1.457 , 0.107 , -0.794}, {1.728 , 0.107 , -0.794}, {1.304 , 0.107 , -0.611}, {1.457 , 0.107 , -0.611}, {1.728 , 0.107 , -0.611}, } tourBtnsScoreHard = { 1,2,2, 2,2,3, 2,3,3, 3,4,4, 4,5,5 } tourBtnsHarder = { {1.2 , 0.107 , -1.302}, {1.2 , 0.107 , -1.132}, {1.2 , 0.107 , -0.965}, {1.2 , 0.107 , -0.805}, {1.2 , 0.107 , -0.646}, {1.2 , 0.107 , -0.474}, {1.402 , 0.107 , -1.300}, {1.343 , 0.107 , -1.132}, {1.343 , 0.107 , -0.965}, {1.483 , 0.107 , -0.965}, {1.404 , 0.107 , -0.805}, {1.404 , 0.107 , -0.646}, {1.346 , 0.107 , -0.474}, {1.491 , 0.107 , -0.474}, {1.675 , 0.107 , -0.474}, } tourBtnsScoreHarder = { 2,0,1,2,3,2, 1,4,0,6,4,5,1,-2,-5 } tourScoreAvailable = {} villScoreAvailable = {} villBtn = { {1.382 , 0.107 , -0.093}, {1.382 , 0.107 , 0.062}, {1.853 , 0.107 , -0.241}, {1.853 , 0.107 , -0.093}, {1.853 , 0.107 , 0.062} } villBtnScore = { 14,13,12,11,10 } villBtnHard = { {1.393 , 0.107 , -0.088}, {1.393 , 0.107 , 0.075}, {1.858 , 0.107 , -0.244}, {1.858 , 0.107 , -0.088}, {1.858 , 0.107 , 0.075} } villBtnScoreHard = { 20,19,18,17,16 } villBtnHarder = { {1.26 , 0.107 , -0.082}, {1.26 , 0.107 , 0.065}, {1.686 , 0.107 , -0.220}, {1.686 , 0.107 , -0.082}, {1.686 , 0.107 , 0.065} } villBtnScoreHarder = { 17,16,15,13,11 } function setVill(info) vilInfo = info local diff = getObjectFromGUID('a769df').getVar("hard") local tempPos = {} tempTour = {} tempTourScore = {} tempVill = {} tempVillScore = {} tourScoreAvailable = {} villScoreAvailable = {} tourScore = 0 villScore = 0 totalScore = 0 self.createButton({ index = 0, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -1.311}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) self.createButton({ index = 1, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -0.097}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) if diff%3==1 then tempPos = textPos tempTour = tourBtns tempTourScore = tourBtnsScore tempVill = villBtn tempVillScore = villBtnScore elseif diff%3==2 then tempPos = textPosHard tempTour = tourBtnsHard tempTourScore = tourBtnsScoreHard tempVill = villBtnHard tempVillScore = villBtnScoreHard elseif diff%3==0 then tempPos = textPosHarder tempTour = tourBtnsHarder tempTourScore = tourBtnsScoreHarder tempVill = villBtnHarder tempVillScore = villBtnScoreHarder end for i, c in ipairs(info) do self.createButton({ click_function = "none", function_owner = self, label = c, position = tempPos[i], width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) end btnNum = #self.getButtons()-1 -- print(btnNum) for i, c in ipairs(tempTour) do -- print(tonumber(btnNum+i)) self.createButton({ index = tonumber(btnNum+i), click_function = "addUp_" .. i, function_owner = self, label = tempTourScore[i], position = tempTour[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempTour) do table.insert(tourScoreAvailable, #tourScoreAvailable+1, true) end villBtnNum = btnNum + #tempTour for i, c in ipairs(tempVill) do self.createButton({ index = tonumber(villBtnNum+i), click_function = "addUpVill_" .. i, function_owner = self, label = tempVillScore[i], position = tempVill[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempVill) do table.insert(villScoreAvailable, #villScoreAvailable+1, true) end end function addUp_1() local tourIndex = 1 commonAdd(tourIndex) end function addUp_2() local tourIndex = 2 commonAdd(tourIndex) end function addUp_3() local tourIndex = 3 commonAdd(tourIndex) end function addUp_4() local tourIndex = 4 commonAdd(tourIndex) end function addUp_5() local tourIndex = 5 commonAdd(tourIndex) end function addUp_6() local tourIndex = 6 commonAdd(tourIndex) end function addUp_7() local tourIndex = 7 commonAdd(tourIndex) end function addUp_8() local tourIndex = 8 commonAdd(tourIndex) end function addUp_9() local tourIndex = 9 commonAdd(tourIndex) end function addUp_10() local tourIndex = 10 commonAdd(tourIndex) end function addUp_11() local tourIndex = 11 commonAdd(tourIndex) end function addUp_12() local tourIndex = 12 commonAdd(tourIndex) end function addUp_13() local tourIndex = 13 commonAdd(tourIndex) end function addUp_14() local tourIndex = 14 commonAdd(tourIndex) end function addUp_15() local tourIndex = 15 commonAdd(tourIndex) end -- function addUp_16() local tourIndex = 16 commonAdd(tourIndex) end -- function addUp_17() local tourIndex = 17 commonAdd(tourIndex) end -- function addUp_18() local tourIndex = 18 commonAdd(tourIndex) end -- function addUp_19() local tourIndex = 19 commonAdd(tourIndex) end -- function addUp_20() local tourIndex = 20 commonAdd(tourIndex) end -- function addUp_21() local tourIndex = 21 commonAdd(tourIndex) end function addUpVill_1() local villIndex = 1 villAdd(villIndex) end function addUpVill_2() local villIndex = 2 villAdd(villIndex) end function addUpVill_3() local villIndex = 3 villAdd(villIndex) end function addUpVill_4() local villIndex = 4 villAdd(villIndex) end function addUpVill_5() local villIndex = 5 villAdd(villIndex) end function commonAdd(tourIndex) if tourScoreAvailable[tourIndex] then tourScore = tourScore + tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] else tourScore = tourScore - tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] end if tourScoreAvailable[tourIndex] then self.editButton({ index = tonumber(btnNum+tourIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(btnNum+tourIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end function villAdd(villIndex) -- print(villScoreAvailable[villIndex]) if villScoreAvailable[villIndex] then villScore = villScore + tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] else villScore = villScore - tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] end if villScoreAvailable[villIndex] then self.editButton({ index = tonumber(villBtnNum+villIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(villBtnNum+villIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end -- function addUp_1(score) tourScore = tourScore + score end function sumUp() self.editButton({ index = 0, label = tourScore .. "점", }) end function sumUpVill() self.editButton({ index = 1, label = "마을:\n" .. villScore .. "점", -- label = villScore, }) end function mapUse() local diff = getObjectFromGUID('a769df').getVar("hard") -- print(diff) local tempPos = {} if diff%3==1 then self.setCustomObject({image = easyLink,}) tempPos = textPos elseif diff%3==2 then self.setCustomObject({image = hardLink,}) tempPos = textPosHard elseif diff%3==0 then self.setCustomObject({image = harderLink,}) tempPos = textPosHarder end end function sleep(sec) local fin = os.clock() + sec while fin > os.clock() do coroutine.yield(0) end end function none() end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoardLuaScriptStateXmlUI41Q/GUID65d6f1Name Custom_TokenTransformposX;posYM?posZ@rotXq^rotY@vp@rotZ wscaleX6@scaleY?scaleZ6@NicknameDescriptionGMNotesPurpleAltLookAngle&xyzColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCustomImageImageURLfhttp://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/ImageSecondaryURLImageScalar?WidthScaleCustomTokenKThickness?MergeDistancePixels.@StandUpStackableLuaScript+----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoard easyLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563291780/AD91B57C02443392D511AF58AABCF06D8D86E5AC/' hardLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563295173/267D64CD7C9AEE32B7007F11A8A26C3A916A3305/' harderLink = 'http://cloud-3.steamusercontent.com/ugc/2093669747563298150/801A3DE3659B40B6C4D77200D0BE35BD6EA6BAB7/' tourScore = 0 villScore = 0 totalScore = 0 textPos = { {-0.602 , 0.107 , -1.080}, {0.172 , 0.108 , -0.784}, {0.491 , 0.108 , -0.272}, {0.634 , 0.107 , 0.535}, {0.026 , 0.107 , 1.062}, {-0.445 , 0.107 , 1.349}, {-1.229 , 0.107 , 1.072}, {-1.543 , 0.107 , 0.526}, {-1.683 , 0.107 , -0.277}, {-1.379 , 0.107 , -0.793} } textPosHard = { {-0.547 , 0.107 , -0.919}, {0.385 , 0.112 , -0.696}, {0.643 , 0.107 , -0.244}, {0.632 , 0.112 , 0.682}, {0.105 , 0.112 , 1.121}, {-0.542 , 0.112 , 1.373}, {-1.336 , 0.112 , 1.363}, {-1.864 , 0.112 , 0.447}, {-1.735 , 0.112 , -0.241}, {-1.329 , 0.112 , -0.908} } textPosHarder = { {-0.524 , 0.102 , -0.932}, {0.077 , 0.110 , -0.725}, {0.56 , 0.102 , -0.305}, {0.444 , 0.102 , 0.330}, {0.208 , 0.102 , 0.762}, {-0.401 , 0.102 , 0.964}, {-1.136 , 0.102 , 0.954}, {-1.613 , 0.102 , 0.545}, {-1.492 , 0.102 , -0.093}, {-1.491 , 0.102 , -0.511} } tourBtns = { {1.308 , 0.110 , -1.345}, {1.308 , 0.110 , -1.158}, {1.308 , 0.110 , -0.974}, {1.308 , 0.110 , -0.806}, {1.308 , 0.110 , -0.605}, {1.572 , 0.110 , -1.345}, {1.572 , 0.110 , -1.158}, {1.572 , 0.110 , -0.974}, {1.572 , 0.110 , -0.806}, {1.572 , 0.110 , -0.605} } tourBtnsScore = { 1,2,2,3,4, 2,2,3,4,5 } tourBtnsHard = { {1.304 , 0.107 , -1.355}, {1.457 , 0.107 , -1.355}, {1.728 , 0.107 , -1.355}, {1.304 , 0.107 , -1.160}, {1.457 , 0.107 , -1.160}, {1.728 , 0.107 , -1.160}, {1.304 , 0.107 , -0.978}, {1.457 , 0.107 , -0.978}, {1.728 , 0.107 , -0.978}, {1.304 , 0.107 , -0.794}, {1.457 , 0.107 , -0.794}, {1.728 , 0.107 , -0.794}, {1.304 , 0.107 , -0.611}, {1.457 , 0.107 , -0.611}, {1.728 , 0.107 , -0.611}, } tourBtnsScoreHard = { 1,2,2, 2,2,3, 2,3,3, 3,4,4, 4,5,5 } tourBtnsHarder = { {1.2 , 0.107 , -1.302}, {1.2 , 0.107 , -1.132}, {1.2 , 0.107 , -0.965}, {1.2 , 0.107 , -0.805}, {1.2 , 0.107 , -0.646}, {1.2 , 0.107 , -0.474}, {1.402 , 0.107 , -1.300}, {1.343 , 0.107 , -1.132}, {1.343 , 0.107 , -0.965}, {1.483 , 0.107 , -0.965}, {1.404 , 0.107 , -0.805}, {1.404 , 0.107 , -0.646}, {1.346 , 0.107 , -0.474}, {1.491 , 0.107 , -0.474}, {1.675 , 0.107 , -0.474}, } tourBtnsScoreHarder = { 2,0,1,2,3,2, 1,4,0,6,4,5,1,-2,-5 } tourScoreAvailable = {} villScoreAvailable = {} villBtn = { {1.382 , 0.107 , -0.093}, {1.382 , 0.107 , 0.062}, {1.853 , 0.107 , -0.241}, {1.853 , 0.107 , -0.093}, {1.853 , 0.107 , 0.062} } villBtnScore = { 14,13,12,11,10 } villBtnHard = { {1.393 , 0.107 , -0.088}, {1.393 , 0.107 , 0.075}, {1.858 , 0.107 , -0.244}, {1.858 , 0.107 , -0.088}, {1.858 , 0.107 , 0.075} } villBtnScoreHard = { 20,19,18,17,16 } villBtnHarder = { {1.26 , 0.107 , -0.082}, {1.26 , 0.107 , 0.065}, {1.686 , 0.107 , -0.220}, {1.686 , 0.107 , -0.082}, {1.686 , 0.107 , 0.065} } villBtnScoreHarder = { 17,16,15,13,11 } function setVill(info) vilInfo = info local diff = getObjectFromGUID('a769df').getVar("hard") local tempPos = {} tempTour = {} tempTourScore = {} tempVill = {} tempVillScore = {} tourScoreAvailable = {} villScoreAvailable = {} tourScore = 0 villScore = 0 totalScore = 0 self.createButton({ index = 0, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -1.311}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) self.createButton({ index = 1, click_function = "none", function_owner = self, label = "", position = {2.488 , -0.098 , -0.097}, width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) if diff%3==1 then tempPos = textPos tempTour = tourBtns tempTourScore = tourBtnsScore tempVill = villBtn tempVillScore = villBtnScore elseif diff%3==2 then tempPos = textPosHard tempTour = tourBtnsHard tempTourScore = tourBtnsScoreHard tempVill = villBtnHard tempVillScore = villBtnScoreHard elseif diff%3==0 then tempPos = textPosHarder tempTour = tourBtnsHarder tempTourScore = tourBtnsScoreHarder tempVill = villBtnHarder tempVillScore = villBtnScoreHarder end for i, c in ipairs(info) do self.createButton({ click_function = "none", function_owner = self, label = c, position = tempPos[i], width = 0, height = 0, font_size = 100, font_color = self.getGMNotes(), }) end btnNum = #self.getButtons()-1 -- print(btnNum) for i, c in ipairs(tempTour) do -- print(tonumber(btnNum+i)) self.createButton({ index = tonumber(btnNum+i), click_function = "addUp_" .. i, function_owner = self, label = tempTourScore[i], position = tempTour[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempTour) do table.insert(tourScoreAvailable, #tourScoreAvailable+1, true) end villBtnNum = btnNum + #tempTour for i, c in ipairs(tempVill) do self.createButton({ index = tonumber(villBtnNum+i), click_function = "addUpVill_" .. i, function_owner = self, label = tempVillScore[i], position = tempVill[i], width = 100, height = 100, font_size = 100, color = {0, 0, 0, 0}, font_color = self.getGMNotes(), }) end for i, c in ipairs(tempVill) do table.insert(villScoreAvailable, #villScoreAvailable+1, true) end end function addUp_1() local tourIndex = 1 commonAdd(tourIndex) end function addUp_2() local tourIndex = 2 commonAdd(tourIndex) end function addUp_3() local tourIndex = 3 commonAdd(tourIndex) end function addUp_4() local tourIndex = 4 commonAdd(tourIndex) end function addUp_5() local tourIndex = 5 commonAdd(tourIndex) end function addUp_6() local tourIndex = 6 commonAdd(tourIndex) end function addUp_7() local tourIndex = 7 commonAdd(tourIndex) end function addUp_8() local tourIndex = 8 commonAdd(tourIndex) end function addUp_9() local tourIndex = 9 commonAdd(tourIndex) end function addUp_10() local tourIndex = 10 commonAdd(tourIndex) end function addUp_11() local tourIndex = 11 commonAdd(tourIndex) end function addUp_12() local tourIndex = 12 commonAdd(tourIndex) end function addUp_13() local tourIndex = 13 commonAdd(tourIndex) end function addUp_14() local tourIndex = 14 commonAdd(tourIndex) end function addUp_15() local tourIndex = 15 commonAdd(tourIndex) end -- function addUp_16() local tourIndex = 16 commonAdd(tourIndex) end -- function addUp_17() local tourIndex = 17 commonAdd(tourIndex) end -- function addUp_18() local tourIndex = 18 commonAdd(tourIndex) end -- function addUp_19() local tourIndex = 19 commonAdd(tourIndex) end -- function addUp_20() local tourIndex = 20 commonAdd(tourIndex) end -- function addUp_21() local tourIndex = 21 commonAdd(tourIndex) end function addUpVill_1() local villIndex = 1 villAdd(villIndex) end function addUpVill_2() local villIndex = 2 villAdd(villIndex) end function addUpVill_3() local villIndex = 3 villAdd(villIndex) end function addUpVill_4() local villIndex = 4 villAdd(villIndex) end function addUpVill_5() local villIndex = 5 villAdd(villIndex) end function commonAdd(tourIndex) if tourScoreAvailable[tourIndex] then tourScore = tourScore + tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] else tourScore = tourScore - tempTourScore[tourIndex] sumUp() tourScoreAvailable[tourIndex] = not tourScoreAvailable[tourIndex] end if tourScoreAvailable[tourIndex] then self.editButton({ index = tonumber(btnNum+tourIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(btnNum+tourIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end function villAdd(villIndex) -- print(villScoreAvailable[villIndex]) if villScoreAvailable[villIndex] then villScore = villScore + tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] else villScore = villScore - tempVillScore[villIndex] sumUpVill() villScoreAvailable[villIndex] = not villScoreAvailable[villIndex] end if villScoreAvailable[villIndex] then self.editButton({ index = tonumber(villBtnNum+villIndex), label = " ", color = {0, 0, 0, 0}, }) else self.editButton({ index = tonumber(villBtnNum+villIndex), label = "✗", color = {0, 0, 0, 0.7}, }) end end -- function addUp_1(score) tourScore = tourScore + score end function sumUp() self.editButton({ index = 0, label = tourScore .. "점", }) end function sumUpVill() self.editButton({ index = 1, label = "마을:\n" .. villScore .. "점", -- label = villScore, }) end function mapUse() local diff = getObjectFromGUID('a769df').getVar("hard") -- print(diff) local tempPos = {} if diff%3==1 then self.setCustomObject({image = easyLink,}) tempPos = textPos elseif diff%3==2 then self.setCustomObject({image = hardLink,}) tempPos = textPosHard elseif diff%3==0 then self.setCustomObject({image = harderLink,}) tempPos = textPosHarder end end function sleep(sec) local fin = os.clock() + sec while fin > os.clock() do coroutine.yield(0) end end function none() end ----#include D:\Game\테이블탑 시뮬레이터 창작마당 모음\직접만든 모드\[Script]\투카나 여행길\scoreBoardLuaScriptStateXmlUI