[[罪罰改造]] *複数の称号を使う [#b83d7353] **概要 [#d7d27ea9] こんな感じになります -何もなし[1 2 ]→破壊王をとる→[1破壊王 2 ]→英雄を取る→[1英雄 2破壊王 ] **称号の取得部分 [#kc7f6a80] -./inc/ore_sub-system.cgiの最後に追加 # 称号の取得部分 sub get_sogo(){ # $sogo3=$sogo2; # 3つめの称号 $sogo2=$sogo; $sogo = @_[0]; # 称号取得時の効果 # たとえば、3回連続 覇者なら10万G # if($sogo==1&&$sogo==$sogo2&&$sogo2==$sogo3){ # $gold+=100000; # } # 称号レベルアップ # $sogo_lv[$sogo]++; } -称号レベルを使うときは、# $sogo_lv[$sogo]++;のコメントアウトを解除します(罪罰/称号レベルが必要です) **称号の保存と読み込み [#cc61532a] # ./inc/ore_sub-system.cgi # hash_data , dat_write それぞれの $sogo と同じように追加 称号の読み込み # sub hash_data{ $sogo2 = $DAT{'sogo2'}; # $sogo3 = $DAT{'sogo3'}; # 3つめの称号 称号の保存 # sub dat_write{ sogo2;$sogo2, # sogo3;$sogo3, **称号を取るときはこんな感じで [#ca1c77ed] # $sogo = 2; # 今までの所をコメントアウト &get_sogo(2); # これを追加 **称号の表示部分 [#ub50be7b] -$sogo_p[$sogo]のとなりとかに$sogo_p[sogo2]とか追加 -$sogo_p[$sogo]のとなりとかに$sogo_p[$sogo2]とか追加 -./inc/ore_sub-base_pc.cgi とか表示しているところに追加して試行錯誤してください^^ -$sogo_p[$sogo] # ひとつめ -$sogo_p[$sogo2] # ふたつめ -$sogo_p[$sogo3] # 3つめの称号 ※3つめの称号を使う場合は、先頭の # を消してコメントアウトを解除する **国際掲示板などで称号を表示させる [#l4ca4f0b] -称号のテーブルを./inc/ore_sub-bbs.cgiに持っているので、./ore_config.cgiと同じように追加する -「 # ログの展開 」となっているところの下あたりが、記事を表示する部分です -最初はこの様になっているので順番に修正を加えます $log_last_flag++; local($date,$nm,$camp,$com,$sogo,$addr,$host) = split(/<>/); $nm = qq|$nm <small>[$sogo_p[$sogo]]</small>| if($sogo); -掲示板などでは、現在の称号を表示している訳ではないので表示する称号を記録する必要があります。 -$hostの後ろに$sogo2を追加します。後ろに追加するのは以前のデータを読めるようにする為です local($date,$nm,$camp,$com,$sogo,$addr,$host,$sogo2) = split(/<>/); -$sogo_p[$sogo]と書かれているところ付近に$sogo_p[$sogo2]のように追加します -この辺は、表示したいように変えてください。適当にいろいろ表示させてみればいいかと $nm = qq|$nm <small>[$sogo_p[$sogo]:[$sogo_p[$sogo2]]]</small>| if($sogo); -2つめの称号を掲示板のデータに保存する # ログの書き込み処理 sub regist{ ... (省略) ... # ログ更新処理 unshift (@lines,"$date<>$DAT{'nm'}<>$DAT{'camp'}<>$com<>$DAT{'sogo'}<>$addr<>$host<>$agent<>$time<>$DAT{'sogo2'}<>\n"); *参考 [#k5de90ca] -[[罪罰/称号レベル]] -[[罪罰/称号の切替]] -製作から設置までの経緯は罪罰改造掲示板/5をどうぞ -当サイトでは↓を使ってますが、進化した?↑を使うと非常に簡単です -[[罪罰/旧称号]]