Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu[Player]
- #ScriptVersion[3]
- #ID["A"]
- #Title["Team A"]
- #Text["Player"]
- #ReplayName["Team A"]
- #include "./player_resource.txt"
- let animFrame = 0;
- let animFrame2 = 0;
- let count = -1;
- let BasePower = 4;
- let alive = true;
- let switchAlive = true;
- let IsPlayerFocused = false;
- let ShotData = GetCSD ~ "shotdata.txt";
- let PlayerSprite = GetMD ~ "script/img/sprite/playerA.png";
- let HitboxSprite = GetMD ~ "script/img/sprite/hitbox.png";
- let CrystalSprite = GetMD ~ "script/img/sprite/optionA.png";
- let FireSprite = GetMD ~ "script/img/sprite/fire.png";
- let PlayerShoot = GetMD ~ "script/sfx/player_se/se_plst00.wav";
- let PlayerDead = GetMD ~ "script/sfx/player_se/se_pldead00.wav";
- let PlayerGraze = GetMD ~ "script/sfx/player_se/se_graze.wav";
- let PlayerSwitch = GetMD ~ "script/sfx/player_se/se_poss00.wav";
- @Initialize {
- LoadPlayerShotData(ShotData);
- SetPlayerSpeed(3.7 + 0.3,2 - 0.3); //3.7, 2
- ObjPlayer_AddIntersectionCircleA1(PlayerID, 0, 0, 1.5, 20);
- SetPlayerClip(0+13, 0+15, 384-13, 448-15);
- SetPlayerDownStateFrame(120);
- SetPlayerRebirthFrame(15); //counter bomb
- SetPlayerAutoItemCollectLine(120);
- RenderPlayer;
- RenderHitBox;
- RenderBasicShot;
- }
- @Event {
- alternative(GetEventType)
- case(EV_REQUEST_SPELL) {
- if(GetPlayerSpell > 0){
- SetScriptResult(true);
- }
- else {
- SetScriptResult(false);
- }
- }
- case(EV_GRAZE){
- SE_Play(PlayerGraze, 100);
- loop(GrazePartNum){
- Particle(GetPlayerX, GetPlayerY, rand(0,360), 0.8, 2, 1);
- }
- }
- case(EV_PLAYER_SHOOTDOWN){
- switchAlive = false;
- ObjRender_SetAlpha(PlayerObj, 0);
- ObjRender_SetAlpha(hitbox, 0);
- ObjRender_SetAlpha(hitbox2, 0);
- SetForbidPlayerShot(true);
- SetForbidPlayerSpell(true);
- }
- case(EV_HIT){
- loop(32){
- TexEffect(GetPlayerX+rand(-50,50), GetPlayerY+rand(-50,50), rand(0,360), 255, 5, 1);
- TexEffect(GetPlayerX+rand(-50,50), GetPlayerY+rand(-50,50), rand(0,360), 255, rand(3,5), 2);
- TexEffect(GetPlayerX+rand(-50,50), GetPlayerY+rand(-50,50), rand(0,360), 255, 3, 1);
- }
- alive = false;
- SE_Play(PlayerDead, 60);
- SetForbidPlayerShot(true);
- }
- case(EV_PLAYER_REBIRTH){
- alive = true;
- switchAlive = true;
- SetPlayerInvincibilityFrame(180);
- Blink(PlayerObj);
- loop(1){yield;}
- Revive(PlayerObj);
- ObjRender_SetAlpha(PlayerObj, 255);
- }
- }
- @MainLoop {
- if(GetVirtualKeyState(ShiftKey) == KEY_PUSH || GetVirtualKeyState(ShiftKey) == KEY_HOLD && alive ){
- IsPlayerFocused = true;
- PlayerSprite = GetMD ~ "script/img/sprite/player2.png";
- }
- if(GetVirtualKeyState(ShiftKey) == KEY_PUSH && alive){
- loop(16){
- SE_Play(PlayerSwitch, 75);
- TexEffect(GetPlayerX, GetPlayerY, rand(0,360), 80, 1.5, 2);
- }
- }
- if(GetVirtualKeyState(ShiftKey) == KEY_PULL && alive){
- IsPlayerFocused = false;
- PlayerSprite = GetMD ~ "script/img/sprite/player1.png";
- loop(32){
- SE_Play(PlayerSwitch, 75);
- TexEffect(GetPlayerX, GetPlayerY, rand(0,360), 100, 1.4, 1);
- }
- }
- if(switchAlive == false){
- IsPlayerFocused = false;
- PlayerSprite = GetCSD ~ "player1.png";
- }
- yield;
- }
- task RenderBasicShot{
- let frame = 0;
- let ShotPerFrame = 3;
- let Speed = 20;
- let Damage = 3;
- loop{
- frame+=1;
- if(frame > ShotPerFrame){
- frame = ShotPerFrame;
- }
- if(GetVirtualKeyState(VK_SHOT) == KEY_PUSH || GetVirtualKeyState(VK_SHOT) == KEY_HOLD){
- if(frame >= ShotPerFrame && alive && IsPermitPlayerShot){
- //ObjSound_Play(shotSound);
- if(IsPlayerFocused == true){
- if(BasePower == 1){
- SE_Play(PlayerShoot, 40);
- CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270-1, Damage,1, 1);
- CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270+1, Damage,1, 1);
- //total: 6 damage
- //BasicShot(GetPlayerX, GetPlayerY+45-50, Speed, 270+1, Damage,1, 1);
- }
- if(BasePower == 2){
- SE_Play(PlayerShoot, 40);
- CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270-1, Damage,1, 1);
- CreatePlayerShotA1(GetPlayerX, GetPlayerY+45, Speed, 270, Damage/3,1, 1);
- CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270+1, Damage,1, 1);
- //total: 7 damage
- }
- if(BasePower == 3){
- SE_Play(PlayerShoot, 40);
- CreatePlayerShotA1(GetPlayerX-20, GetPlayerY+45, Speed, 270+2, Damage/3,1, 1);
- CreatePlayerShotA1(GetPlayerX-7.5, GetPlayerY+45, Speed, 270+1, Damage,1, 1);
- CreatePlayerShotA1(GetPlayerX+7.5, GetPlayerY+45, Speed, 270-1, Damage,1, 1);
- CreatePlayerShotA1(GetPlayerX+20, GetPlayerY+45, Speed, 270-2, Damage/3,1, 1);
- //total: 8 damage
- }
- if(BasePower == 4){
- SE_Play(PlayerShoot, 40);
- CreatePlayerShotA1(GetPlayerX-20, GetPlayerY+45, Speed, 270+2, Damage/2,1, 1);
- CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270+1, Damage/2,1, 1);
- CreatePlayerShotA1(GetPlayerX, GetPlayerY+45, Speed, 270, Damage,1, 1);
- CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270-1, Damage/2,1, 1);
- CreatePlayerShotA1(GetPlayerX+20, GetPlayerY+45, Speed, 270-2, Damage/2, 1,1);
- //total: 9 damage
- }
- }
- else {
- if(BasePower == 1){
- SE_Play(PlayerShoot, 40);
- CreatePlayerShotA1(GetPlayerX-5, GetPlayerY+45, Speed, 270-1, Damage,1, 2);
- CreatePlayerShotA1(GetPlayerX+5, GetPlayerY+45, Speed, 270+1, Damage,1, 2);
- }
- if(BasePower == 2){
- SE_Play(PlayerShoot, 40);
- CreatePlayerShotA1(GetPlayerX-5, GetPlayerY+45, Speed, 270-1, Damage,1, 2);
- CreatePlayerShotA1(GetPlayerX, GetPlayerY+45, Speed, 270, Damage/3,1, 2);
- CreatePlayerShotA1(GetPlayerX+5, GetPlayerY+45, Speed, 270+1, Damage,1, 2);
- }
- if(BasePower == 3){
- SE_Play(PlayerShoot, 40);
- CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270-2, Damage/3,1, 2);
- CreatePlayerShotA1(GetPlayerX-2.5, GetPlayerY+45, Speed, 270-0.75, Damage,1, 2);
- CreatePlayerShotA1(GetPlayerX+2.5, GetPlayerY+45, Speed, 270+0.75, Damage,1, 2);
- CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270+2, Damage/3,1, 2);
- }
- if(BasePower == 4){
- SE_Play(PlayerShoot, 40);
- CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270-2, Damage/2,1, 2);
- CreatePlayerShotA1(GetPlayerX-5, GetPlayerY+45, Speed, 270-1, Damage/2,1, 2);
- CreatePlayerShotA1(GetPlayerX, GetPlayerY+45, Speed, 270, Damage,1, 2);
- CreatePlayerShotA1(GetPlayerX+5, GetPlayerY+45, Speed, 270+1, Damage/2,1, 2);
- CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270+2, Damage/2,1, 2);
- }
- }
- frame = 0;
- }
- }
- yield;
- }
- }
- task RenderPlayer {
- ObjPrim_SetTexture(PlayerObj, PlayerSprite);
- Obj_SetRenderPriorityI(PlayerObj, 43);
- ObjRender_SetBlendType(PlayerObj, BLEND_ALPHA);
- ObjRender_SetAngleXYZ(PlayerObj, 0, 0, 0);
- ObjRender_SetScaleXYZ(PlayerObj, 1, 1, 0);
- ObjRender_SetAlpha(PlayerObj, 255);
- ObjSprite2D_SetSourceRect(PlayerObj, 0,0, 32, 48);
- ObjSprite2D_SetDestCenter(PlayerObj);
- let left = 32; let top = 48; let right = 32; let bottom = 48;
- while(!Obj_IsDeleted(PlayerObj)){
- ObjPrim_SetTexture(PlayerObj, PlayerSprite);
- ObjRender_SetPosition(PlayerObj, GetPlayerX, GetPlayerY, 0);
- if(GetVirtualKeyState(VK_LEFT) == KEY_PUSH || GetVirtualKeyState(VK_LEFT) == KEY_HOLD){
- ObjRender_SetAngleY(PlayerObj, 0);
- if(animFrame2 < 15) { ObjSprite2D_SetSourceRect(PlayerObj,left*0, top*1, right*1, bottom*2); }
- if(animFrame2 >= 15 && animFrame2 < 30) { ObjSprite2D_SetSourceRect(PlayerObj,left*1, top*1, right*2, bottom*2); }
- if(animFrame2 >= 30 && animFrame2 < 45) { ObjSprite2D_SetSourceRect(PlayerObj,left*2, top*1, right*3, bottom*2); }
- if(animFrame2 >= 45 && animFrame2 < 60) { ObjSprite2D_SetSourceRect(PlayerObj,left*3, top*1, right*4, bottom*2); }
- if(animFrame2 >= 60 && animFrame2 < 75) { ObjSprite2D_SetSourceRect(PlayerObj,left*4, top*1, right*5, bottom*2); }
- if(animFrame2 >= 75 && animFrame2 < 90) { ObjSprite2D_SetSourceRect(PlayerObj,left*5, top*1, right*6, bottom*2); }
- if(animFrame2 >= 90 && animFrame2 < 105) { ObjSprite2D_SetSourceRect(PlayerObj,left*6, top*1, right*7, bottom*2); }
- if(animFrame2 >= 105 && animFrame2 < 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*1, right*8, bottom*2); }
- if(animFrame2 >= 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*1, right*8, bottom*2); }
- ObjRender_SetAngleXYZ(PlayerObj, 0, 0, 0);
- }
- else if(GetVirtualKeyState(VK_RIGHT) == KEY_PUSH || GetVirtualKeyState(VK_RIGHT) == KEY_HOLD){
- if(animFrame2 < 15) { ObjSprite2D_SetSourceRect(PlayerObj,left*0, top*2, right*1, bottom*3); }
- if(animFrame2 >= 15 && animFrame2 < 30) { ObjSprite2D_SetSourceRect(PlayerObj,left*1, top*2, right*2, bottom*3); }
- if(animFrame2 >= 30 && animFrame2 < 45) { ObjSprite2D_SetSourceRect(PlayerObj,left*2, top*2, right*3, bottom*3); }
- if(animFrame2 >= 45 && animFrame2 < 60) { ObjSprite2D_SetSourceRect(PlayerObj,left*3, top*2, right*4, bottom*3); }
- if(animFrame2 >= 60 && animFrame2 < 75) { ObjSprite2D_SetSourceRect(PlayerObj,left*4, top*2, right*5, bottom*3); }
- if(animFrame2 >= 75 && animFrame2 < 90) { ObjSprite2D_SetSourceRect(PlayerObj,left*5, top*2, right*6, bottom*3); }
- if(animFrame2 >= 90 && animFrame2 < 105) { ObjSprite2D_SetSourceRect(PlayerObj,left*6, top*2, right*7, bottom*3); }
- if(animFrame2 >= 105 && animFrame2 < 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*2, right*8, bottom*3); }
- if(animFrame2 >= 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*2, right*8, bottom*3); }
- ObjRender_SetAngleXYZ(PlayerObj, 0, 0, 0);
- }
- else{
- if(animFrame < 15) { ObjSprite2D_SetSourceRect(PlayerObj,left*0, top*0, right*1, bottom*1); }
- if(animFrame >= 15 && animFrame < 30) { ObjSprite2D_SetSourceRect(PlayerObj,left*1, top*0, right*2, bottom*1); }
- if(animFrame >= 30 && animFrame < 45) { ObjSprite2D_SetSourceRect(PlayerObj,left*2, top*0, right*3, bottom*1); }
- if(animFrame >= 45 && animFrame < 60) { ObjSprite2D_SetSourceRect(PlayerObj,left*3, top*0, right*4, bottom*1); }
- if(animFrame >= 60 && animFrame < 75) { ObjSprite2D_SetSourceRect(PlayerObj,left*4, top*0, right*5, bottom*1); }
- if(animFrame >= 75 && animFrame < 90) { ObjSprite2D_SetSourceRect(PlayerObj,left*5, top*0, right*6, bottom*1); }
- if(animFrame >= 90 && animFrame < 105) { ObjSprite2D_SetSourceRect(PlayerObj,left*6, top*0, right*7, bottom*1); }
- if(animFrame >= 105 && animFrame < 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*0, right*8, bottom*1); }
- if(animFrame >= 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*0, right*8, bottom*1); }
- ObjRender_SetAngleXYZ(PlayerObj, 0, 0, 0);
- }
- if(GetVirtualKeyState(VK_RIGHT) == KEY_PULL){animFrame2 = 30;}
- if(GetVirtualKeyState(VK_LEFT) == KEY_PULL){animFrame2 = 30;}
- animFrame+=3.25; // count animFrame. (++ is +1)
- animFrame2+=3.25; // count animFrame2.
- if(animFrame > 120) { animFrame = 0; } // reset animFrame when it is higher than 60.
- if(animFrame2 > 120) { animFrame2 = 45; } // reset animFrame when it is higher than 60.
- yield;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement