در این بخش قصد داریم با استفاده از php دو پلیر رو وارد یک روم کنیم که آماده مبارزه باشن.
یه اسپرایت با نام spr_loading برای زمانی که پلیر منتظر ورود پلیر دوم و شروع بازی هست میسازیم.
چهار اسپرایت با نامهای spr_h_1_stop و spr_h_2_stop و spr_h_3_stop و spr_h_4_stop برای نمایش حالت ایست کاراکتر ها ایجاد میکنیم
یه اسپرایت هم برای نمایش جان به نام spr_healthbar ایجاد میکنیم.
یه آبجکت با نام obj_loading_player ایجاد میکنیم و این آبجکت رو در لابی یا محل انتظار قرار میدیم که پلیر منتظر پلیر بعدی هست
در ایونت Create همین آبجکت کدهای زیر رو وارد میکنیم
http_get(string('https://gmstudio.ir/online_tenbase/player.php?name=') +string(global.username)+string('&hero=')+string(global.userhero)) get = '' image_speed=0.5 show=0 size=0 alarm[0]=150
در ایونت آلارم کدهای زیر رو قرار میدیم .
get = http_get(string("https://gmstudio.ir/online_tenbase/start.php?name=") +string(global.username)+string('&hero=')+string(global.userhero)) alarm[0]=150
در ایونت http کدهای زیر رو وارد میکنیم
var type = ds_map_find_value(async_load,'id'); if type == get { if ds_map_find_value(async_load,'status') == 0 { var requestResult = ds_map_find_value(async_load,'result'); var resultMap = json_decode(requestResult); var list = ds_map_find_value(resultMap, "default"); top_rank_size = ds_list_size(list); size=real(top_rank_size); for (var n = 0; n < ds_list_size(list); n++;) { var map = ds_list_find_value(list, n); var curr = ds_map_find_first(map); while (is_string(curr)) { name[n] = ds_map_find_value(map, "name"); hero[n] = ds_map_find_value(map, "hero"); curr = ds_map_find_next(map, curr); } show = ds_map_find_value(map, "show"); ds_map_destroy(map); } ds_list_destroy(list); ds_map_destroy(resultMap); } }
در ایونت .step. کدهای زیر رو وارد میکنیم
if(show='1' or show='2') { global.e_username=string(name[0]) global.e_userhero=real(hero[0]) global.tern=real(show) room_goto_next() }
یه آبجکت ایجاد کرده در روم سوم قرار میدیم با نام obj_helthbar این آبجکت برای نمایش هلث پلیر و دشمن هست
کدهای زیر رو در ایونت draw این آبجکت وارد میکنیم
draw_healthbar(x+143,y+66,x+291,y+85,global.heath,c_black,c_aqua,c_aqua,0,1,0) draw_healthbar(x+496,y+66,x+344,y+85,global.e_heath,c_black,c_aqua,c_aqua,0,1,0) draw_set_colour(c_white) draw_text(x+180,y+43,global.username) draw_text(x+457,y+43,global.e_username) draw_sprite(sprite_index,0,x,y)
خط اول و دوم هلث پلیر و دشمن رو در مختصات خاصی رسم میکنه
خط 4 و 5 و 6 نام پلیر و نام دشمن پلیر رو با رنگ سفید رسم میکنه
خط 8 هم اسپرایتمون رو رسم میکنه برای زیبایی
یه آبجکت با نام obj_player ایجاد کرده تو روم سوم میزاریم
در ایونت Create این آبجکت کدهای زیر رو وارد میکنیم
image_speed=0.2 if(global.userhero=1) {sprite_index=spr_h_1_stop} if(global.userhero=2) {sprite_index=spr_h_2_stop} if(global.userhero=3) {sprite_index=spr_h_3_stop} if(global.userhero=4) {sprite_index=spr_h_4_stop}
یه آبجکت با نام obj_enemy ایجاد کرده تو روم سوم میزاریم
در ایونت Create این آبجکت کدهای زیر رو وارد میکنیم
image_speed=0.2 image_xscale=-1 if(global.e_userhero=1)< {sprite_index=spr_h_1_stop} if(global.e_userhero=2) {sprite_index=spr_h_2_stop} if(global.e_userhero=3) {sprite_index=spr_h_3_stop} if(global.e_userhero=4) {sprite_index=spr_h_4_stop}
تو سرور یا هاست یه فایل خالی با نام start.txt ایجاد میکنیم
بعد یه فایل با نام player.php ایجاد میکنیم و کدهای زیر رو داخلش وارد میکنیم.
<?php $user=$_GET['name']; $hero=$_GET['hero']; $read = file("start.txt"); foreach($read as $name) { $old_user=$name; } $char=substr_count($old_user,"±"); if($char!=0) { $myfile = fopen("start.txt", "w"); fclose($myfile); $old_user=''; } if($old_user!='') { $myfile = fopen("start.txt", "w"); fwrite($myfile,$old_user."±".$user.'°'.$hero); fclose($myfile); } else { $myfile = fopen("start.txt", "w"); fwrite($myfile,$user.'°'.$hero); fclose($myfile); } ?>
یه فایل دیگه با نام start.php ایجاد کرده و کدهای زیر رو داخلش وارد میکنیم
<?php $user=$_GET['name']; $array = array(); $read = file("start.txt"); foreach($read as $name) {$file=$name; } $char=substr_count($file,"±"); if($char!=0) { $users=explode("±",$file); $users1=explode("°",$users[0]); $users2=explode("°",$users[1]); if($user==$users1[0]) { array_push($array,array("name"=>"$users2[0]","hero"=>"$users2[1]")); array_push($array,array("show"=>"1")); } else { array_push($array,array("name"=>"$users1[0]","hero"=>"$users1[1]")); array_push($array,array("show"=>"2")); } $print = json_encode($array); echo $print; } ?>
از بازی خروجی گرفته دو بار اجرا کرده تست میکنیم نتیجه میشه این
فایلهای آموزش رو میتونید از لینک زیر دانلود کنید.