Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu[Player]
- #ScriptVersion[3]
- #ID["Arisa"]
- #Title["Magic Team"]
- #Text["Press 1 - EX Speed [r] Press 2 - EX Atack"]
- #Image["./Default_Player_Rumia_Select.png"]
- #ReplayName["Arisa"]
- let objPlayer = GetPlayerObjectID();
- let current = GetCurrentScriptDirectory();
- @Initialize
- {
- let path = current ~ "ShotData.txt";
- //LoadPlayerShotData(path); //???????
- ObjPlayer_AddIntersectionCircleA1(objPlayer, 0, 0, 1, 20); //???????
- TImage();
- TShot();
- //TMagicCircle();
- }
- @MainLoop
- {
- yield;
- }
- @Finalize
- {
- }
- @Event
- {
- alternative(GetEventType())
- case(EV_REQUEST_SPELL)
- {
- //????????
- let spell = GetPlayerSpell();//??????
- if(spell >= 1)
- {
- SetScriptResult(true);//???????
- SetPlayerSpell(spell-1);//?????1???
- //TSpell();//????????
- }
- else
- {
- SetScriptResult(false);//???????
- }
- }
- case(EV_HIT)
- {
- //??
- //TExplosion();
- }
- case(EV_PLAYER_REBIRTH)
- {
- //??
- SetPlayerSpell(3);
- SetPlayerInvincibilityFrame(180);
- }
- case(EV_GET_ITEM)
- {
- //????????
- let itemType = GetEventArgument(0);
- alternative(itemType)
- case(ITEM_SPELL)
- {
- //WriteLog("ITEM_SPELL");
- }
- case(ITEM_SPELL_S)
- {
- //WriteLog("ITEM_SPELL_S");
- }
- case(ITEM_POWER)
- {
- //WriteLog("ITEM_POWER");
- }
- case(ITEM_POWER_S)
- {
- //WriteLog("ITEM_POWER_S");
- }
- }
- }
- task TImage
- {
- let path = GetCurrentScriptDirectory() ~ "51905.png";
- let player = ObjPrim_Create(OBJ_SPRITE_2D);
- ObjPrim_SetTexture(objPlayer, path);
- Obj_SetRenderPriority(objPlayer, 0.65);
- loop
- {
- //if(GetVirtualKeyState(VK_LEFT) == KEY_PUSH || GetVirtualKeyState(VK_LEFT) == KEY_HOLD)
- //{
- // ObjSprite2D_SetSourceRect(objPlayer, 508, 69, 535, 110);
- //}
- //else if(GetVirtualKeyState(VK_RIGHT) == KEY_PUSH || GetVirtualKeyState(VK_RIGHT) == KEY_HOLD)
- //{
- // ObjSprite2D_SetSourceRect(objPlayer, 506, 117, 532, 157);
- //}
- //else
- //{
- ObjSprite2D_SetSourceRect(objPlayer, 284, 117, 307, 157);
- //}
- //ObjSprite2D_SetDestRect(objPlayer,GetPlayerX-20,GetPlayerY-17,GetPlayerX+20,GetPlayerY+17);
- ObjSprite2D_SetDestCenter(objPlayer);
- yield;
- }
- }
- task TShot
- {
- yield;
- }
- /*task TMagicCircle
- {
- //????????
- //????:??:?????????
- let countVertex = 64;
- let listRadius = [];
- loop(countVertex)
- {
- listRadius = listRadius ~ [0];
- }
- let path = current ~ "Default_Player_MagicCircle.png";
- let obj = ObjPrim_Create(OBJ_PRIMITIVE_2D);
- ObjPrim_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
- ObjPrim_SetVertexCount(obj, countVertex);
- ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
- Obj_SetRenderPriority(obj, 0.60);
- ObjPrim_SetTexture(obj, path);
- ascent(iVert in 0..countVertex / 2)
- {
- let left = iVert * 128;
- let indexVert = iVert * 2;
- ObjPrim_SetVertexUVT(obj, indexVert + 0, left, 0);
- ObjPrim_SetVertexUVT(obj, indexVert + 1, left, 64);
- }
- let cx = 0;
- let cy = 0;
- let maxRadius = 128;
- let alpha = 0;
- let frame = 0;
- let angleRender = 0;
- let frameInvOld = 0;
- while(true)
- {
- let frameInv = GetPlayerInvincibilityFrame();
- if(frameInv <= 0)
- {
- Obj_SetVisible(obj, false);
- frameInvOld = 0;
- }
- else
- {
- if(frameInvOld == 0)
- {
- //???
- ascent(iVert in 0..countVertex)
- {
- listRadius[iVert] = 0;
- }
- alpha = 0;
- frame = 0;
- }
- frameInvOld = frameInv;
- let px = GetPlayerX();
- let py = GetPlayerY();
- alpha += 1 / 120;
- alpha = min(alpha, 1);
- angleRender += 360 / countVertex / 2;
- Obj_SetVisible(obj, true);
- frameInv = min(100, frameInv);
- let rRate = frameInv / 100;
- ascent(iVert in 0..countVertex / 2)
- {
- let indexVert = iVert * 2;
- let angle = 360 / (countVertex / 2 - 1) * iVert;
- let vx1 = listRadius[indexVert] * cos(angle);
- let vy1 = listRadius[indexVert] * sin(angle);
- ObjPrim_SetVertexPosition(obj, indexVert + 0, vx1, vy1, 0);
- let vx2 = listRadius[indexVert+1] * cos(angle);
- let vy2 = listRadius[indexVert+1] * sin(angle);
- ObjPrim_SetVertexPosition(obj, indexVert + 1, vx2, vy2, 0);
- //?????
- if(frame >= 0)
- {//??
- let dr = (maxRadius * rRate - listRadius[indexVert]) / 8;
- listRadius[indexVert] = listRadius[indexVert] + dr;
- }
- if(frame > 10)
- {//??
- let rRateIn = rRate - 0.12;
- if(rRateIn < 0){rRateIn=0;}
- let dr= (maxRadius * rRateIn - listRadius[indexVert + 1]) / 16;
- listRadius[indexVert + 1] = listRadius[indexVert + 1] + dr;
- }
- }
- ObjRender_SetColor(obj, 192 * alpha, 192 * alpha, 255 * alpha);
- ObjRender_SetPosition(obj, px, py, 0);
- ObjRender_SetAngleZ(obj, angleRender);
- frame++;
- }
- yield;
- }
- } */
- /*task TExplosion
- {
- let path = GetCurrentScriptDirectory() ~ "Default_Player_Rumia.png";
- let obj = ObjPrim_Create(OBJ_SPRITE_2D);
- ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
- Obj_SetRenderPriority(obj, 0.60);
- ObjPrim_SetTexture(obj, path);
- ObjSprite2D_SetSourceRect(obj, 192, 0, 255, 63);
- ObjSprite2D_SetDestRect(obj, -32, -32, 32, 32);
- let alpha = 255;
- let scale = 0;
- loop(30)
- {
- scale += 0.2;
- alpha -= 8;
- ObjRender_SetColor(obj, alpha, alpha, alpha);
- ObjRender_SetPosition(obj, GetPlayerX, GetPlayerY, 0);
- ObjRender_SetScaleXYZ(obj, scale, scale, 1);
- yield;
- }
- Obj_Delete(obj);
- }
- /*task TSpell
- {
- let current = GetCurrentScriptDirectory();
- let imgEffect = current ~ "Default_Player_RumiaSpell.png";
- SetPlayerInvincibilityFrame(300);//???????
- let bSlowMove = GetVirtualKeyState(VK_SLOWMOVE)==KEY_PUSH || GetVirtualKeyState(VK_SLOWMOVE)==KEY_HOLD;
- let objManage = GetSpellManageObject();
- let enemyX = 0;
- let enemyY = 0;
- TShake();
- effect(0);
- effect(1);
- loop(220)
- {
- enemyX = GetPlayerX();
- enemyY = GetPlayerY();
- let pos = GetEnemyIntersectionPosition(enemyX, enemyY, 1);
- if(length(pos) > 0)
- {
- enemyX = pos[0][0];
- enemyY = pos[0][1];
- }
- yield;
- }
- Obj_Delete(objManage);
- task effect(num)
- {
- //?????????
- let tv=0;
- let angle=0;
- let alpha=0;
- task alphaState
- { //?????????????
- alpha=0;
- loop(256/3){alpha+=3; yield;}
- loop(90){yield;}
- while(!Obj_IsDeleted(objManage)){alpha-=8; yield;}
- }
- task lineEffect
- {
- loop(120){concentrationLine();loop(1){yield;}}
- }
- alphaState;
- if(bSlowMove){lineEffect;}
- let obj = ObjSpell_Create();//????????????
- ObjPrim_SetVertexCount(obj, 10);
- ObjPrim_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
- ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
- Obj_SetRenderPriority(obj, 0.60);
- ObjPrim_SetTexture(obj, imgEffect);
- ObjSpell_Regist(obj);
- ascent(i in 0..5)
- {
- let angle = -45+i*90;
- let x;
- let y;
- if(bSlowMove)
- {
- //???????????
- x = 192*cos(angle);
- y = 192*sin(angle);
- }
- else
- {
- //?????????
- x = 512*cos(angle);
- y = 512*sin(angle);
- }
- ObjPrim_SetVertexPosition(obj, i*2, x, y, 0);
- ObjPrim_SetVertexPosition(obj, i*2+1, 0, 0, 0);
- ObjPrim_SetVertexColor(obj, i*2, 0, 0, 0);
- }
- while(!Obj_IsDeleted(objManage))
- {
- tv-=1;
- if(num == 0){angle+=1;}
- else if(num == 1){angle-=1;}
- ObjRender_SetAngleZ(obj, angle);//???????
- if(bSlowMove)
- { //?????
- ObjRender_SetPosition(obj, enemyX, enemyY, 0);
- ObjSpell_SetIntersectionCircle(obj, enemyX, enemyY, 81);//????????
- ObjSpell_SetDamage(obj, 5);
- }
- else
- { //?????
- ObjRender_SetPosition(obj, GetPlayerX, GetPlayerY, 0);//?????
- ObjSpell_SetIntersectionCircle(obj, GetPlayerX, GetPlayerY, 256);//????????
- ObjSpell_SetDamage(obj, 2);
- }
- ascent(i in 0..5)
- {
- ObjPrim_SetVertexUVT(obj, i*2, 16*i, tv);//???????????
- ObjPrim_SetVertexUVT(obj, i*2+1 ,32, 64+tv);
- ObjPrim_SetVertexColor(obj, i*2+1, alpha, alpha, alpha);
- }
- yield;
- }
- Obj_Delete(obj);
- }
- task concentrationLine()
- { //?????????????
- let angle = rand(0, 360);
- let alpha=0;
- let scale=3;
- let obj = ObjPrim_Create(OBJ_PRIMITIVE_2D);//?????????
- ObjPrim_SetVertexCount(obj, 3);//???3????
- ObjPrim_SetPrimitiveType(obj, PRIMITIVE_TRIANGLELIST);//????????????
- ObjRender_SetBlendType(obj, BLEND_ADD_RGB);//???????
- Obj_SetRenderPriority(obj, 0.60);
- ObjPrim_SetTexture(obj, imgEffect);//????????
- ObjRender_SetAngleZ(obj, angle);//???????
- //???????
- ObjPrim_SetVertexPosition(obj, 0, 0, 10, 0);
- ObjPrim_SetVertexPosition(obj, 1, -10, 50, 0);
- ObjPrim_SetVertexPosition(obj, 2, 10, 50, 0);
- //???UV????
- ObjPrim_SetVertexUVT(obj, 0, 10, 10);
- ObjPrim_SetVertexUVT(obj, 1, 0, 50);
- ObjPrim_SetVertexUVT(obj, 2, 20, 50);
- //???
- ObjPrim_SetVertexColor(obj, 0, alpha, 0, alpha);
- ObjPrim_SetVertexColor(obj, 1, 0, 0, 0);
- ObjPrim_SetVertexColor(obj, 2, 0, 0, 0);
- loop(60)
- {
- scale-=3/60;
- alpha+=5;
- ObjPrim_SetVertexColor(obj, 0, alpha, 0, alpha);
- ObjRender_SetScaleXYZ(obj, scale, scale*3, 1);
- ObjRender_SetPosition(obj, enemyX, enemyY, 0);
- yield;
- }
- Obj_Delete(obj);
- }
- task TShake()
- {
- while(!Obj_IsDeleted(objManage))
- {
- Set2DCameraFocusX(GetStgFrameWidth / 2 + rand(-8, 8));
- Set2DCameraFocusY(GetStgFrameHeight / 2 + rand(-8, 8));
- yield;
- }
- Reset2DCamera();
- }
- } */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement