task PlayerShot02(x,y,speed,angle,r,g,b,damage){
	let eff      = Obj_Create(OBJ_EFFECT);
	let obj      = Obj_Create(OBJ_SHOT);
	let alpha    = 200;
	let sp       = 0;
	
	ObjEffect_SetTexture(eff,img2);
	ObjEffect_SetRenderState(eff,ALPHA);
	ObjEffect_SetPrimitiveType(eff,PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetLayer(eff,2);
	ObjEffect_CreateVertex(eff,4);
	ObjEffect_SetVertexXY(eff,0,10/-2,28/-2);
	ObjEffect_SetVertexXY(eff,1,10/-2,28/2);
	ObjEffect_SetVertexXY(eff,2,10/2,28/-2);
	ObjEffect_SetVertexXY(eff,3,10/2,28/2);
	ObjEffect_SetVertexUV(eff,0,12,2);
	ObjEffect_SetVertexUV(eff,1,12,30);
	ObjEffect_SetVertexUV(eff,2,21,2);
	ObjEffect_SetVertexUV(eff,3,21,30);
	ObjEffect_SetVertexColor(eff,0,alpha,r,g,b);
	ObjEffect_SetVertexColor(eff,1,alpha,r,g,b);
	ObjEffect_SetVertexColor(eff,2,alpha,r,g,b);
	ObjEffect_SetVertexColor(eff,3,alpha,r,g,b);
	    
	Obj_SetPosition(obj,x,y);
	Obj_SetSpeed(obj,speed);
	Obj_SetAngle(obj,angle);
	Obj_SetAlpha(obj,0);
	ObjShot_SetBombResist(obj,true);
	ObjShot_SetGraphic(obj,1);
	ObjShot_SetDamage(obj,damage);
	ObjShot_SetPenetration(obj,1);
	ObjShot_ToItem(obj,false);
	
	loop{
		Obj_SetPosition(eff,Obj_GetX(obj),Obj_GetY(obj));
		ObjEffect_SetAngle(eff,0,0,90+Obj_GetAngle(obj));
		if(Obj_BeDeleted(obj)==true){
			Obj_Delete(eff);
			break;
		}
		
		if(OnMissed==true){
			Obj_Delete(obj);
			Obj_Delete(eff);
			break;
		}
		
		yield;
	}
}

task PlayerShot03(x,y,speed,angle,r,g,b,damage){
	let eff      = Obj_Create(OBJ_EFFECT);
	let obj      = Obj_Create(OBJ_SHOT);
	let alpha    = 200;
	let sp       = 0;
	
	ObjEffect_SetTexture(eff,img2);
	ObjEffect_SetRenderState(eff,ALPHA);
	ObjEffect_SetPrimitiveType(eff,PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetLayer(eff,2);
	ObjEffect_CreateVertex(eff,4);
	ObjEffect_SetVertexXY(eff,0,24/-2,36/-2);
	ObjEffect_SetVertexXY(eff,1,24/-2,36/2);
	ObjEffect_SetVertexXY(eff,2,24/2,36/-2);
	ObjEffect_SetVertexXY(eff,3,24/2,36/2);
	ObjEffect_SetVertexUV(eff,0,162,2);
	ObjEffect_SetVertexUV(eff,1,162,38);
	ObjEffect_SetVertexUV(eff,2,185,2);
	ObjEffect_SetVertexUV(eff,3,185,38);
	ObjEffect_SetVertexColor(eff,0,alpha,r,g,b);
	ObjEffect_SetVertexColor(eff,1,alpha,r,g,b);
	ObjEffect_SetVertexColor(eff,2,alpha,r,g,b);
	ObjEffect_SetVertexColor(eff,3,alpha,r,g,b);
	    
	Obj_SetPosition(obj,x,y);
	Obj_SetSpeed(obj,speed);
	Obj_SetAngle(obj,angle);
	Obj_SetAlpha(obj,0);
	ObjShot_SetBombResist(obj,true);
	ObjShot_SetGraphic(obj,1);
	ObjShot_SetDamage(obj,damage);
	ObjShot_SetPenetration(obj,1);
	ObjShot_ToItem(obj,false);
	
	loop{
		Obj_SetPosition(eff,Obj_GetX(obj),Obj_GetY(obj));
		ObjEffect_SetAngle(eff,0,0,90+Obj_GetAngle(obj));
		if(Obj_BeDeleted(obj)==true){
			Obj_Delete(eff);
			break;
		}
		
		if(OnMissed==true){
			Obj_Delete(obj);
			Obj_Delete(eff);
			break;
		}
		
		yield;
	}
}

task PlayerShot04(x,y,speed,angle,r,g,b){
	let eff      = Obj_Create(OBJ_EFFECT);
	let obj      = Obj_Create(OBJ_SHOT);
	let alpha    = 255;
	let sp       = 0;
	
	ObjEffect_SetTexture(eff,img2);
	ObjEffect_SetRenderState(eff,ALPHA);
	ObjEffect_SetPrimitiveType(eff,PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetScale(eff,2,2);
	ObjEffect_SetLayer(eff,2);
	ObjEffect_CreateVertex(eff,4);
	ObjEffect_SetVertexXY(eff,0,24/-2,36/-2);
	ObjEffect_SetVertexXY(eff,1,24/-2,36/2);
	ObjEffect_SetVertexXY(eff,2,24/2,36/-2);
	ObjEffect_SetVertexXY(eff,3,24/2,36/2);
	ObjEffect_SetVertexUV(eff,0,162,2);
	ObjEffect_SetVertexUV(eff,1,162,38);
	ObjEffect_SetVertexUV(eff,2,185,2);
	ObjEffect_SetVertexUV(eff,3,185,38);
	ObjEffect_SetVertexColor(eff,0,alpha,r,g,b);
	ObjEffect_SetVertexColor(eff,1,alpha,r,g,b);
	ObjEffect_SetVertexColor(eff,2,alpha,r,g,b);
	ObjEffect_SetVertexColor(eff,3,alpha,r,g,b);
	    
	Obj_SetPosition(obj,x,y);
	Obj_SetSpeed(obj,speed);
	Obj_SetAngle(obj,angle);
	Obj_SetAlpha(obj,0);
	ObjShot_SetBombResist(obj,true);
	ObjShot_SetGraphic(obj,1);
	ObjShot_SetDamage(obj,0);
	ObjShot_SetPenetration(obj,1);
	ObjShot_ToItem(obj,false);
	
	loop{
		Obj_SetPosition(eff,Obj_GetX(obj),Obj_GetY(obj));
		ObjEffect_SetAngle(eff,0,0,90+Obj_GetAngle(obj));
		if(Obj_BeDeleted(obj)==true){
			Obj_Delete(eff);
			break;
		}
		
		if(OnMissed==true){
			Obj_Delete(obj);
			Obj_Delete(eff);
			break;
		}
		
		yield;
	}
}