注:hspda.as をincludeしてます
title "Level Point D3" #include "hspda.as" ////////////////////////////////////////////////////////////////////////////////////////// // 変数 ////////////////////////////////////////////////////////////////////////////////////////// #define button_block(%1="") %tbtn1 %i0 button %1,*%p:%tbtn2 goto *%i %i0:%tbtn1 *%o #define b_break %tbtn2 goto *%p #define b_end %tbtn2 *%o:stop:*%o // button_block "1〜10カウント" // mes "" + a // if a = 10 :b_break // a ++ // b_end randomize pic_flag=0 gosub *def_selected_PC_status goto *@f *back_pic_draw return *wnd_reset objsize 160,35 color 0,128,0 color 200,0,25 boxf 0,0,1000,700 color 255,255,255 return *def_selected_PC_status sdim player_class,100,10 sdim player_class_str,100,10 #enum en_player_class_null=0 #enum en_player_class_A #enum en_player_class_B #enum en_player_class_C #enum en_player_class_D #enum en_player_class_E #enum en_player_class_this=8 player_class.en_player_class_A="爪マスター" player_class.en_player_class_B="剣マスター" player_class.en_player_class_C="槍マスター" player_class.en_player_class_D="弓マスター" player_class.en_player_class_E="斧マスター" player_class_str.en_player_class_null="en_player_class_null" player_class_str.en_player_class_A="en_player_class_A" player_class_str.en_player_class_B="en_player_class_B" player_class_str.en_player_class_C="en_player_class_C" player_class_str.en_player_class_D="en_player_class_D" player_class_str.en_player_class_E="en_player_class_E" player_class_str.en_player_class_this="en_player_class_this" player_class.en_player_class_this=player_class.en_player_class_A dim player_dat,50 sdim player_dat_str,100,50 // score=10 // player_this_class=1 // player_this_class_name=player_class_A // player_this_LV=0 // player_this_exp=0 // player_this_next_exp=0 #enum en_player_null=10 #enum en_player_score #enum en_player_this_class #enum en_player_this_LV #enum en_player_this_exp #enum en_player_this_next_exp player_dat.en_player_score=10 player_dat.en_player_this_class=1 player_dat.en_player_this_LV=1 player_dat.en_player_this_exp=0 player_dat.en_player_this_next_exp=0 player_dat_str.en_player_null="en_player_null" player_dat_str.en_player_score="en_player_score" player_dat_str.en_player_this_class="en_player_this_class" player_dat_str.en_player_this_LV="en_player_this_LV" player_dat_str.en_player_this_exp="en_player_this_exp" player_dat_str.en_player_this_next_exp="en_player_this_next_exp" #enum en_player_LV_null=20 #enum en_player_LV_A #enum en_player_LV_B #enum en_player_LV_C #enum en_player_LV_D #enum en_player_LV_E player_dat.en_player_LV_A=1 player_dat.en_player_LV_B=1 player_dat.en_player_LV_C=1 player_dat.en_player_LV_D=1 player_dat.en_player_LV_E=1 player_dat_str.en_player_LV_null="en_player_LV_null" player_dat_str.en_player_LV_A="en_player_LV_A" player_dat_str.en_player_LV_B="en_player_LV_B" player_dat_str.en_player_LV_C="en_player_LV_C" player_dat_str.en_player_LV_D="en_player_LV_D" player_dat_str.en_player_LV_E="en_player_LV_E" #enum en_player_exp_null=30 #enum en_player_exp_A #enum en_player_exp_B #enum en_player_exp_C #enum en_player_exp_D #enum en_player_exp_E player_dat.en_player_exp_A=0 player_dat.en_player_exp_B=0 player_dat.en_player_exp_C=0 player_dat.en_player_exp_D=0 player_dat.en_player_exp_E=0 player_dat_str.en_player_exp_null="en_player_exp_null" player_dat_str.en_player_exp_A="en_player_exp_A" player_dat_str.en_player_exp_B="en_player_exp_B" player_dat_str.en_player_exp_C="en_player_exp_C" player_dat_str.en_player_exp_D="en_player_exp_D" player_dat_str.en_player_exp_E="en_player_exp_E" #enum en_player_next_exp_null=40 #enum en_player_next_exp_A #enum en_player_next_exp_B #enum en_player_next_exp_C #enum en_player_next_exp_D #enum en_player_next_exp_E player_dat.en_player_next_exp_A=0 player_dat.en_player_next_exp_B=0 player_dat.en_player_next_exp_C=0 player_dat.en_player_next_exp_D=0 player_dat.en_player_next_exp_E=0 player_dat_str.en_player_next_exp_null="en_player_next_exp_null" player_dat_str.en_player_next_exp_A="en_player_next_exp_A" player_dat_str.en_player_next_exp_B="en_player_next_exp_B" player_dat_str.en_player_next_exp_C="en_player_next_exp_C" player_dat_str.en_player_next_exp_D="en_player_next_exp_D" player_dat_str.en_player_next_exp_E="en_player_next_exp_E" repeat 50 logmes ""+cnt+" "+player_dat_str.cnt loop #define sta_ar_var_MAX 1050 #define ar_first_index 8 dim player_some_next_exp,sta_ar_var_MAX gosub *calc_sub return #defcfunc ID_from_str str p_str,local loc_str loc_str=p_str repeat 10 if loc_str==player_class_str.cnt:return cnt loop repeat 50 if loc_str==player_dat_str.cnt:return cnt loop return -1 #deffunc ID_setter str p1_str,str p2_str,local loc_p1,local loc_p2,local loc_int1,local loc_int2 loc_p1=p1_str:loc_p2=p2_str loc_int1=ID_from_str(loc_p1) loc_int2=ID_from_str(loc_p2) if loc_int1 < 10:player_class.loc_int1=player_class.loc_int2 if loc_int1 >= 10:player_dat.loc_int1=player_dat.loc_int2 logmes "setter "+loc_p1+" ("+loc_int1+") < "+loc_p2+" ("+loc_int2+")" return *calc_sub; array p_ar ; dim player_some_next_exp,sta_ar_var_MAX i=1 player_some_next_exp.0=i repeat sta_ar_var_MAX i+=cnt player_some_next_exp(cnt+1)=i loop return *exp_up1 player_dat.en_player_this_exp++ return *@ //stop goto *HOME *pre_HOME clrobj 0 *HOME ;MB_clear gosub *wnd_reset pos 200,20 mes "HOME:何をしますか?\n" mes ""+player_class.en_player_class_this //+" score "+player_dat.en_player_score gosub *show_player_status // mes "LV"+player_dat.en_player_this_LV+" exp "+player_dat.en_player_this_exp+" next "+player_dat.en_player_this_next_exp pos 0,0 ; objsize 290,25 button "Training",*l_training button "Class change",*l_class_change button "Status",*l_status button "vsave",*l_vsave button "vload",*l_vload ; MB_draw stop *l_vsave vsave "save.dat" stop *l_vload vload "save.dat" goto *pre_HOME *l_training gosub *exp_up1 player_dat.en_player_score+=10 goto *pre_HOME *l_class_change clrobj 0 gosub *wnd_reset pos 200,20 mes "どのclassにclass changeしますか?" pos 0,0 button "爪マスター",*l_sel_tsume button "剣マスター",*l_sel_kenn button "槍マスター",*l_sel_yari button "弓マスター",*l_sel_yumi button "斧マスター",*l_sel_ono button "BACK",*pre_HOME stop #deffunc dat_taihi switch player_dat.en_player_this_class case 1: ID_setter "en_player_LV_A","en_player_this_LV" ID_setter "en_player_exp_A","en_player_this_exp" ID_setter "en_player_next_exp_A","en_player_this_next_exp" swbreak case 2: ID_setter "en_player_LV_B","en_player_this_LV" ID_setter "en_player_exp_B","en_player_this_exp" ID_setter "en_player_next_exp_B","en_player_this_next_exp" swbreak case 3: ID_setter "en_player_LV_C","en_player_this_LV" ID_setter "en_player_exp_C","en_player_this_exp" ID_setter "en_player_next_exp_C","en_player_this_next_exp" swbreak case 4: ID_setter "en_player_LV_D","en_player_this_LV" ID_setter "en_player_exp_D","en_player_this_exp" ID_setter "en_player_next_exp_D","en_player_this_next_exp" swbreak case 5: ID_setter "en_player_LV_E","en_player_this_LV" ID_setter "en_player_exp_E","en_player_this_exp" ID_setter "en_player_next_exp_E","en_player_this_next_exp" swbreak swend return *l_sel_tsume dat_taihi player_class.en_player_class_this=player_class.en_player_class_A player_dat.en_player_this_class=1 ID_setter "en_player_this_LV","en_player_LV_A" ID_setter "en_player_this_exp","en_player_exp_A" ID_setter "en_player_this_next_exp","en_player_next_exp_A" goto *l_sel_CC *l_sel_kenn dat_taihi player_class.en_player_class_this=player_class.en_player_class_B player_dat.en_player_this_class=2 ID_setter "en_player_this_LV","en_player_LV_B" ID_setter "en_player_this_exp","en_player_exp_B" ID_setter "en_player_this_next_exp","en_player_next_exp_B" goto *l_sel_CC *l_sel_yari dat_taihi player_class.en_player_class_this=player_class.en_player_class_C player_dat.en_player_this_class=3 ID_setter "en_player_this_LV","en_player_LV_C" ID_setter "en_player_this_exp","en_player_exp_C" ID_setter "en_player_this_next_exp","en_player_next_exp_C" goto *l_sel_CC *l_sel_yumi dat_taihi player_class.en_player_class_this=player_class.en_player_class_D player_dat.en_player_this_class=4 ID_setter "en_player_this_LV","en_player_LV_D" ID_setter "en_player_this_exp","en_player_exp_D" ID_setter "en_player_this_next_exp","en_player_next_exp_D" goto *l_sel_CC *l_sel_ono dat_taihi player_class.en_player_class_this=player_class.en_player_class_E player_dat.en_player_this_class=5 ID_setter "en_player_this_LV","en_player_LV_E" ID_setter "en_player_this_exp","en_player_exp_E" ID_setter "en_player_this_next_exp","en_player_next_exp_E" goto *l_sel_CC *l_sel_CC clrobj 0 gosub *wnd_reset pos 200,20 mes ""+player_class.en_player_class_this+" に class change しました" logmes ""+player_dat.en_player_this_class pos 0,0 button "NEXT",*pre_HOME stop *l_status clrobj 0 gosub *wnd_reset pos 200,20 gosub *show_player_kuwasii_status pos 0,0 button "NEXT",*pre_HOME stop *show_player_status tmp_player_LV=player_dat.en_player_this_LV gosub *get_p_next_exp mes "score "+player_dat.en_player_score mes "LV "+player_dat.en_player_this_LV+" exp "+player_dat.en_player_this_exp + " next "+ player_dat.en_player_this_next_exp if tmp_player_LV!=player_dat.en_player_this_LV:mes "LVUP!" return *show_player_kuwasii_status dat_taihi mes "score "+player_dat.en_player_score mes "爪 LV "+player_dat.en_player_LV_A+" exp "+player_dat.en_player_exp_A + " next "+ player_dat.en_player_next_exp_A mes "剣 LV "+player_dat.en_player_LV_B+" exp "+player_dat.en_player_exp_B + " next "+ player_dat.en_player_next_exp_B mes "槍 LV "+player_dat.en_player_LV_C+" exp "+player_dat.en_player_exp_C + " next "+ player_dat.en_player_next_exp_C mes "弓 LV "+player_dat.en_player_LV_D+" exp "+player_dat.en_player_exp_D + " next "+ player_dat.en_player_next_exp_D mes "斧 LV "+player_dat.en_player_LV_E+" exp "+player_dat.en_player_exp_E + " next "+ player_dat.en_player_next_exp_E return *get_p_next_exp repeat sta_ar_var_MAX if player_dat.en_player_this_exp>=player_some_next_exp.cnt:player_dat.en_player_this_LV=cnt+1 loop player_dat.en_player_this_next_exp=player_some_next_exp(player_dat.en_player_this_LV) if player_dat.en_player_this_LV==1:player_dat.en_player_this_next_exp=1 return