Advertisement
Vampiric

Dnh

Jan 1st, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.17 KB | None | 0 0
  1. #TouhouDanmakufu[Player]
  2. #ScriptVersion[3]
  3. #ID["Arisa"]
  4. #Title["Magic Team"]
  5. #Text["Press 1 - EX Speed [r] Press 2 - EX Atack"]
  6. #Image["./Default_Player_Rumia_Select.png"]
  7. #ReplayName["Arisa"]
  8.  
  9. let objPlayer = GetPlayerObjectID();
  10.  
  11. let current = GetCurrentScriptDirectory();
  12. @Initialize
  13. {
  14. let path = current ~ "ShotData.txt";
  15. //LoadPlayerShotData(path); //???????
  16.  
  17. ObjPlayer_AddIntersectionCircleA1(objPlayer, 0, 0, 1, 20); //???????
  18.  
  19. TImage();
  20. TShot();
  21. //TMagicCircle();
  22. }
  23.  
  24. @MainLoop
  25. {
  26. yield;
  27. }
  28.  
  29. @Finalize
  30. {
  31. }
  32.  
  33. @Event
  34. {
  35. alternative(GetEventType())
  36. case(EV_REQUEST_SPELL)
  37. {
  38. //????????
  39. let spell = GetPlayerSpell();//??????
  40. if(spell >= 1)
  41. {
  42. SetScriptResult(true);//???????
  43. SetPlayerSpell(spell-1);//?????1???
  44. //TSpell();//????????
  45. }
  46. else
  47. {
  48. SetScriptResult(false);//???????
  49. }
  50. }
  51. case(EV_HIT)
  52. {
  53. //??
  54. //TExplosion();
  55. }
  56. case(EV_PLAYER_REBIRTH)
  57. {
  58. //??
  59. SetPlayerSpell(3);
  60. SetPlayerInvincibilityFrame(180);
  61. }
  62. case(EV_GET_ITEM)
  63. {
  64. //????????
  65. let itemType = GetEventArgument(0);
  66. alternative(itemType)
  67. case(ITEM_SPELL)
  68. {
  69. //WriteLog("ITEM_SPELL");
  70. }
  71. case(ITEM_SPELL_S)
  72. {
  73. //WriteLog("ITEM_SPELL_S");
  74. }
  75. case(ITEM_POWER)
  76. {
  77. //WriteLog("ITEM_POWER");
  78. }
  79. case(ITEM_POWER_S)
  80. {
  81. //WriteLog("ITEM_POWER_S");
  82. }
  83. }
  84.  
  85. }
  86.  
  87. task TImage
  88. {
  89. let path = GetCurrentScriptDirectory() ~ "51905.png";
  90. let player = ObjPrim_Create(OBJ_SPRITE_2D);
  91. ObjPrim_SetTexture(objPlayer, path);
  92. Obj_SetRenderPriority(objPlayer, 0.65);
  93.  
  94.  
  95. loop
  96. {
  97. //if(GetVirtualKeyState(VK_LEFT) == KEY_PUSH || GetVirtualKeyState(VK_LEFT) == KEY_HOLD)
  98. //{
  99. // ObjSprite2D_SetSourceRect(objPlayer, 508, 69, 535, 110);
  100. //}
  101. //else if(GetVirtualKeyState(VK_RIGHT) == KEY_PUSH || GetVirtualKeyState(VK_RIGHT) == KEY_HOLD)
  102. //{
  103. // ObjSprite2D_SetSourceRect(objPlayer, 506, 117, 532, 157);
  104. //}
  105. //else
  106. //{
  107. ObjSprite2D_SetSourceRect(objPlayer, 284, 117, 307, 157);
  108. //}
  109. //ObjSprite2D_SetDestRect(objPlayer,GetPlayerX-20,GetPlayerY-17,GetPlayerX+20,GetPlayerY+17);
  110. ObjSprite2D_SetDestCenter(objPlayer);
  111. yield;
  112.  
  113. }
  114.  
  115. }
  116.  
  117. task TShot
  118. {
  119. yield;
  120. }
  121.  
  122.  
  123.  
  124. /*task TMagicCircle
  125. {
  126. //????????
  127. //????:??:?????????
  128. let countVertex = 64;
  129. let listRadius = [];
  130. loop(countVertex)
  131. {
  132. listRadius = listRadius ~ [0];
  133. }
  134.  
  135. let path = current ~ "Default_Player_MagicCircle.png";
  136. let obj = ObjPrim_Create(OBJ_PRIMITIVE_2D);
  137. ObjPrim_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
  138. ObjPrim_SetVertexCount(obj, countVertex);
  139. ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
  140. Obj_SetRenderPriority(obj, 0.60);
  141. ObjPrim_SetTexture(obj, path);
  142. ascent(iVert in 0..countVertex / 2)
  143. {
  144. let left = iVert * 128;
  145. let indexVert = iVert * 2;
  146. ObjPrim_SetVertexUVT(obj, indexVert + 0, left, 0);
  147. ObjPrim_SetVertexUVT(obj, indexVert + 1, left, 64);
  148. }
  149.  
  150. let cx = 0;
  151. let cy = 0;
  152. let maxRadius = 128;
  153. let alpha = 0;
  154. let frame = 0;
  155. let angleRender = 0;
  156. let frameInvOld = 0;
  157.  
  158. while(true)
  159. {
  160. let frameInv = GetPlayerInvincibilityFrame();
  161.  
  162. if(frameInv <= 0)
  163. {
  164. Obj_SetVisible(obj, false);
  165. frameInvOld = 0;
  166. }
  167. else
  168. {
  169. if(frameInvOld == 0)
  170. {
  171. //???
  172. ascent(iVert in 0..countVertex)
  173. {
  174. listRadius[iVert] = 0;
  175. }
  176. alpha = 0;
  177. frame = 0;
  178. }
  179. frameInvOld = frameInv;
  180.  
  181. let px = GetPlayerX();
  182. let py = GetPlayerY();
  183.  
  184. alpha += 1 / 120;
  185. alpha = min(alpha, 1);
  186. angleRender += 360 / countVertex / 2;
  187. Obj_SetVisible(obj, true);
  188.  
  189. frameInv = min(100, frameInv);
  190. let rRate = frameInv / 100;
  191.  
  192. ascent(iVert in 0..countVertex / 2)
  193. {
  194. let indexVert = iVert * 2;
  195. let angle = 360 / (countVertex / 2 - 1) * iVert;
  196.  
  197. let vx1 = listRadius[indexVert] * cos(angle);
  198. let vy1 = listRadius[indexVert] * sin(angle);
  199. ObjPrim_SetVertexPosition(obj, indexVert + 0, vx1, vy1, 0);
  200.  
  201. let vx2 = listRadius[indexVert+1] * cos(angle);
  202. let vy2 = listRadius[indexVert+1] * sin(angle);
  203. ObjPrim_SetVertexPosition(obj, indexVert + 1, vx2, vy2, 0);
  204.  
  205. //?????
  206. if(frame >= 0)
  207. {//??
  208. let dr = (maxRadius * rRate - listRadius[indexVert]) / 8;
  209. listRadius[indexVert] = listRadius[indexVert] + dr;
  210. }
  211. if(frame > 10)
  212. {//??
  213. let rRateIn = rRate - 0.12;
  214. if(rRateIn < 0){rRateIn=0;}
  215. let dr= (maxRadius * rRateIn - listRadius[indexVert + 1]) / 16;
  216. listRadius[indexVert + 1] = listRadius[indexVert + 1] + dr;
  217. }
  218.  
  219. }
  220.  
  221. ObjRender_SetColor(obj, 192 * alpha, 192 * alpha, 255 * alpha);
  222. ObjRender_SetPosition(obj, px, py, 0);
  223. ObjRender_SetAngleZ(obj, angleRender);
  224.  
  225. frame++;
  226. }
  227.  
  228. yield;
  229. }
  230. } */
  231.  
  232. /*task TExplosion
  233. {
  234. let path = GetCurrentScriptDirectory() ~ "Default_Player_Rumia.png";
  235. let obj = ObjPrim_Create(OBJ_SPRITE_2D);
  236. ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
  237. Obj_SetRenderPriority(obj, 0.60);
  238. ObjPrim_SetTexture(obj, path);
  239. ObjSprite2D_SetSourceRect(obj, 192, 0, 255, 63);
  240. ObjSprite2D_SetDestRect(obj, -32, -32, 32, 32);
  241.  
  242. let alpha = 255;
  243. let scale = 0;
  244. loop(30)
  245. {
  246. scale += 0.2;
  247. alpha -= 8;
  248. ObjRender_SetColor(obj, alpha, alpha, alpha);
  249. ObjRender_SetPosition(obj, GetPlayerX, GetPlayerY, 0);
  250. ObjRender_SetScaleXYZ(obj, scale, scale, 1);
  251. yield;
  252. }
  253. Obj_Delete(obj);
  254. }
  255.  
  256. /*task TSpell
  257. {
  258. let current = GetCurrentScriptDirectory();
  259. let imgEffect = current ~ "Default_Player_RumiaSpell.png";
  260.  
  261. SetPlayerInvincibilityFrame(300);//???????
  262. let bSlowMove = GetVirtualKeyState(VK_SLOWMOVE)==KEY_PUSH || GetVirtualKeyState(VK_SLOWMOVE)==KEY_HOLD;
  263. let objManage = GetSpellManageObject();
  264.  
  265. let enemyX = 0;
  266. let enemyY = 0;
  267.  
  268. TShake();
  269. effect(0);
  270. effect(1);
  271. loop(220)
  272. {
  273. enemyX = GetPlayerX();
  274. enemyY = GetPlayerY();
  275. let pos = GetEnemyIntersectionPosition(enemyX, enemyY, 1);
  276. if(length(pos) > 0)
  277. {
  278. enemyX = pos[0][0];
  279. enemyY = pos[0][1];
  280. }
  281. yield;
  282. }
  283. Obj_Delete(objManage);
  284.  
  285.  
  286. task effect(num)
  287. {
  288. //?????????
  289. let tv=0;
  290. let angle=0;
  291. let alpha=0;
  292. task alphaState
  293. { //?????????????
  294. alpha=0;
  295. loop(256/3){alpha+=3; yield;}
  296. loop(90){yield;}
  297. while(!Obj_IsDeleted(objManage)){alpha-=8; yield;}
  298. }
  299. task lineEffect
  300. {
  301. loop(120){concentrationLine();loop(1){yield;}}
  302. }
  303. alphaState;
  304. if(bSlowMove){lineEffect;}
  305.  
  306. let obj = ObjSpell_Create();//????????????
  307. ObjPrim_SetVertexCount(obj, 10);
  308. ObjPrim_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
  309. ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
  310. Obj_SetRenderPriority(obj, 0.60);
  311. ObjPrim_SetTexture(obj, imgEffect);
  312. ObjSpell_Regist(obj);
  313.  
  314. ascent(i in 0..5)
  315. {
  316. let angle = -45+i*90;
  317. let x;
  318. let y;
  319. if(bSlowMove)
  320. {
  321. //???????????
  322. x = 192*cos(angle);
  323. y = 192*sin(angle);
  324. }
  325. else
  326. {
  327. //?????????
  328. x = 512*cos(angle);
  329. y = 512*sin(angle);
  330. }
  331. ObjPrim_SetVertexPosition(obj, i*2, x, y, 0);
  332. ObjPrim_SetVertexPosition(obj, i*2+1, 0, 0, 0);
  333. ObjPrim_SetVertexColor(obj, i*2, 0, 0, 0);
  334. }
  335.  
  336. while(!Obj_IsDeleted(objManage))
  337. {
  338. tv-=1;
  339. if(num == 0){angle+=1;}
  340. else if(num == 1){angle-=1;}
  341. ObjRender_SetAngleZ(obj, angle);//???????
  342.  
  343. if(bSlowMove)
  344. { //?????
  345. ObjRender_SetPosition(obj, enemyX, enemyY, 0);
  346. ObjSpell_SetIntersectionCircle(obj, enemyX, enemyY, 81);//????????
  347. ObjSpell_SetDamage(obj, 5);
  348. }
  349. else
  350. { //?????
  351. ObjRender_SetPosition(obj, GetPlayerX, GetPlayerY, 0);//?????
  352. ObjSpell_SetIntersectionCircle(obj, GetPlayerX, GetPlayerY, 256);//????????
  353. ObjSpell_SetDamage(obj, 2);
  354. }
  355. ascent(i in 0..5)
  356. {
  357. ObjPrim_SetVertexUVT(obj, i*2, 16*i, tv);//???????????
  358. ObjPrim_SetVertexUVT(obj, i*2+1 ,32, 64+tv);
  359.  
  360. ObjPrim_SetVertexColor(obj, i*2+1, alpha, alpha, alpha);
  361. }
  362. yield;
  363. }
  364. Obj_Delete(obj);
  365. }
  366.  
  367. task concentrationLine()
  368. { //?????????????
  369. let angle = rand(0, 360);
  370. let alpha=0;
  371. let scale=3;
  372.  
  373. let obj = ObjPrim_Create(OBJ_PRIMITIVE_2D);//?????????
  374. ObjPrim_SetVertexCount(obj, 3);//???3????
  375. ObjPrim_SetPrimitiveType(obj, PRIMITIVE_TRIANGLELIST);//????????????
  376. ObjRender_SetBlendType(obj, BLEND_ADD_RGB);//???????
  377. Obj_SetRenderPriority(obj, 0.60);
  378. ObjPrim_SetTexture(obj, imgEffect);//????????
  379. ObjRender_SetAngleZ(obj, angle);//???????
  380.  
  381. //???????
  382. ObjPrim_SetVertexPosition(obj, 0, 0, 10, 0);
  383. ObjPrim_SetVertexPosition(obj, 1, -10, 50, 0);
  384. ObjPrim_SetVertexPosition(obj, 2, 10, 50, 0);
  385.  
  386. //???UV????
  387. ObjPrim_SetVertexUVT(obj, 0, 10, 10);
  388. ObjPrim_SetVertexUVT(obj, 1, 0, 50);
  389. ObjPrim_SetVertexUVT(obj, 2, 20, 50);
  390.  
  391. //???
  392. ObjPrim_SetVertexColor(obj, 0, alpha, 0, alpha);
  393. ObjPrim_SetVertexColor(obj, 1, 0, 0, 0);
  394. ObjPrim_SetVertexColor(obj, 2, 0, 0, 0);
  395.  
  396. loop(60)
  397. {
  398. scale-=3/60;
  399. alpha+=5;
  400. ObjPrim_SetVertexColor(obj, 0, alpha, 0, alpha);
  401. ObjRender_SetScaleXYZ(obj, scale, scale*3, 1);
  402. ObjRender_SetPosition(obj, enemyX, enemyY, 0);
  403. yield;
  404. }
  405. Obj_Delete(obj);
  406. }
  407.  
  408. task TShake()
  409. {
  410. while(!Obj_IsDeleted(objManage))
  411. {
  412. Set2DCameraFocusX(GetStgFrameWidth / 2 + rand(-8, 8));
  413. Set2DCameraFocusY(GetStgFrameHeight / 2 + rand(-8, 8));
  414. yield;
  415. }
  416.  
  417. Reset2DCamera();
  418. }
  419. } */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement