Skip to content
Youtube-Lede edited this page Apr 14, 2021 · 26 revisions

플레이 정보

서버에 접속한 적이 있는 모든 플레이어 목록은 어떻게 불러오나요?

  • stat-player.sk 에서 다음 함수를 제공합니다.
- rpp_GetPlayerList() :: offlineplayers:
  ㄴ 접속한 모든 플레이어 목록을 반환

- rpp_GetUUIDList() :: strings:
  ㄴ 접속한 모든 플레이어의 UUID 목록을 반환
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /allPlayer:
  trigger:
    set {_players::*} to rpp_GetPlayerList()
    set {_size} to size of {_players::*}
    send "지금까지 서버에 %{_size}%명의 플레이어가 방문하였습니다."

플레이어가 서버에 최초로 접속한 시간은 어떻게 불러오나요?

  • stat-player.sk 에서 다음 함수를 제공합니다.
- rpp_GetFirstJoin(p:offlineplayer) :: date:
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /firstjoin:
  trigger:
    set {_date} to rpp_GetFirstJoin(player) # 플레이어의 최초 접속일을 불러옵니다.
    set {_readable} to rpp_TimeFormatted({_date}) # date 정보를 읽을 수 있도록 변환합니다.
    send "당신의 최초 접속일은 %{_readable}% 입니다."

플레이어가 서버에 마지막으로 접속한 시간은 어떻게 불러오나요?

  • stat-player.sk 에서 다음 함수를 제공합니다.
- rpp_GetLastJoin(p:offlineplayer) :: date:
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /getLastJoin:
  trigger:
    set {_date} to rpp_GetLastJoin(player) # 플레이어의 최근 접속일을 불러옵니다.
    set {_readable} to rpp_TimeFormatted({_date}) # date 정보를 읽을 수 있도록 변환합니다.
    send "당신의 최근 접속일은 %{_readable}% 입니다."

플레이어가 서버에서 퇴장한 시간은 어떻게 불러오나요?

  • stat-player.sk 에서 다음 함수를 제공합니다.
- rpp_GetQuit(p:offlineplayer) :: date:
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /quit [<offlineplayer>]:
  trigger:
    set {_date} to rpp_GetQuit(arg 1) # 플레이어가 퇴장한 시간을 불러옵니다.
    set {_readable} to rpp_TimeFormatted({_date}) # date 정보를 읽을 수 있도록 변환합니다.
    send "%arg 1%님이 퇴장한 시간은 %{_readable}% 입니다."

플레이어의 플레이타임은 어떻게 불러오나요?

  • stat-player.sk 에서 다음 함수를 제공합니다.
- rpp_GetPlayTime(p:offlineplayer) :: timespan:
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /playtime:
  trigger:
    set {_time} to rpp_GetPlayTime(player)
    send "플레이타임 : %{_time}%" to player

플레이어의 접속 기록이 존재하는지 어떻게 확인하나요?

  • stat-player.sk 에서 다음 함수를 제공합니다.
- rpp_IsPlayed(p:offlineplayer) :: boolean:
  ㄴ 접속 기록이 존재한다면 true, 아니라면 false를 반환합니다.
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
on join:
  if rpp_IsPlayed(p:offlineplayer) is true:
    send "최초 방문을 환영합니다!" to player

레벨과 경험치

레벨과 경험치 옵션은 어떻게 불러오나요?

  • stat-setting.sk 에서 다음 함수를 제공합니다.
- rpp_GetLevelUpPoint() :: number:
  ㄴ 레벨업 시 지급할 스텟포인트 반환

- rpp_GetLevelUpExp() :: number:
  ㄴ 최초 레벨업 시 필요한 경험치량을 반환

- rpp_GetLevelUpExpRate() :: number:
  ㄴ 레벨업 필요 경험치의 증가량을 반환

- rpp_GetMaxLevel() :: number:
  ㄴ 최대 레벨을 반환
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /point:
  trigger:
    set {_point} to rpp_GetLevelUpPoint()
    send "레벨업 지급 포인트는 %{_point}%포인트 입니다."

플레이어에게 경험치는 어떻게 지급하나요?

  • stat-exp.sk 에서 다음 함수를 제공합니다.
rpp_RunExp(p:offlineplayer, exp:number)
  • 제공되는 함수를 이용하여 플레이어에게 경험치를 지급할 수 있습니다.
on break:
  if event-block is stone:
    rpp_RunExp(player, 100)

command /getExp:
  trigger:
    rpp_RunExp(player, 1)

레벨업에 필요한 경험치는 어떻게 확인하나요?

  • stat-exp.sk 에서 다음 함수를 제공합니다.
- rpp_GetVar_ExpSystem() :: numbers:
  ㄴ 레벨업 경험치 변수 배열을 반환합니다.

- rpp_GetNextLevelRequiredExp(level:number) :: number:
  ㄴ 다음 레벨까지 필요한 경험치를 반환합니다.
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /getNextLevelExp [<number>]:
  trigger:
    set {_nextExp} to rpp_GetNextLevelRequiredExp(arg 1)
    send "%arg 1% -> %arg 1 + 1% 까지 필요한 경험치는 %{_nextExp}% 입니다."

레벨과 경험치 데이터는 어떻게 생성/초기화 하나요?

  • stat-exp.sk 에서 다음 함수를 제공합니다.
- rpp_InitExp(p:offlineplayer)
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
on first join:
  rpp_InitExp(player)
  send "%player%의 EXP 데이터를 생성하였습니다." to console

command /resetExp [<offlineplayer>]:
  tirgger:
    rpp_InitExp(arg 1)
    send "%arg 1%의 EXP 데이터를 초기화 하였습니다." to player

레벨업에 필요한 경험치는 어떻게 재설정 하나요?

  • stat-setting.sk 에서 경험치 관련 옵션을 수정하고 다음 함수를 실행할 수 있습니다.
  • stat-exp.sk 에서 다음 함수를 제공합니다.
- rpp_Reload_ExpSystem()
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /reloadExp:
  trigger:
    rpp_Reload_ExpSystem()
    send "레벨업에 필요한 경험치량을 재설정 하였습니다."

플레이어의 레벨과 경험치는 어떻게 설정 및 반환할 수 있나요?

  • 다음 함수들을 이용하여 플레이어의 레벨과 경험치를 설정할 수 있습니다.
  • stat-exp.sk 에서 다음 함수를 제공합니다.
- rpp_SetPlayerLevel(p:offlineplayer, level:number)
  ㄴ 플레이어의 레벨을 설정합니다.

- rpp_SetPlayerExp(p:offlineplayer, exp:number)
  ㄴ 플레이어의 경험치를 설정합니다.
  • 다음 함수들을 이용하여 플레이어의 레벨과 경험치를 불러올 수 있습니다.
  • stat-exp.sk 에서 다음 함수를 제공합니다.
- rpp_GetPlayerLevel(p:offlineplayer) :: number:
  ㄴ 플레이어의 레벨을 불러올 수 있습니다.

- rpp_GetPlayerExp(p:offlineplayer) :: number:
  ㄴ 플레이어의 경험치를 불러올 수 있습니다.
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /resetLevel:
  trigger:
    rpp_SetPlayerLevel(player, 0)

command /expInfo:
  trigger:
    set {_level} to rpp_GetPlayerLevel(player)
    set {_exp} to rpp_GetPlayerExp(player)
    send "플레이어의 현재 레벨은 %{_level}%, 경험치는 %{_exp}% 입니다"
  • 주의사항
# 플레이어 경험치 설정 시 rpp_RunExp() 함수를 호출해야 레벨업 반영이 가능합니다.
# 따라서 rpp_SetPlayerLevel() 함수로 플레이어의 경험치를 설정 한 이후에 다음과 같이 rpp_RunExp() 함수의 호출이 권장됩니다.

command /setExp [<number>]:
  trigger:
    rpp_SetPlayerExp(player, arg 1) # 플레이어의 경험치를 설정합니다.
    rpp_RunExp(player, 0) # 설정한 경험치를 확인하여 레벨업을 진행합니다.

