개인 자료란 (JE)

  서버 커뮤니티

자료란에 모든 게시글은 반드시 자료란 글작성 가이드를 준수해야합니다. 글 작성 전에 반드시 확인해주세요!

한국 마인크래프트 포럼

마인크래프트 자료 및 커뮤니티 플랫폼

전체 회원수 121,918명 ( +92명 )

※ 장기간 미활동 회원 제외

Profile 브혼 개발자

Vhone dc73ee51d49946dabf4f634c6e3ce5c6

Profile

자료란new 공통new 리뷰, 강좌new 스크립트

[팁] 변수 파일 여러개 사용하기

2020.05.07 조회 수 475 추천 수 0

1:1 오픈톡방에서 티투엔님에게 변수가 저장되는 variables.csv 파일을 여러개 사용할 수 있는지 질문을 받았습니다.

csv파일은 쉼표로 구분된 데이터 파일인데요. 가장 유명한 프로그램은 엑셀이지만, 

포토샵의 데이터세트 기능도 요 csv포멧을 사용합니다. 

csv파일은 100만개가 넘으면 읽거나 쓰는데 문제가 생긴다고해요. 

티투엔님도 변수가 140만개가 넘어가니 문제가 생겼다고 하셨어요.




# ==== Variables ====

databases:
    # Databases to store variables in. These can either be used as a simple one-server-storage
    # where variables are written constantly but only read at server start,
    # or as a connection between multiple servers by monitoring the database(s) for changes.
    #
    # You can define as many databases as you want, just make sure to choose a distinct name for each one, and don't forget to set all options correctly.
    #
   # To be able to use a database you'll need to download the plugin 'SQLibrary' from https://dev.bukkit.org/projects/sqlibrary/files
    # and install it in your server's plugin directory like other plugins.
    #
    # Please note that '/skript reload' will not reload this section, i.e. you'll have to restart Skript for changes to take effect.

config.sk 파일을 열어보시면 맨 아래에 보기와 같은 database 옵션이 있습니다.




    default:
        # The default "database" is a simple text file, with each variable on a separate line and the variable's name, type, and value separated by commas.
        # This is the last database in this list to catch all variables that have not been saved anywhere else.
        # You can modify this database freely, but make sure to know what you're doing if you don't want to loose any variables.

        type: CSV

        pattern: .*

        file: ./plugins/Skript/variables.csv

        backup interval: 2 hours

        # PS: If you don't want some variables to be saved in any database (e.g. variables that contain an %entity% which usually despawn when the server is shut down)
        # you can modify the last database's pattern to not match all variables, e.g. use '(?!x_).*' to match all variables that don't start with 'x_'.
        # Be very cautious when doing this however as unsaved variables cannot be recovered after the server has been stopped.
        # I recommend to use a single character to denote unsaved variables (similar to local variables' '_'), e.g. '-', in which case the last database's pattern should be '(?!-).*'.

여기서 더 아래로 내려보면  variables.csv파일이 정의된 부분이 있습니다.

type: 파일 확장자

pattern: 저장할 변수이름 패턴

file: 저장경로

backup interval: 백업 주기


요 옵션들을 아래와 같이 적으시면됩니다.

    testcsv:
        type: CSV
        pattern: test.*
        file: ./plugins/Skript/test_variables.csv
        backup interval: 2 hours

패턴이 중요합니다.

패턴은 저장할 변수들을 지정 할 수 있습니다.

예제의 패턴은 {test.~~}로 명명된 변수를 저장합니다.

이렇게 저장이 된다면 default에 지정된 variables.csv파일에는 저장되지 않습니다.




    testcsv:
        type: CSV
        pattern: (?!x_).*
        file: ./plugins/Skript/test_variables.csv
        backup interval: 2 hours

영어로 샬라샬라 써있는데 이런 패턴을 알려주는건데요.

이것은 반대로 특정 패턴을 저장하지 않는 방법입니다.

{x_~~}로 명명된 변수는 저장되지 않습니다.


스크립트는 항상 저장되는 전역변수와 한 블록내에서만 유지되는 지역변수 두 종류인데요.

이렇게 저장되지 않는 특정 패턴이 있다면 런타임 동안만 유지되는 전역변수로 사용 할 수 있습니다.

보통 프로그래밍에서는 런타임 동안만 데이터들이 유지되죠.


영어로 샬라샬라 써있는 주석에서는 (?!-).* 와 같이 하이픈으로 사용하는걸 권장하네요.




그럼 수고하ㅅ






2개의 댓글

PirmeOptimizerLav.
2020.05.08

변수를 100만개나 선언하나요?ㄷㄷ

브혼
2020.05.09
@PirmeOptimizerLav.

그런 경우도 있나봐요

컨텐츠
https://www.koreaminecraft.net/files/thumbnails/337/871/002/262x150.crop.jpg?20211014221722

플러그인

달고나 뽑기 in Minecraft 7

BlueRing1017

2021-10-14

5

https://www.koreaminecraft.net/files/thumbnails/848/870/002/262x150.crop.jpg?20211014131239

답안지

한마탐 4주차 / 정오표 + 해설 1

베개냥이

2021-10-14

1

https://www.koreaminecraft.net/files/thumbnails/421/866/002/262x150.crop.jpg?20211011194131

애니메이터

오징어 게임을 하는 나 6

삼영덕

2021-10-11

5