RPG Maker MV (RPG ツクールMV , RPG만들기 MV)의 최대 난관인 스크립트 단어를 일부 정리해보았다.
참고 사이트는
http://ktnhmv.jugem.jp/?eid=50
http://ameblo.jp/rpgmaker1892/entry-12103505229.html
http://ameblo.jp/rpgmaker1892/entry-12102649926.html
http://rsakane.net/gamedev/?p=390
이다.
알만툴 MV에서 사용되는 대표 변수의 종류는 이렇게 있다.
변수 대표명
사용되는 메소드
비고
$dataActors
.id .battlerName .characterIndex .characterName
.classId .equips .faceIndex .faceName
.traits ( .code .dataId .value )
.initialLevel .maxLevel .name .nickname .note .profile
액터
$dataClasses
.id .expParams
.traits ( .code .dataId .value )
.learnings ( .level .note .skillId )
.name .note .params
직업
$dataSkills
.id .animationId
.damage ( .critical .elementId .formula .type .variance )
.description
.effects ( .code .dataId .value1 .value2 )
.hitType .iconIndex .message1 .message2 .mpCost
.name .note .occasion .repeats .requiredWtypeId1
.requiredWtypeId2 .scope .speed .stypeId .successRate
.tpCost .tpGain
스킬
$dataItems
.id .animationId .consumable
.damage ( .critical .elementId .formula .type .variance )
.description
.effects ( .code .dataId .value1 .value2 )
.hitType .iconIndex .itypeId .name .note .occasion
.price .repeats .scope .speed .successRate .tpGain
아이템
$dataWeapons
.id .animationId .description .etypeId
.traits ( .code .dataId .value ) .iconIndex .name .note
.params .price .wtypeId
무기
$dataArmors
.id .atypeId .description .etypeId
.traits ( .code .dataId .value )
.iconIndex .name .note .params .price
방어구
$dataEnemies
.id
.actions ( .conditionParam1 .conditionParam2
.conditionType .rating .skillId )
.battlerHue .battlerName
.dropItems ( .dataId .denominator .kind )
.exp
.traits ( .code .dataId .value )
.gold .name .note .params
적 캐릭터
$dataTroops
.id
.members ( .enemyId .x .y .hidden )
.name
.pages [ .conditions ( .actorHp .actorId .actorValid
.enemyHp .enemyIndex .enemyValid .switchId .switchValid
.turnA .turnB .turnEnding .turnValid )
.list (code .indent .parameters ) .span ]
적 그룹
$dataStates
.id .autoRemovalTiming .chanceByDamage .iconIndex
.maxTurns .message1 .message2 .message3 .message4
.minTurns .motion .name .note .overlay .priority
.releaseByDamage .removeAtBattleEnd .removeByDamage
.removeByRestriction .removeByWalking .restriction
.stepsToRemove
.traits ( .code .dataId .value )
상태
$dataAnimations
.id .animation1Hue .animation1Name .animation2Hue
.animation2Name .frames .name .position
.timings [ .flashDuration .flashScope .frame
.se (.name .pan .pitch .volume) ]
애니메이션
$dataTilesets
.id .flags .mode .name .note .tilesetNames
타일셋
$dataCommonEvents
.id
.list ( .code .indent .parameters )
.name .switchId .trigger
커먼 이벤트
$dataSystem
.airship: {
.bgm: {
.name
.pan
.pitch
.volume
}
.characterIndex
.characterName
.startMapId
.startX
.startY
}
.armorTypes []
.attackMotions: {
.type
.weaponImageId
}[]
.battleBgm: {
.name
.pan
.pitch
.volume
}
.battleback1Name
.battleback2Name
.battlerHue
.battlerName
.boat: {
.bgm: {
.name
.pan
.pitch
.volume
}
.characterIndex
.characterName
.startMapId
.startX
.startY
}
.currencyUnit
.defeatMe: {
.name
.pan
.pitch
.volume
}
.editMapId
.elements []
.equipTypes []
.gameTitle
.gameoverMe: {
.name
.pan
.pitch
.volume
}
.locale
.magicSkills []
.menuCommands []
.optDisplayTp
.optDrawTitle
.optExtraExp
.optFloorDeath
.optFollowers
.optSideView
.optSlipDeath
.optTransparent
.partyMembers []
.ship: {
.bgm: {
.name
.pan
.pitch
.volume
}
.characterIndex
.characterName
.startMapId
.startX
.startY
}
.skillTypes []
.sounds: {
.name
.pan
.pitch
.volume
}[]
.startMapId
.startX
.startY
.switches []
.terms: {
.basic []
.commands []
.params []
.messages: {
.possession
.expTotal
.expNext
.saveMessage
.loadMessage
.file
.partyName
.emerge
.preemptive
.surprise
.escapeStart
.escapeFailure
.victory
.defeat
.obtainExp
.obtainGold
.obtainItem
.levelUp
.obtainSkill
.useItem
.criticalToEnemy
.criticalToActor
.actorDamage
.actorRecovery
.actorGain
.actorLoss
.actorDrain
.actorNoDamage
.actorNoHit
.enemyDamage
.enemyRecovery
.enemyGain
.enemyLoss
.enemyDrain
.enemyNoDamage
.enemyNoHit
.evasion
.magicEvasion
.magicReflection
.counterAttack
.substitute
.buffAdd
.debuffAdd
.buffRemove
.actionFailure
.bgmVolume
.bgsVolume
.meVolume
.seVolume
.alwaysDash
.commandRemember
}
}
.testBattlers: {
.actorId
.equips []
.level
}[]
.testTroopId
.title1Name
.title2Name
.titleBgm: {
.name
.pan
.pitch
.volume
}
.variables []
.versionId
.victoryMe: {
.name
.pan
.pitch
.volume
}
.weaponTypes
.windowTone []
}
시스템
$dataMapInfos
.id .expanded .name .order .parentId .scrollX
.scrollY
맵 목록 정보
$dataMap
.autoplayBgm
.autoplayBgs
.battleback1Name
.battleback2Name
.bgm: {
.name
.pan
.pitch
.volume
};
.bgs: {
.name
.pan
.pitch
.volume
};
.disableDashing
.displayName
.encounterList: {
.regionSet
.troopId
.weight
}[];
.encounterStep
.height
.note
.parallaxLoopX
.parallaxLoopY
.parallaxName
.parallaxShow
.parallaxSx
.parallaxSy
.scrollType
.specifyBattleback
.tilesetId
.width
.data
.events: {
.id
.name
.note
.pages: {
.conditions: {
.actorId
.actorValid
.itemId
.itemValid
.selfSwitchCh
.selfSwitchValid
.switch1Id
.switch1Valid
.switch2Id
.switch2Valid
.variableId
.variableValid
.variableValue
};
.directionFix
.image: {
.tileId
.characterName
.direction
.pattern
.characterIndex
}
.list: {
.code
.indent
.parameters
}[];
.moveFrequency
.moveRoute: {
.list: {
.code
.parameters
}[];
.repeat
.skippable
.wait
};
.moveSpeed
.moveType
.priorityType
.stepAnime
.through
.trigger
.walkAnime
}[];
}[];
}
맵 정보
$gameTemp
.reserveCommonEvent .isPlaytest
.clearDestination .isDestinationValid
.destinationX .destinationY
.isCommonEventReserved .clearCommonEvent
$gameSystem
.isSideView .isCJK .isEncounterEnabled
.saveWalkingBgm .replayWalkingBgm
.playtime .saveCount .battleCount .winCount
.escapeCount .setBattleBgm .setVictoryMe
.disableSave .enableSave .disableMenu
.enableMenu .disableEncounter .enableEncounter
.disableFormation .enableFormation
.setWindowTone .setDefeatMe .saveBgm
.replayBgm
$gameScreen
.startShake .startFlashForDamage .startFadeOut
.startFadeIn .startTint .startFlash .startShake
.showPicture .movePicture .rotatePicture
.tintPicture .erasePicture .changeWeather
$gameTimer
.isWorking .seconds .start .stop
타이머
$gameMessage
.newPage .add .isBusy .setFaceImage
.setBackground .setPositionType
.setChoices .setChoiceBackground
.setChoicePositionType .setChoiceCallback
.setNumberInput .setItemChoice .setScroll
문장 표시
$gameSwitches
.value .setValue
$gameVariables
._data .value .setValue
변수
$gameSelfSwitches
.value .setValue
$gameActors
.actor
* .actor 밑의 메소드는 $data.... 시리즈의 메소드를 따름.
$gameParty
.inBattle .hasItem .consumeItem .gainItem
.loseItem .equipItems .members
.battleMembers .steps .hasDropItemDouble
.highestLevel .hasGoldDouble .leader
.increaseSteps .onPlayerWalk .hasEncounterNone
.hasEncounterHalf .maxBattleMembers
.gold .numItems .size .steps .gainGold .addActor
.removeActor
$gameTroop
.members .turnCount .makeUniqueNames
$gameMap
.requestRefresh .roundXWithDirection
.roundYWithDirection .isValid .isPassable
.eventsXyNt .boat .ship .adjustX .adjustY
.tileWidth .tileHeight .roundX .roundY .isLadder
.isBush .terrainTag .regionId .xWithDirection
.yWithDirection .deltaX .deltaY .width .distance
.mapId .setup .vehicle .tileWidth .tileHeight
.setDisplayPos .encounterStep .encounterList
.isEventRunning .eventsXy .isDashDisabled
.scrollDown .scrollLeft .scrollRight .scrollUp
.setupStartingEvent .airship .isCounter .isBush
.isAnyEventStarting .isDamageFloor .mapId
.isBoatPassable .isShipPassable .isAirshipLandOk
.eventsXyNt .isScrolling .event .startScroll
.refreshIfNeeded .eraseEvent .enableNameDisplay
.disableNameDisplay .changeTileset
.changeBattleback .changeParallax .terrainTag
.eventIdXy .tileId .regionId
* .airship .boat .ship 밑의 메소드
( .posNt .pos )
$gamePlayer
.isNormal .isOnDamageFloor .refresh .followers
.realMoveSpeed .opacity .blendMode
.hasWalkAnime .hasStepAnime .isDirectionFixed
.isTransparent .realMoveSpeed .isJumping
.deltaXFrom .deltaYFrom .x .y .areFollowersGathered
.isCollided .pos .isTransferring .areFollowersGathering
.vehicle .makeEncounterCount .reserveTransfer
.getOnOffVehicle .setTransparent .showFollowers
.hideFollowers .gatherFollowers .makeEncounterTroopId
.makeEncounterCount
$testEvent
없음
이 정도인 것 같다.
아래는 게임 내에서 변수를 표현하는 예시 표이다. (테스트해보지 않아서 안될수도 있음)
구분
알만툴 상에서
스크립트 상에서
비고
액터 이름
\n[1]
$gameActors.actor(1).name();
1번 캐릭터 기준
액터 칭호
$dataActors[1].nickname
액터 직업
액터 초기레벨(레벨)
$gameActors.actor(1).level();
액터 최고레벨
$dataActors[1].maxLevel
액터 설명
$dataActors[1].profile
액터 현재 경험치
$gameActors.actor(1).currentExp();
액터 현재 HP
$gameActors.actor(1).hp
액터 현재 MP
$gameActors.actor(1).mp
액터 최대 HP
$gameActors.actor(1).param(0)
액터 최대 MP
$gameActors.actor(1).param(1)
액터 공격력
$gameActors.actor(1).param(2)
액터 방어력
$gameActors.actor(1).param(3)
액터 마법공격력
$gameActors.actor(1).param(4)
액터 마법방어력
$gameActors.actor(1).param(5)
액터 민첩성
$gameActors.actor(1).param(6)
액터 운
$gameActors.actor(1).param(7)
액터 TP
$gameActors.actor(1).tp
액터 메모
$dataActors[1].note
아이템 소지개수
$gameParty.numItems($dataItems[1])
1번 아이템 기준
무기 소지개수
$gameParty.numItems($dataWeapons[1])
방어구 소지개수
$gameParty.numItems($dataArmors[1])
적 캐릭터 HP
$gameTroop.members()[0].hp
적 그룹 내의 맨 처음 적을 0으로 표기.
적 캐릭터 MP
$gameTroop.members()[0].mp
적 캐릭터 최대 HP
$gameTroop.members()[0].param(0)
적 캐릭터 최대 MP
$gameTroop.members()[0].param(1)
적 캐릭터 공격력
$gameTroop.members()[0].param(2)
적 캐릭터 방어력
$gameTroop.members()[0].param(3)
적 캐릭터 마법공격력
$gameTroop.members()[0].param(4)
적 캐릭터 마법방어력
$gameTroop.members()[0].param(5)
적 캐릭터 민첩성
$gameTroop.members()[0].param(6)
적 캐릭터 운
$gameTroop.members()[0].param(7)
적 캐릭터 전리품
$dataEnemies[1].dropItem[0].dataId
1번 적 캐릭터의 첫번째(0) 전리품을 설정
적 캐릭터 전리품 확률 분모
$dataEnemies[1].dropItem[0].denominator
X좌표 위치
this.character(0).x
음수(-1): 플레이어 / 0: 해당 이벤트 / 1 이상: 이벤트ID
Y좌표 위치
this.character(0).y
방향
this.character(0).direction()
화면X
this.character(0).screenX()
화면Y
this.character(0).screenY()
파티
\p[1]
$gameParty.members()[1]
파티의 첫 번째 멤버 = 1 ?
맵 ID
$gameMap.mapId()
파티 멤버 수
$gameParty.size()
소지금
\$
$gameParty.gold()
걸음 수
$gameParty.steps()
플레이 시간
$gameSystem.playtime()
타이머
$gameTimer.seconds()
세이브 횟수
$gameSystem.saveCount()
전투 횟수
$gameSystem.battleCount()
승리 횟수
$gameSystem.winCount()
도주 횟수
$gameSystem.escapeCount()
변수 확인
\v[1]
$gameVariables.value(1)
1번 변수 값 확인
변수 입력
$gameVariables.setValue(1, 500)
1번 변수 값을 500으로 변경
난수 발생
Math.floor( Math.random() * 101)
0~100까지의 난수 발생
아이템 이름
$dataItems[1].name
1번 아이템의 이름
적 캐릭터 이름
$dataEnemies[1].name
1번 적 캐릭터의 이름
'일반게임' 카테고리의 다른 글
쓰르라미 울 적에 봉(奉)을 에뮬로 실행시켜본다. (0) | 2021.01.23 |
---|---|
illusion SBPR에서의 AutoTranslator 플러그인 적용법과 ezTransWeb 기능을 사용하는 법. (1) | 2020.01.10 |
illusion SBPR 상점가 지도 / 전설의 검 획득 위치. (0) | 2019.05.24 |
illusion SBPR 관련. (4) | 2019.05.20 |
Prime Minister Forever - Canada 2011 Demo v1.27 (0) | 2011.11.27 |