설정한 레벨과 경험치는 어떻게 경험치바에 반영하나요?

  • stat-exp.sk 에서 다음 함수를 제공합니다.
- rpp_ApplyExpSystem(p:offlineplayer)
  • 제공되는 함수를 이용하여 다음과 같이 사용할 수 있습니다.
command /levelUp:
  trigger:
    set {_max} to rpp_GetMaxLevel() # 옵션에 설정한 최대 레벨을 불러옵니다.
    set {_level} to rpp_GetPlayerLevel(player) # 플레이어의 현재 레벨을 불러옵니다.
    set {_levelUp} to {_level} + 1
    if {_levelUp} > {_max}:
      set {_levelUp} to {_max}
    rpp_SetPlayerLevel(player, {_levelUp}) # 플레이어의 레벨을 설정합니다.
    rpp_ApplyExpSystem(player) # 설정한 레벨과 경험치를 경험치바에 반영합니다.

스텟

옵션에서 설정한 기본 스텟들을 다른 스크립트에서 어떻게 불러오나요?

  • stat-setting.sk 에서 다음 함수를 제공합니다.
- rpp_GetHealthScale() :: number:
  ㄴ 기본 체력 스케일을 반환합니다.

- rpp_GetBasicHp() :: number:
  ㄴ 기본 체력을 반환합니다.

- rpp_GetBasicHpR() :: number:
  ㄴ 기본 체력 재생을 반환합니다.

- rpp_GetBasicAtk() :: number:
  ㄴ 기본 공격력을 반환합니다.

- rpp_GetBasicDef() :: number:
  ㄴ 기본 방어력을 반환합니다.

- rpp_GetBasicSpd() :: number:
  ㄴ 기본 이동속도를 반환합니다.

- rpp_GetBasicCrC() :: number:
  ㄴ 기본 치명타 확률을 반환합니다.

- rpp_GetBasicCrD() :: number:
  ㄴ 기본 치명타 데미지를 반환합니다.

- rpp_GetBasicDeP() :: number:
  ㄴ 기본 방어력 관통을 반환합니다.

- rpp_GetBasicCrCI() :: number:
  ㄴ 기본 치명타 저항을 반환합니다.

- rpp_GetBasicDePI() :: number:
  ㄴ 기본 방어력 관통 저항을 반환합니다.

  • 제공되는 함수를 이용하여 다음과 같이 값을 불러올 수 있습니다.
command /basicAtk:
  trigger:
    set {_atk} to rpp_GetBasicAtk()
    send "%{_atk}%" to player

옵션에서 설정한 세부 스텟 최대치 제한을 다른 스크립트에서 어떻게 불러오나요?

  • stat-setting.sk 에서 다음 함수를 제공합니다.
- rpp_GetMaxHp() :: number:
  ㄴ 최대 체력 제한값을 반환합니다.

- rpp_GetMaxHpR() :: number:
  ㄴ 최대 체력재생 제한값을 반환합니다.

- rpp_GetMaxAtk() :: number:
  ㄴ 최대 공격력 제한값을 반환합니다.

- rpp_GetMaxDef() :: number:
  ㄴ 최대 방어력 제한값을 반환합니다.

- rpp_GetMaxSpd() :: number:
  ㄴ 최대 이동속도 제한값을 반환합니다.

- rpp_GetMaxCrC() :: number:
  ㄴ 최대 치명타 확률 제한값을 반환합니다.

- rpp_GetMaxCrD() :: number:
  ㄴ 최대 치명타 데미지 제한값을 반환합니다.

- rpp_GetMaxDeP() :: number:
  ㄴ 최대 방어력 관통 제한값을 반환합니다.

- rpp_GetMaxCrCI() :: number:
  ㄴ 최대 치명타 저항 제한값을 반환합니다.

- rpp_GetMaxDePI() :: number:
  ㄴ 최대 방어력 관통 제한값을 반환합니다.
  • 제공되는 함수를 이용하여 다음과 같이 값을 불러올 수 있습니다.
