したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

製作初心者講座スレ

554あなたの名前を入力してください:2022/01/25(火) 01:44:48 ID:u227Z.ao
>>551-553
なんだもうあるんだ・・・・w
一応作った。全角スペースをタブに置換すれば動くはず
GET_CHARA_RANDOMRULEの第一引数にキャラのindexを数値で、第二引数以降に条件を文字列で書けば、条件を満たすものの中からランダムで1つ選んで返す
(第一引数に指定した値は第二引数以降では変数indexとして参照できる)

@GET_CHARA_RANDOMRULE_ARRAY(targetChara,rule)
#FUNCTION
#DIM targetChara
#DIMS REF rule,0 ;必要なら雑に増やす
#DIM index
#DIM allowedRulesIndex,100 ;足りないとエラーになるので雑に増やす
VARSET allowedRulesIndex,-1
FOR index,0,VARSIZE("rule")
 SIF rule:index == ""
  CONTINUE
 SIF EVALUATE(rule:index,targetChara)
  allowedRulesIndex:FINDELEMENT(allowedRulesIndex,-1) = index
NEXT
SELECTCASE FINDELEMENT(allowedRulesIndex,-1)
 CASE -1
  RETURNF RAND:VARSIZE("allowedRulesIndex")
 CASE 0
  RETURNF -1
 CASEELSE
  RETURNF RAND:FINDELEMENT(allowedRulesIndex,-1)
ENDSELECT

@GET_CHARA_RANDOMRULE(targetChara,rule:0,rule:1 = "",rule:2 = "",rule:3 = "",rule:4 = "",rule:5 = "",rule:6 = "",rule:7 = "",rule:8 = "",rule:9 = "")
#FUNCTION
#DIM targetChara
#DIMS rule,10
RETURNF GET_CHARA_RANDOMRULE_ARRAY(targetChara,rule)

;コイツは汎用関数・ライブラリスレの>>103-104に入ってるやつと被ってるので、そっち使ってるなら不要
@EVALUATE(evalString,index=-1,value=-1,totalizedValue=-1,strKey="")
#FUNCTION
#DIMS evalString
#DIM DYNAMIC index
#DIM DYNAMIC value
#DIM DYNAMIC totalizedValue
#DIMS DYNAMIC strKey
RETURNF TOINT(STRFORM("{" + evalString + "}"))


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板