prontera.gat,145,178,6 script スキル記録係 781,{ mes "[スキル記録係]"; mes "こんにちわ。"; mes "こちらでは貴方の所持しているスキルを記録することができます。"; mes "いかがいたしますか?"; next; set @line,csvfind("CSVSKILLLISTMEMO",0,getcharid(0)); if(@line != -1){ menu "スキルを復元します",L_SKILLRETURN,"スキルを記録します",L_SKILLMEMO,"結構です",L_CANCEL; }else{ menu "スキルを記録します",L_SKILLMEMO,"結構です",L_CANCEL; } L_SKILLMEMO: //古い記録を削除 if(@line != -1){ csvdelete "CSVSKILLLISTMEMO",@line; csvdelete "CSVSKILLLISTMEMO",@line; } mes @line; next; //スキル情報取得 getskilllist; //記録件数取得 set @csvrows,csvgetrows("CSVSKILLLISTMEMO"); mes @csvrows; next; //ヘッダ情報書き込み キャラIDとジョブID set @cols,0; csvwrite "CSVSKILLLISTMEMO",@csvrows,@cols,getcharid(0); csvwrite "CSVSKILLLISTMEMO",@csvrows,@cols+1,Class; csvwrite "CSVSKILLLISTMEMO",@csvrows+1,@cols,getcharid(0); csvwrite "CSVSKILLLISTMEMO",@csvrows+1,@cols+1,Class; set @cols,2; //スキル情報書き込み for( set @i,0; @skilllist_id[@i] != 0; set @i,@i+1){ csvwrite "CSVSKILLLISTMEMO",@csvrows,@cols,@skilllist_id[@i]; csvwrite "CSVSKILLLISTMEMO",@csvrows+1,@cols,@skilllist_lv[@i]; set @cols,@cols+1; } //セーブ csvflush "CSVSKILLLISTMEMO"; mes "[スキル記録係]"; mes "スキル情報を記録しました。スキルリセットや転生後などに再度こちらで復元させることができます。"; mes "ご利用ありがとうございました。"; goto L_END; L_SKILLRETURN: csvreadarray "CSVSKILLLISTMEMO",@line,@skill_id; csvreadarray "CSVSKILLLISTMEMO",@line+1,@skill_lv; if(@skill_id[1] != Class) goto L_CLASSMISS; gmcommand "@resetskill"; for(set @i,2;@i < getarraysize(@skill_id) ; set @i,@i+1){ if(readparam(12) > 0){ //残スキルポイントチェック if(readparam(12) < @skill_lv[@i]){ set @skill_lv[@i],readparam(12); } if(getskilllv(@skill_id[@i])){ //消費ポイント設定 set @point,@skill_lv[@i]-getskilllv(@skill_id[@i]); }else{ //消費ポイント設定 set @point,@skill_lv[@i]; } //スキル習得 skill @skill_id[@i],@skill_lv[@i],0; //習得成否チェックし、習得していない場合消費ポイント0 //職業を変更している場合、習得できないため if(getskilllv(@skill_id[@i]) == 0){ set @point,0; } //ポイント消費 gmcommand "@skpoint -"+@point; mes getskilllv(@skill_id[@i]);next; }else{ break; } } mes "[スキル記録係]"; mes "こちらがお預かりしていたスキルになります。"; mes "ご利用ありがとうございました。"; goto L_END; L_CLASSMISS: mes "[スキル記録係]"; mes "職業が一致しません。"; mes "またのご利用をお待ちしております。"; goto L_END; L_CANCEL: mes "[スキル記録係]"; mes "そうですか・・・。"; mes "またのご利用をお待ちしております。"; goto L_END; L_END: close; end; }