command /maxAtk:
  trigger:
    set {_atk} to rpp_GetMaxAtk()
    send "%{_atk}%" to player

옵션에서 설정한 메인 스텟 최대치 제한을 다른 스크립트에서 어떻게 불러오나요?

  • stat-setting.sk 에서 다음 함수를 제공합니다.
- rpp_GetMaxUpgrade_Sft() :: number:
  ㄴ 신속 스텟 제한값을 반환합니다.

- rpp_GetMaxUpgrade_Ftl() :: number:
  ㄴ 치명 스텟 제한값을 반환합니다.

- rpp_GetMaxUpgrade_Ptn() :: number:
  ㄴ 인내 스텟 제한값을 반환합니다.

- rpp_GetMaxUpgrade_Skl() :: number:
  ㄴ 숙련 스텟 제한값을 반환합니다.

- rpp_GetMaxUpgrade_Spr() :: number:
  ㄴ 제압 스텟 제한값을 반환합니다.
  • 제공되는 함수를 이용하여 다음과 같이 값을 불러올 수 있습니다.
command /maxSft:
  trigger:
    set {_sft} to rpp_GetMaxUpgrade_Sft()
    send "%{_sft}%" to player

옵션에서 설정한 메인 스텟의 세부 스텟 활성화 상태를 다른 스크립트에서 어떻게 불러오나요?

  • stat-setting.sk 에서 다음 함수를 제공합니다.
# 신속(Sft), 치명(Ftl), 인내(Ptn), 숙련(Skl), 제압(Spr)

- rpp_GetState_Sft_Hp() :: boolean:
  ㄴ 신속 스텟의 체력 증가 활성화 상태 반환

- rpp_GetState_Sft_HpR() :: boolean:
  ㄴ 신속 스텟의 체력 재생 증가 활성화 상태 반환

- rpp_GetState_Sft_Atk() :: boolean:
  ㄴ 신속 스텟의 공격력 증가 활성화 상태 반환

- rpp_GetState_Sft_Def() :: boolean:
  ㄴ 신속 스텟의 방어력 증가 활성화 상태 반환

- rpp_GetState_Sft_Spd() :: boolean:
  ㄴ 신속 스텟의 이동속도 증가 활성화 상태 반환

- rpp_GetState_Sft_CrC() :: boolean:
  ㄴ 신속 스텟의 치명타 확률 증가 활성화 상태 반환

- rpp_GetState_Sft_CrD() :: boolean:
  ㄴ 신속 스텟의 치명타 데미지 증가 활성화 상태 반환

- rpp_GetState_Sft_DeP() :: boolean:
  ㄴ 신속 스텟의 방어력 관통 증가 활성화 상태 반환

- rpp_GetState_Sft_CrCI() :: boolean:
  ㄴ 신속 스텟의 치명타 저항 활성화 상태 반환

- rpp_GetState_Sft_DePI() :: boolean:
  ㄴ 신속 스텟의 방어력 관통 저항 활성화 상태 반환
  • 제공되는 함수를 이용하여 다음과 같이 값을 불러올 수 있습니다.
command /state:
  trigger:
    if rpp_GetState_Sft_Atk() is true:
     send "신속 스텟의 공격력 세부스텟이 활성화 상태입니다."
  • 다른 메인 스텟의 정보 반환은 다음과 같이 불러올 수 있습니다.
command /state:
  trigger:
    if rpp_GetState_Ftl_Atk() is true:
     send "치명 스텟의 공격력 세부스텟이 활성화 상태입니다."

command /state:
  trigger:
    if rpp_GetState_Ptn_Atk() is true:
     send "인내 스텟의 공격력 세부스텟이 활성화 상태입니다."

옵션에서 설정한 메인 스텟의 세부 스텟 증가 비율을 다른 스크립트에서 어떻게 불러오나요?

  • stat-setting.sk 에서 다음 함수를 제공합니다.
- rpp_GetEff_Sft_Hp() :: number:
  ㄴ 신속 스텟 체력 증가 비율 반환

- rpp_GetEff_Sft_HpR() :: number:
  ㄴ 신속 스텟 체력 재생 증가 비율 반환

- rpp_GetEff_Sft_Atk() :: number:
  ㄴ 신속 스텟 공격력 증가 비율 반환

- rpp_GetEff_Sft_Def() :: number:
  ㄴ 신속 스텟 방어력 증가 비율 반환

- rpp_GetEff_Sft_Spd() :: number:
  ㄴ 신속 스텟 이동속도 증가 비율 반환

- rpp_GetEff_Sft_CrC() :: number:
  ㄴ 신속 스텟 치명타 증가 비율 반환

- rpp_GetEff_Sft_CrD() :: number:
  ㄴ 신속 스텟 치명타 데미지 증가 비율 반환

- rpp_GetEff_Sft_DeP() :: number:
  ㄴ 신속 스텟 방어력 관통 증가 비율 반환

- rpp_GetEff_Sft_CrCI() :: number:
  ㄴ 신속 스텟 치명타 저항 증가 비율 반환

- rpp_GetEff_Sft_DePI() :: number:
  ㄴ 신속 스텟 방어력 관통 저항 비율 반환
  • 제공되는 함수를 이용하여 다음과 같이 값을 불러올 수 있습니다.
command /atk:
  trigger:
    set {_atk} to rpp_GetEff_Sft_Atk()
    send "신속 스텟 공격력 증가 : %{_atk}%" to player
  • 다른 메인 스텟의 정보 반환은 다음과 같이 불러올 수 있습니다.
command /atk:
  trigger:
    set {_atk} to rpp_GetEff_Ftl_Atk()
    send "치명 스텟 공격력 증가 : %{_atk}%" to player
 
command /atk:
  trigger:
    set {_atk} to rpp_GetEff_Ptn_Atk()
    send "인내 스텟 공격력 증가 : %{_atk}%" to player

GUI

GUI는 어떻게 제작하나요?

  • 먼저 스텟 아이콘을 반환하는 함수를 하나 선언합니다.
function createIcon_Sft() :: item: # 신속 스텟 아이콘 제작 함수 선언
  • stat-setting.sk 에서 설정한 아이콘의 타입과 이름을 불러와 함수 내부에 추가합니다.
function createIcon_Sft() :: item:
  set {_item} to rpp_GetStatGUI_Sft_Type() # 아이콘의 타입을 반환
  set {_name} to rpp_GetStatGUI_Sft_Name() # 아이콘의 이름을 반환
  • 다음으로 아이템의 로어가 필요하다면 로어를 작성합니다.
function createIcon_Sft() :: item:
  set {_item} to rpp_GetStatGUI_Sft_Type() # 아이콘의 타입을 반환
  set {_name} to rpp_GetStatGUI_Sft_Name() # 아이콘의 이름을 반환
  add "&f로어 1" to {_lore::*} # 첫번째줄 로어 추가
  add "&e로어 2" to {_lore::*} # 두번째줄 로어 추가
  • 이제 아이콘을 생성해줍니다.
function createIcon_Sft() :: item:
  set {_item} to rpp_GetStatGUI_Sft_Type() # 아이콘의 타입을 반환
  set {_name} to rpp_GetStatGUI_Sft_Name() # 아이콘의 이름을 반환
  add "&f로어 1" to {_lore::*} # 첫번째줄 로어 추가
  add "&e로어 2" to {_lore::*} # 두번째줄 로어 추가
  set {_icon} to {_item} named {_name} with lore {_lore::*}
  • 생성한 아이콘을 반환하고 함수 제작을 마무리합니다.
function createIcon_Sft() :: item:
  set {_item} to rpp_GetStatGUI_Sft_Type() # 아이콘의 타입을 반환
  set {_name} to rpp_GetStatGUI_Sft_Name() # 아이콘의 이름을 반환
  add "&f로어 1" to {_lore::*} # 첫번째줄 로어 추가
  add "&e로어 2" to {_lore::*} # 두번째줄 로어 추가
  set {_icon} to {_item} named {_name} with lore {_lore::*}
  return {_icon}
  • 같은 방법으로 필요한 만큼의 스텟 아이콘을 제작합니다.
  • 신속(Sft), 치명(Ftl), 인내(Ptn), 숙련(Skl), 제압(Spr) 의 총 5개의 스텟까지 추가할 수 있습니다.
#신속 스텟 아이콘
function createIcon_Sft() :: item:
  set {_item} to rpp_GetStatGUI_Sft_Type() # 아이콘의 타입을 반환
  set {_name} to rpp_GetStatGUI_Sft_Name() # 아이콘의 이름을 반환
  add "&f로어 1" to {_lore::*} # 첫번째줄 로어 추가
  add "&e로어 2" to {_lore::*} # 두번째줄 로어 추가
  set {_icon} to {_item} named {_name} with lore {_lore::*}
  return {_icon}

#치명 스텟 아이콘
function createIcon_Ftl() :: item:
  set {_item} to rpp_GetStatGUI_Ftl_Type() # 아이콘의 타입을 반환
  set {_name} to rpp_GetStatGUI_Ftl_Name() # 아이콘의 이름을 반환
  add "&f로어 1" to {_lore::*} # 첫번째줄 로어 추가
  add "&e로어 2" to {_lore::*} # 두번째줄 로어 추가
  set {_icon} to {_item} named {_name} with lore {_lore::*}
  return {_icon}
  • 다음으로 GUI를 생성하고 반환하는 함수를 선언합니다.
function statGUI() :: inventory:
  • stat-setting.sk 에서 설정한 GUI의 이름을 불러옵니다.
function statGUI() :: inventory:
  set {_title} to rpp_GetStatGUI_Title() # GUI 타이틀 로드
  • 위에서 제작한 함수를 사용하여, GUI에서 사용할 스텟 아이콘을 불러옵니다.
function statGUI() :: inventory:
  set {_title} to rpp_GetStatGUI_Title() # GUI 타이틀 로드
  set {_icon.sft} to createIcon_Sft() # 제작한 신속 아이콘 로드
  set {_icon.ftl} to createIcon_Ftl() # 제작한 치명 아이콘 로드
  • GUI로 사용할 인벤토리를 생성해줍니다.
function statGUI() :: inventory:
  set {_title} to rpp_GetStatGUI_Title() # GUI 타이틀 로드
  set {_icon.sft} to createIcon_Sft() # 제작한 신속 아이콘 로드
  set {_icon.ftl} to createIcon_Ftl() # 제작한 치명 아이콘 로드
  set {_inv} to chest with 3 row named {_title} # {_title}을 이름으로 갖고 3줄인 창고 GUI를 생성
  • 생성한 인벤토리에 아이콘을 배치해줍니다.
function statGUI() :: inventory:
  set {_title} to rpp_GetStatGUI_Title() # GUI 타이틀 로드
  set {_icon.sft} to createIcon_Sft() # 제작한 신속 아이콘 로드
  set {_icon.ftl} to createIcon_Ftl() # 제작한 치명 아이콘 로드
  set {_inv} to chest with 3 row named {_title} # {_title}을 이름으로 갖고 3줄인 창고 GUI를 생성
  set slot 11 of {_inv} to {_icon.sft} # 11번째 슬롯에 신속 아이콘을 배치
  set slot 15 of {_inv} to {_icon.ftl} # 15번째 슬롯에 치명 아이콘을 배치
  • 생성한 GUI를 반환하고 GUI생성을 마무리합니다.
function statGUI() :: inventory:
  set {_title} to rpp_GetStatGUI_Title() # GUI 타이틀 로드
  set {_icon.sft} to createIcon_Sft() # 제작한 신속 아이콘 로드
  set {_icon.ftl} to createIcon_Ftl() # 제작한 치명 아이콘 로드
  set {_inv} to chest with 3 row named {_title} # {_title}을 이름으로 갖고 3줄인 창고 GUI를 생성
  set slot 11 of {_inv} to {_icon.sft} # 11번째 슬롯에 신속 아이콘을 배치
  set slot 15 of {_inv} to {_icon.ftl} # 15번째 슬롯에 치명 아이콘을 배치
  return {_inv}
  • 이제 다음과 같이 함수를 호출하여 GUI를 불러와 오픈할 수 있습니다.
