
Gamemakerã§RPGã®ã·ã¹ãã ãäœãéã«ãæäœéããã ãã¯å ¥ããšããã£ãŠãã€ãã玹ä»
ãŸããŸãæ€çŽ¢æ©èœã§ãã
ããã¯ãªãããšãããšæ€çŽ¢ãããŠåã£ãŠããªããšããªãé¢åãªããšã«ãªãããã§ãã
æ€çŽ¢æ©èœãšã¯èšã£ãŠãGoogleã®ãããäœãããšããããã§ã¯ãããŸããã
ãŸãäŸãã°ã¢ã€ãã ã®ã°ããŒãã«å€æ°ããããšããŸãããã
ãããšããã®ããã«ãããŒãŒã£ãšäžŠã¶ããšã«ãªããŸãã
global.item_data = array_create(80, undefined);
for(var i=0; i<array_length(global.item_data); i++) {
  global.item_data[i] = {
name:"",
hp_heal: 0,// HPå埩é(åºå®)
    mp_heal: 0,// MPå埩é(åºå®)
hp_heal_percent:0,//å
šäœã®äœããŒã»ã³ãã
mp_heal_percent:0,
target_tag:"",
add_stat:[],//ç¶æ
ç°åžž(æ¯ã»éº»çºãªã©)ãä»äž
reset_stat:[],//ç¶æ
ç°åžžãè§£é€
add_stat_rate:0,
reset_stat_rate:0,
gold:0,//倿®µ
};
}ãŸãããã¯äžäŸã§ããããéåŠçã§ãããæ¬æ¥ãªãã°è¬èã ãšããæ¯æ¶ãèã ãšãã䞊ã³ãŸãã
ããã§æŽ»èºããã®ããã®ã¹ã¯ãªãã颿°ã§ãã
äŸãã°ãããªæãã
function item_add_or_remove(_item_id, _amount) {
// --- ãæ¡ä»¶åå²ïŒ0æªæºïŒäžé以äžã ---
if (_item_id < 0||_item_id >= array_length(global.item_count)) {
show_debug_message("ãã·ã¹ãã ãšã©ãŒãç°åžžãªã¢ã€ãã IDãæå®ãããŠããŸãïŒ -> " + string(_item_id));
return 0; // ã€ãã³ãåŠçäžæïŒãŠãã£ã¿ã®åŠçäžæãšåãïŒ
}
// --- ãæ¡ä»¶åå²ïŒ0以äžã ---
if (_item_id >= 0) {
global.search_data="item"//å
ã«æ¢ãããŒã¿ãèšå®ïŒ
// â
ããããScratchã®ã¡ãã»ãŒãžããšãif管çãã®æ žå¿ïŒ
// åŒã°ããç¬éã«ãè£ã§èªåçã«æ€çޢ颿°ãèµ°ãããŠé
åã®ã€ã³ããã¯ã¹ïŒå ŽæïŒãç¹å®ããïŒ
var _target_index = index_id_search(_item_id);
// ããããŒã¿ãèŠã€ãããªãã£ãããæŽåæ§ãå®ãããã«åŠçãäžæããïŒéçã®é²è¡çïŒ
if (_target_index == -1) {
show_debug_message("ããšã©ãŒãitem_dataã«æå®ã®IDãç»é²ãããŠããŸããïŒ -> " + string(_item_id));
return 0;
}
// èŠã€ãã£ãããŒã¿ïŒæ§é äœïŒãžãã€ã¬ã¯ãã«ã¢ã¯ã»ã¹
var _item = global.item_data[_target_index];
// åŠçã®åã«ãçŸåšã®æææ°ãäžæä¿åïŒãŠãã£ã¿ã®å®å¢æžæ°ã®èšç®çšïŒ
var _before_count = global.item_count[_item_id];
// DBæžèŸŒïŒåæ°ãå ç®
global.item_count[_item_id] += _amount;
// --- 0以äžãæå€§æææ°ä»¥äžã«ãªãããã«èª¿æŽïŒéçæ°ã®èª¿æŽïŒ ---
if (global.item_count[_item_id] < 0) {
global.item_count[_item_id] = 0;
}
if (global.item_count[_item_id] > global.max_hold) {
global.item_count[_item_id] = global.max_hold;
}
// --- Cself99[å®å¢æžæ°] ã®èšç®ïŒå¢æžåŸã®å€ãã墿žåã®å€ãåŒãïŒ ---
var _real_change = global.item_count[_item_id] - _before_count;
// 倿°æäœïŒCself99 *= -1 + 0 ïŒå€ãå転ãããåŠçããŠãã£ã¿ç¹æã®èšç®ã§ããGMLãªãããïŒïŒ
_real_change *= -1;
// æçµçãªå®å¢æžæ°ãè¿ãïŒåŒã³åºãå
ã§ç¢ºèªã§ããããã«ãããïŒïŒ
return _real_change;
}
}ã¯ãããæ°ã¥ãã®æ¹ãå€ããšæããŸãããŠãã£ã¿ã®åºæ¬ã·ã¹ãã ã®èŠçŽ ãããšã«åæ§ç¯ãããã®ã§ãã
ãããŠæ¬é¡ã®æ€çŽ¢ã¹ã¯ãªãããåäœããŸãã
ããã¯ç°¡åã«èšããšã²ãŒã ãããžã§ã¯ãå
ã®å€æ°ãæ§é äœã調ã¹ãæ©èœã§ããäŸãã°ãããªæãã
function index_id_search(_search_id) {
if (global.search_data=="item"){
// ã«ãŒãã§é
åãæåããæåŸãŸã§ç·åœããæ€çŽ¢
for (var i = 0; i < array_length(global.item_data); i++) {
// ããããŒã¿ãååšããããã®å Žæ(i)ãè¿ã
if (global.item_data[i] != undefined) {
return i;
}
}
// æåŸãŸã§èŠã€ãããªãã£ãå Žå
return -1;
}
if (global.search_data=="enemy"){
// ã«ãŒãã§é
åãæåããæåŸãŸã§ç·åœããæ€çŽ¢
for (var i = 0; i < array_length(global.enemy_data); i++) {
// ããããŒã¿ãååšããããã®å Žæ(i)ãè¿ã
if (global.enemy_data[i] != undefined) {
return i;
}
}
// æåŸãŸã§èŠã€ãããªãã£ãå Žå
return -1;
}
if (global.search_data=="actor"){
// ã«ãŒãã§é
åãæåããæåŸãŸã§ç·åœããæ€çŽ¢
for (var i = 0; i < array_length(global.player_data); i++) {
// ããããŒã¿ãååšããããã®å Žæ(i)ãè¿ã
if (global.player_data[i] != undefined) {
return i;
}
}
// æåŸãŸã§èŠã€ãããªãã£ãå Žå
return -1;
}
if(global.search_data=="soubi"){
// ã«ãŒãã§é
åãæåããæåŸãŸã§ç·åœããæ€çŽ¢
for (var i = 0; i < array_length(global.eq_data); i++) {
// ããããŒã¿ãååšããããã®å Žæ(i)ãè¿ã
if (global.eq_data[i] != undefined) {
return i;
}
}
// æåŸãŸã§èŠã€ãããªãã£ãå Žå
return -1;
}
}
[0]ãªã©ã®é çªãå€ããã®ãæãæ¹ã¯ååãªã©ã§æ€çŽ¢ããŠã¿ããšãã°ãã«ããããããããŸããã
次ã«ãBGMã®åçåŠçã§ãã
ãªãŒãã£ãªãšããŠäžåŸã§ç»é²ããã®ãæªãã¯ãªãã®ã§ããã
å
éšçã«åŠçãããšéãå Žåã«äœ¿ããŸã
(OGGå°çšã§ãããã«ãŒãæå®ãç¡çã§ãã)ã
function Scr_play_bgm(_filename,_gain, _pitch){
// 1. 倿°æªå®çŸ©ãšã©ãŒåé¿ïŒåãæ²ãªãå³ãªã¿ãŒã³ ---
  if (!variable_global_exists("current_bgm_name")) {
    global.current_bgm_name = ""; // åæå
global.current_bgm_gain = 1.0;
global.current_bgm_pitch = 1.0;
global.bgm_list=0;
global.bgm_inst = -1;
  }Â
// ãç¥å€å®ãæ²åã»é³éã»ãããã®ã3ã€ãšãå®å
šã«åãããªãå³ãªã¿ãŒã³ïŒ
if (global.current_bgm_name == _filename && global.current_bgm_gain == _gain && global.current_bgm_pitch == _pitch) {
return;
}
// ãç¥ããã¯ãåŒæ°ãçç¥ããã(undefined)ãªããä»ã®èšå®å€ããã®ãŸãŸåŒãç¶ãïŒ
if (is_undefined(_gain)) _gain = global.current_bgm_gain;
if (is_undefined(_pitch)) _pitch = global.current_bgm_pitch;
//ãããªã»ãããšèšãããããªã»ããïŒ
if (_gain=="reset") _gain = 1.0;
if (_pitch=="reset") _pitch = 1.0;
// ãæŒåºããã¯ãæ²åã¯åãã§ãé³éããããã ããå€ãã£ãå ŽåïŒ
if (global.current_bgm_name == _filename && variable_global_exists("bgm_stream")) {
global.current_bgm_gain = _gain;
global.current_bgm_pitch = _pitch;
if (variable_global_exists("bgm_inst") && audio_is_playing(global.bgm_inst)) {
audio_sound_gain(global.bgm_inst, _gain, 0);
audio_sound_pitch(global.bgm_inst, _pitch);
}
return;
}
// ããæ¢ã«ã¹ããªãŒã ãååšããŠãã
  if (variable_global_exists("bgm_stream") && audio_exists(global.bgm_stream)) {
audio_stop_sound(global.bgm_stream);// ãŸãæŒå¥ãæ¢ãã
    audio_destroy_stream(global.bgm_stream);// ã¹ããªãŒã ç Žæ£
global.current_bgm_name = ""; // åæå
// 3. ãããªãŒãã£ãªã¹ããªãŒã (oggã®ã«ãŒãåŠçãšããªïŒ)ãšããä»åŸäœ¿ããªããããã§ãçä»ãã
if (variable_global_exists("bgm_inst")) {
if (global.bgm_inst != -1 && audio_exists(global.bgm_inst)) {
// ã¹ããªãŒã 鳿ºã®å Žåã¯ããã§ãªãŒãã£ãªãããã¡ãè§£æŸããä¿éºã ã
audio_destroy_stream(global.bgm_inst);
}
}
  }
   Â
// 2. æ°ãããã¡ã€ã«ãå¬åïŒïŒäœæãå®ç§ã«æå®ãããïŒ
var _full_path = working_directory + "BGMçŽ æ/" + _filename;
if (file_exists(_full_path)) {
     // 3. æ°ããæ²ãããŒãããŠåçïŒ
    global.bgm_stream = audio_create_stream(_full_path);
    global.current_bgm_name = _filename; // ã仿µããŠãæ²åããå»ã
global.current_bgm_gain = _gain;
global.current_bgm_pitch =_pitch;
// å€éšã¹ããªãŒã ããã«ãŒãæïŒtrueïŒã§åçïŒïŒïŒã€ã³ã¹ã¿ã³ã¹IDã倿°ã«åããŠããã®ãã³ãã ïŒïŒ
_inst = audio_play_sound(global.bgm_stream, 10, true)
ããaudio_sound_gain(_inst, global.current_bgm_gain);
ããããaudio_sound_pitch(_inst, global.current_bgm_pitch);
ã
} else if (_filename == "BGM stop") {
  if (variable_global_exists("bgm_stream") && audio_exists(global.bgm_stream)) {
audio_stop_sound(global.bgm_stream);// ãŸãæŒå¥ãæ¢ãã
    audio_destroy_stream(global.bgm_stream);// ã¹ããªãŒã ç Žæ£
global.current_bgm_name = ""; // åæå
// 3. ãããªãŒãã£ãªã¹ããªãŒã (oggã®ã«ãŒãåŠçãšããªïŒ)ãšããä»åŸäœ¿ããªããããã§ãçä»ãã
if (variable_global_exists("bgm_inst")) {
if (global.bgm_inst != -1 && audio_exists(global.bgm_inst)) {
// ã¹ããªãŒã 鳿ºã®å Žåã¯ããã§ãªãŒãã£ãªãããã¡ãè§£æŸããä¿éºã ã
audio_destroy_stream(global.bgm_inst);
}
}
}
} else {
    // ãããã°çšïŒãã¡ã€ã«ãèŠã€ãããªãæã«ãã°ãåºã
    show_debug_message("æå®ããBGMãèŠã€ãããªãããåçãããŠããŸããããã¡ã€ã«åã確èªããŠãã ãã: " + _full_path);
  }
}//âããã§å®å
šã«éããïŒæåŸã«ãgame_save()ãšgame_load()ã§ããããã¯èšããŸã§ããªãã»ãŒãæ©èœã§ãã()å ã«ãã¡ã€ã«åãæå®ããŠå®è¡ããã ãã§èªç±èªåšã«ã»ãŒããã§ããŸãããŸãã«ã¢ã³ããŒããŒã«ã®ã»ãŒããã€ã³ãæ©èœãããªã¡ã¬ãã©ãŠã£ãšåãæ§é ã§ããã
ãã£ãããã ãïŒãšæãããã§ããæ¬åœã«ããã ãã§ãã
ããã§ã¯ãããžã§é²æãé²ãã§ãªããããã®ã§ãŸã次åã
ãã鲿ããã£ããšãã«ãŸããäŒãããŸããããããã§ã¯ãŸãã