hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
戦っては強くさせるゲーム - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

このゲームの概要

 自由にかいぞうしてもいいです。  改造したのができたらここにもってきてください

ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
// 戦っては強くするゲームです
//ver : 0.63
#include "user32.as"
#const winw 360
#const winh 250
#const mescenx winw/2
#const mesceny 15
#const objpx 10
#const objpy 40
#const batesx 20
#const batpsx 220
#const batsy 30
#const sitemx 80
#const sitemy 40
#module
#deffunc align str string, int t1, int t2, local cx, local cy
cx=ginfo_cx : cy=ginfo_cy : tcx=cx : tcy=cy
pos 0,ginfo_dispy : mes string // 見えない位置に書き込む
if t1=1{cx-=ginfo_mesx/2} // 中央揃え
else : if t1=2{cx-=ginfo_mesx} // 右揃え
else{cx=cx} // 左揃え
if t2=1{cy-=ginfo_mesy/2} // 中央揃え
else : if t2=2{cy-=ginfo_mesy} // 右揃え
else{cy=cy} // 左揃え
pos cx,cy : mes string
pos tcx,tcy+ginfo_mesy
return
#global
 
sdim text
sdim hs
dim whobj,32
;ウィンドウ、画像の設定
font msgothic,100
mes"111\n222\n333"
screen ,winw,winh
 
objsize 130,60 : pos 110,100
button"GAME START",*scene_main : whobj.0 = objinfo(stat, 2)
objsize 60,24 : pos objpx,objpy
button"戦闘",*scene_enemyselect : whobj.1 = objinfo(stat, 2)
button"物ショップ",*scene_shop1 : whobj.2 = objinfo(stat, 2)
button"コロシアム",*scene_colosseum : whobj.3 = objinfo(stat, 2)
button"スロット",*slotgame : whobj.4 = objinfo(stat, 2)
button"技ショップ",*scene_shop2 : whobj.5 = objinfo(stat, 2)
pos objpx,objpy
combox level,120,"0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10" : whobj.6 = objinfo(stat, 2)
combox level,120,"0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50"
whobj.7 = objinfo(stat, 2)
button"決定",*battle_1A : whobj.8 = objinfo(stat, 2)
button"戻る",*scene_main : whobj.9 = objinfo(stat, 2)
pos objpx,objpy
button"購入",*item_1 : whobj.10 = objinfo(stat, 2)
button"購入",*item_2 : whobj.11 = objinfo(stat, 2)
button"購入",*item_3 : whobj.12 = objinfo(stat, 2)
button"購入",*item_4 : whobj.13 = objinfo(stat, 2)
button"購入",*item_5 : whobj.14 = objinfo(stat, 2)
button"購入",*item_6 : whobj.15 = objinfo(stat, 2)
button"購入",*item_7 : whobj.16 = objinfo(stat, 2)
button"戻る",*scene_main : whobj.17 = objinfo(stat, 2)
pos objpx,objpy
button"メタルスライム",*boss_1 : whobj.18 = objinfo(stat, 2)
button"オクトパス",*boss_2 : whobj.19 = objinfo(stat, 2)
button"三倍超人",*boss_3 : whobj.20 = objinfo(stat, 2)
button"魔法使い",*boss_4 : whobj.21 = objinfo(stat, 2)
button"戻る",*scene_main : whobj.22 = objinfo(stat, 2)
pos objpx,objpy
button"購入",*itemB_1 : whobj.23 = objinfo(stat, 2)
button"購入",*itemB_2 : whobj.24 = objinfo(stat, 2)
button"戻る",*scene_main : whobj.25 = objinfo(stat, 2)
pos 20, 160 : button gosub "STOP", *teishi : whobj.26 = objinfo(stat, 2)
pos 100, 160 : button gosub "STOP", *teishi : whobj.27 = objinfo(stat, 2)
pos 180, 160 : button gosub "STOP", *teishi : whobj.28 = objinfo(stat, 2)
pos 290, 160 : button gosub "START", *kaishi : whobj.29 = objinfo(stat, 2)
pos 290, 200 : button goto "終了", *scene_main : whobj.30 = objinfo(stat, 2)
pos 290, 60 : button gosub "COIN", *coinin : whobj.31 = objinfo(stat, 2)
gosub *scenechange_begin
 
onexit gosub *money_checking
HP=50+rnd(101)
AT=4+rnd(4)
money=500
color 255,255,255 : boxf
font"MSゴジック",37 : color 255
px=40 : py=30 : text="BATTLE GAME"
repeat strlen(text)
memcpy hs,text,1,0,cnt : poke hs,1
pos px,py : mes hs
px+=24
wait 8
loop
Showwindow whobj.0, 5
stop
*scene_main
dim battlefinish
gosub *scenechange_begin
Showwindow whobj.1, 5
Showwindow whobj.2, 5
Showwindow whobj.3, 5
Showwindow whobj.4, 5
pos mescenx,mesceny : align"何をしますか?",1,1
pos 120,70 : mes"あなたの\n体力 :"+HP+"\n攻撃力:"+AT+"\n所持金:"+money
if shopopen=1 : Showwindow whobj.5, 5
repeat
stick check1
if check1=1120 : gosub *supermode
await 1
loop
stop
*scene_enemyselect
gosub *scenechange_begin
if enemyMAXLV=0{ShowWindow whobj.6, 5}else : if enemyMAXLV=1{ShowWindow whobj.7, 5}
Showwindow whobj.8, 5
Showwindow whobj.9, 5
pos mescenx,mesceny : align"敵のレベルを選択してください。",1,1
stop
*scenechange_begin
color 255,255,255 : boxf : color
repeat length(whobj)
Showwindow whobj.cnt, 0
loop
return
*boss_1
enemyHP=200
enemyAT=20
enemyMODE=1
dialog"メタルスライム戦\n敵のHP : "+enemyHP+"\n敵のAT : "+enemyAT+"\n特性 : ダメージを半分にする。"
goto *battle_1b
*boss_2
enemyHP=500
enemyAt=30
enemyMODE=2
dialog"オクトパス戦\n敵のHP : "+enemyHP+"\n敵のAT : "+enemyAT+"\n特性 : 一定確率でHPを吸い取る"
goto *battle_1b
*boss_3
enemyHP=1000
enemyAt=0
enemyMODE=3
dialog"三倍超人戦\n敵のHP : "+enemyHP+"\n敵のAT : なし\n特性 : 33%の確立で攻撃力が33になる。"
goto *battle_1b
*boss_4
enemyHP=1500
enemyAt=40
enemyMODE=4
dialog"魔法使い戦\n敵のHP : "+enemyHP+"\n敵のAT : "+enemyAT+"\n特性 : 一定確立で氷魔法を使う。(50ダメージ)"
goto *battle_1b
*battle_1A
enemyHP=level*10+rnd(10)+rnd(101)+50
enemyAT=level*2+rnd(6)+1
dialog"敵の体力は"+enemyHP+"\n敵の攻撃力は"+enemyAT
gosub *scenechange_begin
*battle_1B
yourHP=HP
if shield=1 : yourHP+=50 : shield=0 : dialog"シールドの効果でHPが50上がった。",0
yourAT=AT
if sword=1 : yourAT+=5 : sword=0 : dialog"ソードの効果でATが5上がった。",0
repeat
color 255,255,255 : boxf : color
pos batesx,batsy : mes"敵のHP : "+enemyHP
pos batpsx,batsy : mes"自分のHP : "+yourHP
pos batesx+10,batsy+30
enemydamage=yourAT+rnd(3)-rnd(3)
if enemyMODE=1 : enemydamage=enemydamage/2
if yourMODE=2{
check=rnd(21)
if check<=10{
drainHP=enemydamage/2
yourHP+=drainHP
color 0,255 : pos batesx+10,batsy+30 : mes""+drainHP
}
}
enemyHP-=enemydamage
color 255 : mes""+enemydamage+""
wait 20
if enemyHP<0{battlefinish=1 : break}
color 255,255,255 : boxf : color
pos batesx,batsy : mes"敵のHP : "+enemyHP
pos batpsx,batsy : mes"自分のHP : "+yourHP
yourdamage=enemyAT+rnd(3)-rnd(3)
if enemyMODE=3{
check=rnd(101)
if check<33 : yourdamage=33
}
if yourMODE=1{
check=rnd(21)
if check<10 : yourdamage=0 : kaihi=1
}
if enemymode=4 {
check=rnd(21)
if check<10 : yourdamage=50 : koori=1
}
yourHP-=yourdamage
if enemyMODE=2{
check=rnd(21)
if check<=5{
drainHP=yourdamage/2
enemyHP+=drainHP
color 0,255
pos batesx+10,batsy+30 : mes""+drainHP
}
}
if yourdamage<0 : yourdamage=0
color 255
if koori=1 : color 0,0,255
if kaihi=1 : color 0,255 : kaihi=0
pos batpsx+10,batsy+30 : mes""+yourdamage+""
wait 20
if yourHP<0{battlefinish=-1 : break}
loop
if battlefinish=1{goto *youwin}else : if battlefinish=-1{goto *youlose}
*youwin
getmoney=level*rnd(30)+level*30+50
if enemyMODE=1 : enemyMODE=0 : getmoney=1000
if enemyMODE=2 : enemyMODE=0 : getmoney=3000
money+=getmoney
dialog"あなたの勝ち!\n獲得金額は"+getmoney+"GOLD"
itemdrop_1=level*2
itemdrop_2=rnd(101)
if itemdrop_1<itemdrop_2 {
getitem=rnd(2)
if getitem=0 {
upHP=5+rnd(6)
HP+=uphp
dialog"体力増強剤を手に入れた。\n体力が"+upHP+"あがった。"
}
if getitem=1 {
upAT=1+rnd(2)
AT+=upAT
dialog"攻撃増強剤を手に入れた。\n攻撃力が"+upAT+"あがった。"
}
}
goto *scene_main
*youlose
dialog"あなたの負け..."
if enemyMODE!0 : enemyMODE=0
goto *scene_main
*scene_shop1
gosub *scenechange_begin
py=sitemy : iy=23
pos mescenx,mesceny : align"SHOP一号店 残金 : "+money+"GOLD",1,1
pos sitemx,py : mes"体力増強剤" : py+=iy
pos sitemx,py : mes"攻撃増強剤" : py+=iy
pos sitemx,py : mes"ショップグレードアップ" : py+=iy
if grade>=1 {
pos sitemx,py : mes"ソード" : py+=iy
pos sitemx,py : mes"シールド" : py+=iy
}
if grade>=2 {
pos sitemx,py : mes"コロシアム出場権" : py+=iy
pos sitemx,py : mes"敵レベル上限UP" : py+=iy
}
Showwindow whobj.10, 5
Showwindow whobj.11, 5
Showwindow whobj.12, 5
if grade>=1 {
Showwindow whobj.13, 5
Showwindow whobj.14, 5
}
if grade>=2 {
Showwindow whobj.15, 5
Showwindow whobj.16, 5
}
Showwindow whobj.17, 5
stop
*item_1
dialog"本当に購入しますか?\n価格 : 200GOLD\n効果 : HPが5〜10上がる",2
if stat=7 : stop
if money<200 : dialog"お金が足りません",1 : stop
money-=200
upHP=5+rnd(6)
HP+=uphp
dialog"購入しました。\nHPが"+upHP+"上がりました"
goto *scene_shop1
*item_2
dialog"本当に購入しますか?\n価格 : 200GOLD\n効果 : ATが1〜2上がる",2
if stat=7 : stop
if money<200 : dialog"お金が足りません",1 : stop
money-=200
upAT=1+rnd(2)
AT+=upAT
dialog"購入しました。\nATが"+upAT+"上がりました"
goto *scene_shop1
*item_3
if grade=0 : goto *item_31
if grade=1 : goto *item_32
if grade=2 : goto *item_33
stop
*item_31
dialog"本当に購入しますか?\n価格 : 1000GOLD\n効果 : 品物が増える",2
if stat=7 : stop
if money<1000 : dialog"お金が足りません",1 : stop
money-=1000
grade=1
dialog"購入しました。",0
goto *scene_shop1
*item_32
dialog"本当に購入しますか?\n価格 : 3000GOLD\n効果 : 品物が増える",2
if stat=7 : stop
if money<3000 : dialog"お金が足りません",1 : stop
money-=3000
grade=2
dialog"購入しました。",0
goto *scene_shop1
*item_33
dialog"本当に購入しますか?\n価格 : 5000GOLD\n効果 : 品物が増える",2
if stat=7 : stop
if money<5000 : dialog"お金が足りません",1 : stop
money-=5000
shopopen=1
dialog"購入しました。",0
goto *scene_shop1
*item_4
dialog"本当に購入しますか?\n価格 : 2500GOLD\n効果 : 一回限りだけ戦闘時の攻撃力が5あがる。",2
if stat=7 : stop
if money<2500 : dialog"お金が足りません",1 : stop
if sword=1 : dialog"すでに購入済みです",1 : stop
money-=2500
sword=1
dialog"購入しました。",0
goto *scene_shop1
*item_5
dialog"本当に購入しますか?\n価格 : 2500GOLD\n効果 : 一回限りだけ戦闘時の体力が50あがる。",2
if stat=7 : stop
if money<2500 : dialog"お金が足りません",1 : stop
if shield=1 : dialog"すでに購入済みです",1 : stop
money-=2500
shield=1
dialog"購入しました。",0
goto *scene_shop1
*item_6
dialog"本当に購入しますか?\n価格 : 2000GOLD\n効果 : コロシアムに行けるようになる。",2
if stat=7 : stop
if money<2000 : dialog"お金が足りません",1 : stop
if korosiamu=1 : dialog"購入済みです",1 : stop
money-=2000
korosiamu=1
dialog"購入しました。",0
goto *scene_shop1
*item_7
dialog"本当に購入しますか。\n価格 : 2000GOLD\n効果 : 敵レベルの上限が50になる",2
if stat=7 : stop
if money<2000 : dialog"お金が足りません。",1 : stop
if enemyMAXLV=1 : dialog"購入済みです",1 : stop
money-=2000
enemyMAXLV=1
dialog"購入しました。",0
goto *scene_shop1
*scene_colosseum
if korosiamu=0 : dialog"出場権がないので行けないようだ。",0 : stop
gosub *scenechange_begin
pos mescenx,mesceny : align"戦う敵を選んでください。",1,1
Showwindow whobj.18, 5
Showwindow whobj.19, 5
Showwindow whobj.20, 5
Showwindow whobj.21, 5
Showwindow whobj.22, 5
stop
*scene_shop2
gosub *scenechange_begin
pos mescenx,mesceny : align"SHOP二号店 残金 : "+money+"GOLD",1,1
py=sitemy : iy=23
if yourMODE=1{color 255}else{color}
pos sitemx,py : mes"回避" : py+=iy
if yourMODE=2{color 255}else{color}
pos sitemx,py : mes"ドレイン" : py+=iy
Showwindow whobj.23, 5
Showwindow whobj.24, 5
Showwindow whobj.25, 5
stop
*itemB_1
if MODE_1=1 : goto *itemB_1_2
dialog"本当に購入しますか。\n価格 : 15000GOLD\n効果 : 5%の確立で回避をする",2
if stat=7 : stop
if money<15000 : dialog"お金が足りません。",1 : stop
if MODE_1=1 : dialog"購入済みです",1 : stop
money-=15000
yourMODE=1
MODE_1=1
dialog"購入しました。",0
goto *scene_shop2
*itemB_2
if MODE_2=1 : goto *itemB_2_2
dialog"本当に購入しますか。\n価格 : 30000GOLD\n効果 : 5%の確立でHP吸収をする",2
if stat=7 : stop
if money<30000 : dialog"お金が足りません。",1 : stop
if MODE_2=1 : dialog"購入済みです",1 : stop
money-=30000
yourMODE=2
MODE_2=1
dialog"購入しました。",0
goto *scene_shop2
*itemB_1_2
dialog"技を変更しますか?。\n効果 : 25%の確立で回避をする",2
if stat=7 : stop
yourMODE=1
dialog"変更しました。",0
goto *scene_shop2
*itemB_2_2
dialog"技を変更しますか?。\n効果 : 25%の確立でHP吸収をする",2
if stat=7 : stop
yourMODE=2
dialog"変更しました。",0
goto *scene_shop2
*supermode
dialog"CHEATモードにします。",0
hp=500
at=15
sword=1
shield=1
korosiamu=1
enemyMAXLV=1
grade=2
money=100000
return
*slotgame
gosub *scenechange_begin
gmode 0, 50, 50 ;コピーモード設定50*50
;その他の設定
title "スロット・ゲーム"
;ボタン等オブジェクトの配置
Showwindow whobj.26, 5
Showwindow whobj.27, 5
Showwindow whobj.28, 5
Showwindow whobj.29, 5
Showwindow whobj.30, 5
Showwindow whobj.31, 5
;ゲーム初期設定
sstat = 0 ;ゲーム状態 0 : スタートok、1 : ストップok、2 : 判定
gosub *tokuten_disp ;得点表示
coin = 0
gosub *coin_disp ;賭点表示
suu1 = rnd(5) * 2 ;数字初期設定
suu2 = rnd(5) * 2
suu3 = rnd(5) * 2
pos 30, 80 : gcopy 1, 0, 25 * suu1 ;画像描画
pos 110, 80 : gcopy 1, 50, 25 * suu2
pos 190, 80 : gcopy 1, 100, 25 * suu3
kaiten1 = 0 ;回転停止
kaiten2 = 0
kaiten3 = 0
repeat
;回転アニメーション
if kaiten1 = 1 {
suu1 = suu1 + 1
if suu1 = 10 : suu1 = 0
pos 30, 80
gcopy 1, 0, 25 * suu1 ;画像描画,yを25ドット単位で
}
if kaiten2 = 1 {
suu2 = suu2 + 1
if suu2 = 10 : suu2 = 0
pos 110, 80
gcopy 1, 50, 25 * suu2 ;画像描画,yを25ドット単位で
}
if kaiten3 = 1 {
suu3 = suu3 + 1
if suu3 = 10 : suu3 = 0
pos 190, 80
gcopy 1, 100, 25 * suu3 ;画像描画,yを25ドット単位で
}
if sstat = 2 : gosub *hantei
await 50
loop
;--------------------
; サブルーチン -----
;並び判定・得点計算 -----
*hantei
if suu1 = suu2 & suu2 = suu3 { ;3つ同じ数字
plusmoney = coin * 4
money = money + plusmoney ;3倍+賭点 加算
dialog"あたり!\n"+plusmoney+"GOLD"
gosub *tokuten_disp ;得点表示
}
coin = 0 ;賭点初期化
gosub *coin_disp ;賭点表示
sstat = 0 ;0 : スタートok
return
;回転停止 -----
*teishi
if sstat ! 1 : return ;sstat=1以外は戻る
if stat = 26 { ;ボタンID0
kaiten1 = 0 ;回転停止
if suu1 \ 2 = 1 : suu1 = suu1 + 1 ;数字補正
if suu1 = 10 : suu1 = 0
pos 30, 80 : gcopy 1, 0, 25 * suu1 ;画像描画
}
if stat = 27 { ;ボタンID1
kaiten2 = 0
if suu2 \ 2 = 1 : suu2 = suu2 + 1
if suu2 = 10 : suu2 = 0
pos 110, 80 : gcopy 1, 50, 25 * suu2
}
if stat = 28 { ;ボタンID2
kaiten3 = 0
if suu3 \ 2 = 1 : suu3 = suu3 + 1
if suu3 = 10 : suu3 = 0
pos 190, 80 : gcopy 1, 100, 25 * suu3
}
if kaiten1 + kaiten2 + kaiten3 = 0 : sstat = 2 ;2 : 判定
return
;回転開始 -----
*kaishi
if sstat ! 0 : return ;sstat=0以外は戻る
if coin <= 0 : dialog "コインを入れてください。" : return
kaiten1 = 1 ;回転開始
kaiten2 = 1
kaiten3 = 1
sstat = 1 ;1 : ストップok
return
;賭点入力 -----
*coinin
if sstat ! 0 : return ;sstat=0以外は戻る
if money >= 10 { ;得点チェック
coin = coin + 10 ;賭点加算
money = money - 10 ;得点減算
gosub *tokuten_disp ;得点表示
gosub *coin_disp ;賭点表示
} else {
dialog "これ以上、持ち点がありません。"
}
return
;得点表示 -----
*tokuten_disp
color 0, 255 : boxf 70, 20, 250, 40 ;得点表示領域消去
pos 70, 20 : color 200, 0, 255 : mes strf("所持金: %08d", money) ;得点表示
return
;賭点表示 -----
*coin_disp
color 0, 255 : boxf 280, 80, 360, 120 ;賭点表示領域消去
pos 290, 90 : color 0, 0, 255 : mes strf(" %4d", coin) ;賭点表示
return
*money_checking
end
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2013-05-13 (月) 23:24:16 (208d)