command /statGUI:
  trigger:
    open statGUI() to player
  • 마지막으로 스텟 업그레이드 시 새로고침 될 GUI를 변경해준다면 스텟 GUI의 제작이 완료됩니다.
  • stat-events.sk 에 해당 이벤트가 존재합니다.
#스텟 업그레이드
on inventory click:
  if name of event-inventory contains rpp_GetStatGUI_Title(): # 클릭한 인벤토리가 스킬창일 때
    cancel event
    set {_itemName} to name of clicked item # 클릭한 아이템 이름
    set {_point} to rpp_GetLevelUpPoint() # 1레벨당 지급받는 포인트
		
    if {_itemName} contains rpp_GetStatGUI_Sft_Name(): # 신속 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Sft(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Sft(player, {_point}) # 1렙당 지급받는 포인트만큼 증가
				
    else if {_itemName} contains rpp_GetStatGUI_Ftl_Name(): # 치명 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Ftl(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Ftl(player, {_point}) # 1렙당 지급받는 포인트만큼 증가
				
    else if {_itemName} contains rpp_GetStatGUI_Ptn_Name(): # 인내 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Ptn(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Ptn(player, {_point}) # 1렙당 지급받는 포인트만큼 증가
				
    else if {_itemName} contains rpp_GetStatGUI_Skl_Name(): # 숙련 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Skl(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Skl(player, {_point}) # 1렙당 지급받는 포인트만큼 증가
				
    else if {_itemName} contains rpp_GetStatGUI_Spr_Name(): # 제압 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Spr(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Spr(player, {_point}) # 1렙당 지급받는 포인트만큼 증가

    open rpp_GetStatGUI(player) to player # 스텟창 새로고침 << 여기를 수정합니다.
  • 가장 마지막줄을 다음과 같이 위에서 제작한 함수로 변경합니다.
#스텟 업그레이드
on inventory click:
  if name of event-inventory contains rpp_GetStatGUI_Title(): # 클릭한 인벤토리가 스킬창일 때
    cancel event
    set {_itemName} to name of clicked item # 클릭한 아이템 이름
    set {_point} to rpp_GetLevelUpPoint() # 1레벨당 지급받는 포인트
		
    if {_itemName} contains rpp_GetStatGUI_Sft_Name(): # 신속 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Sft(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Sft(player, {_point}) # 1렙당 지급받는 포인트만큼 증가
				
    else if {_itemName} contains rpp_GetStatGUI_Ftl_Name(): # 치명 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Ftl(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Ftl(player, {_point}) # 1렙당 지급받는 포인트만큼 증가
				
    else if {_itemName} contains rpp_GetStatGUI_Ptn_Name(): # 인내 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Ptn(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Ptn(player, {_point}) # 1렙당 지급받는 포인트만큼 증가
				
    else if {_itemName} contains rpp_GetStatGUI_Skl_Name(): # 숙련 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Skl(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Skl(player, {_point}) # 1렙당 지급받는 포인트만큼 증가
				
    else if {_itemName} contains rpp_GetStatGUI_Spr_Name(): # 제압 스텟
      if click type is left mouse button with shift: # 쉬프트 + 좌클릭
        rpp_AddPlayerStat_Spr(player, 1) # 스텟 1 증가
      else if click type is right mouse button with shift: # 쉬프트 + 우클릭
        rpp_AddPlayerStat_Spr(player, {_point}) # 1렙당 지급받는 포인트만큼 증가

    open statGUI() to player # 스텟창 새로고침 << 여기를 수정합니다.
  • 이제 쉬프트+좌클릭으로 스텟 1업, 쉬프트+우클릭으로 레벨업시 지급받는 스텟만큼 스텟의 상승이 가능합니다.

Clone this wiki locally