Guest User

Untitled

a guest
Feb 3rd, 2014
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.56 KB | None | 0 0
  1. #define MAX_PLAYERTOYS 7
  2. #define TOYS 10131
  3. #define DELETETOY 10132
  4. #define WEARTOY 10133
  5. #define EDITTOYS 10140
  6. #define EDITTOYS2 10141
  7. #define EDITTOYSBONE 10142
  8. #define EDITTOYSPX 10143
  9. #define EDITTOYSPY 10144
  10. #define EDITTOYSPZ 10145
  11. #define EDITTOYSRX 10146
  12. #define EDITTOYSRY 10147
  13. #define EDITTOYSRZ 10148
  14. #define EDITTOYSSX 18493
  15. #define EDITTOYSSY 18494
  16. #define EDITTOYSSZ 18495
  17.  
  18. enum ptInfo
  19. {
  20. ptModelID,
  21. ptBone,
  22. Float:ptPosX,
  23. Float:ptPosY,
  24. Float:ptPosZ,
  25. Float:ptRotX,
  26. Float:ptRotY,
  27. Float:ptRotZ,
  28. Float:ptScaleX,
  29. Float:ptScaleY,
  30. Float:ptScaleZ
  31. };
  32. new PlayerToyInfo[MAX_PLAYERS+1][MAX_PLAYERTOYS][ptInfo];
  33.  
  34. enum HoldingEnum
  35. {
  36. holdingmodelid,
  37. holdingprice,
  38. holdingmodelname[24]
  39. }
  40.  
  41. new HoldingObjects[201][HoldingEnum] = {
  42. {18632,1000,"FishingRod"},
  43. {18633,1500,"Wrench"},
  44. {18634,1000,"Crowbar"},
  45. {18635,1000,"Hammer"},
  46. {18638,500,"HardHat"},
  47. {19093,500,"HardHat2"},
  48. {19160,500,"HardHat3"},
  49. {18639,500,"BlackHat"},
  50. {18640,700,"Hair"},
  51. {18975,700,"Hair2"},
  52. {19136,700,"Hair3"},
  53. {19274,700,"Hair4"},
  54. {18641,1000,"Flashlight"},
  55. {18644,5000,"Screwdriver"},
  56. {18865,500,"MobilePhone1"},
  57. {18866,500,"MobilePhone2"},
  58. {18867,500,"MobilePhone3"},
  59. {18868,500,"MobilePhone4"},
  60. {18869,500,"MobilePhone5"},
  61. {18870,1000,"MobilePhone6"},
  62. {18871,1000,"MobilePhone7"},
  63. {18872,1000,"MobilePhone8"},
  64. {18873,1000,"MobilePhone9"},
  65. {18874,1000,"MobilePhone10"},
  66. {18875,750,"Pager"},
  67. {18890,500,"Rake"},
  68. {18891,500,"Bandana1"},
  69. {18892,500,"Bandana2"},
  70. {18893,500,"Bandana3"},
  71. {18894,500,"Bandana4"},
  72. {18895,500,"Bandana5"},
  73. {18896,500,"Bandana6"},
  74. {18897,500,"Bandana7"},
  75. {18898,500,"Bandana8"},
  76. {18899,500,"Bandana9"},
  77. {18900,500,"Bandana10"},
  78. {18901,750,"Bandana11"},
  79. {18902,750,"Bandana12"},
  80. {18903,750,"Bandana13"},
  81. {18904,750,"Bandana14"},
  82. {18905,750,"Bandana15"},
  83. {18906,750,"Bandana16"},
  84. {18907,750,"Bandana17"},
  85. {18908,750,"Bandana18"},
  86. {18909,750,"Bandana19"},
  87. {18910,750,"Bandana20"},
  88. {18911,1000,"Mask1"},
  89. {18912,1000,"Mask2"},
  90. {18913,1000,"Mask3"},
  91. {18914,1000,"Mask4"},
  92. {18915,1000,"Mask5"},
  93. {18916,1000,"Mask6"},
  94. {18917,1000,"Mask7"},
  95. {18918,1000,"Mask8"},
  96. {18919,1000,"Mask9"},
  97. {18920,1000,"Mask10"},
  98. {18921,500,"Beret1"},
  99. {18922,500,"Beret2"},
  100. {18923,750,"Beret3"},
  101. {18924,1000,"Beret4"},
  102. {18925,1000,"Beret5"},
  103. {18926,500,"Hat1"},
  104. {18927,500,"Hat2"},
  105. {18928,500,"Hat3"},
  106. {18929,500,"Hat4"},
  107. {18930,500,"Hat5"},
  108. {18931,1000,"Hat6"},
  109. {18932,1000,"Hat7"},
  110. {18933,1000,"Hat8"},
  111. {18934,1000,"Hat9"},
  112. {18935,1000,"Hat10"},
  113. {18936,500,"Helmet1"},
  114. {18937,750,"Helmet2"},
  115. {18938,1000,"Helmet3"},
  116. {18939,750,"CapBack1"},
  117. {18940,750,"CapBack2"},
  118. {18941,750,"CapBack3"},
  119. {18942,1000,"CapBack4"},
  120. {18943,1000,"CapBack5"},
  121. {18944,1000,"HatBoater1"},
  122. {18945,1250,"HatBoater2"},
  123. {18946,1500,"HatBoater3"},
  124. {18947,1000,"HatBowler1"},
  125. {18948,1000,"HatBowler2"},
  126. {18949,1000,"HatBowler3"},
  127. {18950,1000,"HatBowler4"},
  128. {18951,1000,"HatBowler5"},
  129. {18952,1500,"BoxingHelmet"},
  130. {18953,500,"CapKnit1"},
  131. {18954,750,"CapKnit2"},
  132. {18955,750,"CapOverEye1"},
  133. {18956,750,"CapOverEye2"},
  134. {18957,750,"CapOverEye3"},
  135. {18958,750,"CapOverEye4"},
  136. {18959,750,"CapOverEye5"},
  137. {18960,1000,"CapRimUp1"},
  138. {18961,750,"CapTrucker1"},
  139. {18962,750,"CowboyHat2"},
  140. {18964,1000,"SkullyCap1"},
  141. {18965,1250,"SkullyCap2"},
  142. {18966,1500,"SkullyCap3"},
  143. {18967,1000,"HatMan1"},
  144. {18968,1000,"HatMan2"},
  145. {18969,1000,"HatMan3"},
  146. {18970,2000,"HatTiger"},
  147. {18971,1000,"HatCool1"},
  148. {18972,1250,"HatCool2"},
  149. {18973,1500,"HatCool3"},
  150. {18974,10000,"MaskZorro1"},
  151. {18645,1500,"MotorcycleHelmet"},
  152. {18976,1000,"MotorcycleHelmet2"},
  153. {18977,1000,"MotorcycleHelmet3"},
  154. {18978,1250,"MotorcycleHelmet4"},
  155. {18979,1500,"MotorcycleHelmet5"},
  156. {19006,500,"GlassesType1"},
  157. {19007,500,"GlassesType2"},
  158. {19008,500,"GlassesType3"},
  159. {19009,500,"GlassesType4"},
  160. {19010,500,"GlassesType5"},
  161. {19011,500,"GlassesType6"},
  162. {19012,500,"GlassesType7"},
  163. {19013,500,"GlassesType8"},
  164. {19014,500,"GlassesType9"},
  165. {19015,500,"GlassesType10"},
  166. {19016,1000,"GlassesType11"},
  167. {19017,1000,"GlassesType12"},
  168. {19018,1000,"GlassesType13"},
  169. {19019,1000,"GlassesType14"},
  170. {19020,1000,"GlassesType15"},
  171. {19021,1000,"GlassesType16"},
  172. {19022,1000,"GlassesType17"},
  173. {19023,1000,"GlassesType18"},
  174. {19024,1000,"GlassesType19"},
  175. {19025,1000,"GlassesType20"},
  176. {19026,1500,"GlassesType21"},
  177. {19027,1500,"GlassesType22"},
  178. {19028,1500,"GlassesType23"},
  179. {19029,1500,"GlassesType24"},
  180. {19030,1500,"GlassesType25"},
  181. {19031,1500,"GlassesType26"},
  182. {19032,1500,"GlassesType27"},
  183. {19033,1500,"GlassesType28"},
  184. {19034,1500,"GlassesType29"},
  185. {19035,1500,"GlassesType30"},
  186. {19036,2000,"HockeyMask1"},
  187. {19037,2000,"HockeyMask2"},
  188. {19038,2000,"HockeyMask3"},
  189. {19039,500,"WatchType1"},
  190. {19040,500,"WatchType2"},
  191. {19041,500,"WatchType3"},
  192. {19042,500,"WatchType4"},
  193. {19043,500,"WatchType5"},
  194. {19044,500,"WatchType6"},
  195. {19045,500,"WatchType7"},
  196. {19046,1000,"WatchType8"},
  197. {19047,1000,"WatchType9"},
  198. {19048,1000,"WatchType10"},
  199. {19049,1000,"WatchType11"},
  200. {19050,1000,"WatchType12"},
  201. {19051,1000,"WatchType13"},
  202. {19052,1000,"WatchType14"},
  203. {19053,1000,"WatchType15"},
  204. {19064,10000, "SantaHat1"},
  205. {19065,20000, "SantaHat2"},
  206. {19066,30000, "SantaHat3"},
  207. {19067,1000, "HoodyHat1"},
  208. {19068,1000, "HoodyHat2"},
  209. {19069,1000, "HoodyHat3"},
  210. {19078,7500, "TheParrot1"},
  211. {19079,7500, "TheParrot2"},
  212. {19085,5000, "EyePatch"},
  213. {19090,1500, "PomPomBlue"},
  214. {19091,1500, "PomPomRed"},
  215. {19092,1500, "PomPomGreen"},
  216. {19094,2000, "BurgerShotHat"},
  217. {19095,500, "CowboyHat1"},
  218. {19096,500, "CowboyHat3"},
  219. {19097,1000, "CowboyHat4"},
  220. {19098,1000, "CowboyHat5"},
  221. {19101,2000, "ArmyHelmet1"},
  222. {19102,2000, "ArmyHelmet2"},
  223. {19103,2000, "ArmyHelmet3"},
  224. {19104,2000, "ArmyHelmet4"},
  225. {19105,2000, "ArmyHelmet5"},
  226. {19106,2000, "ArmyHelmet6"},
  227. {19107,4000, "ArmyHelmet7"},
  228. {19108,4000, "ArmyHelmet8"},
  229. {19109,4000, "ArmyHelmet9"},
  230. {19110,4000, "ArmyHelmet10"},
  231. {19111,4000, "ArmyHelmet11"},
  232. {19112,4000, "ArmyHelmet12"},
  233. {19113,1000, "SillyHelmet1"},
  234. {19114,2000, "SillyHelmet2"},
  235. {19115,3000, "SillyHelmet3"},
  236. {19116,500, "PlainHelmet1"},
  237. {19117,500, "PlainHelmet2"},
  238. {19118,750, "PlainHelmet3"},
  239. {19119,1000, "PlainHelmet4"},
  240. {19120,1000, "PlainHelmet5"},
  241. {19137,5000, "CluckinBellHat"},
  242. {19163,1000, "GimpMask"}
  243. };
  244.  
  245. new HoldingBones[][] = {
  246. "None",
  247. "Spine",
  248. "Head",
  249. "Left upper arm",
  250. "Right upper arm",
  251. "Left hand",
  252. "Right hand",
  253. "Left thigh",
  254. "Right thigh",
  255. "Left foot",
  256. "Right foot",
  257. "Right calf",
  258. "Left calf",
  259. "Left forearm",
  260. "Right forearm",
  261. "Left clavicle",
  262. "Right clavicle",
  263. "Neck",
  264. "Jaw"
  265. };
  266. public OnPlayerConnect(playerid)
  267. {
  268. for(new v = 0; v < MAX_PLAYERTOYS; v++)
  269. {
  270. PlayerToyInfo[playerid][v][ptModelID] = 0;
  271. PlayerToyInfo[playerid][v][ptBone] = 0;
  272. PlayerToyInfo[playerid][v][ptPosX] = 0.0;
  273. PlayerToyInfo[playerid][v][ptPosY] = 0.0;
  274. PlayerToyInfo[playerid][v][ptPosZ] = 0.0;
  275. PlayerToyInfo[playerid][v][ptRotX] = 0.0;
  276. PlayerToyInfo[playerid][v][ptRotY] = 0.0;
  277. PlayerToyInfo[playerid][v][ptRotZ] = 0.0;
  278. }
  279. }
  280.  
  281. public OnPlayerRegister(playerid, password[])
  282. {
  283. for(new v = 0; v < MAX_PLAYERTOYS; v++)
  284. {
  285. format(var, 32, "pt%dModelID=%d\n", v, PlayerToyInfo[playerid][v][ptModelID]);fwrite(hFile, var);
  286. format(var, 32, "pt%dBone=%d\n", v, PlayerToyInfo[playerid][v][ptBone]);fwrite(hFile, var);
  287. format(var, 32, "pt%dPosX=%.5f\n", v, PlayerToyInfo[playerid][v][ptPosX]);fwrite(hFile, var);
  288. format(var, 32, "pt%dPosY=%.5f\n", v, PlayerToyInfo[playerid][v][ptPosY]);fwrite(hFile, var);
  289. format(var, 32, "pt%dPosZ=%.5f\n", v, PlayerToyInfo[playerid][v][ptPosZ]);fwrite(hFile, var);
  290. format(var, 32, "pt%dRotX=%.5f\n", v, PlayerToyInfo[playerid][v][ptRotX]);fwrite(hFile, var);
  291. format(var, 32, "pt%dRotY=%.5f\n", v, PlayerToyInfo[playerid][v][ptRotY]);fwrite(hFile, var);
  292. format(var, 32, "pt%dRotZ=%.5f\n", v, PlayerToyInfo[playerid][v][ptRotZ]);fwrite(hFile, var);
  293. }
  294. }
  295. public OnPlayerStatsUpdate(playerid)
  296. {
  297. for(new v = 0; v < MAX_PLAYERTOYS; v++)
  298. {
  299. format(var, 32, "pt%dModelID=%d\n", v, PlayerToyInfo[playerid][v][ptModelID]);fwrite(hFile, var);
  300. format(var, 32, "pt%dBone=%d\n", v, PlayerToyInfo[playerid][v][ptBone]);fwrite(hFile, var);
  301. format(var, 32, "pt%dPosX=%.5f\n", v, PlayerToyInfo[playerid][v][ptPosX]);fwrite(hFile, var);
  302. format(var, 32, "pt%dPosY=%.5f\n", v, PlayerToyInfo[playerid][v][ptPosY]);fwrite(hFile, var);
  303. format(var, 32, "pt%dPosZ=%.5f\n", v, PlayerToyInfo[playerid][v][ptPosZ]);fwrite(hFile, var);
  304. format(var, 32, "pt%dRotX=%.5f\n", v, PlayerToyInfo[playerid][v][ptRotX]);fwrite(hFile, var);
  305. format(var, 32, "pt%dRotY=%.5f\n", v, PlayerToyInfo[playerid][v][ptRotY]);fwrite(hFile, var);
  306. format(var, 32, "pt%dRotZ=%.5f\n", v, PlayerToyInfo[playerid][v][ptRotZ]);fwrite(hFile, var);
  307. }
  308. }
  309. public OnPlayerLogin(playerid,password[])
  310. {
  311. for(new v = 0; v < MAX_PLAYERTOYS; v++)
  312. {
  313. format(string, 128, "pt%dModelID",v);
  314. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[playerid][v][ptModelID] = strval( val ); }
  315. format(string, 128, "pt%dBone",v);
  316. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[playerid][v][ptBone] = strval( val ); }
  317. format(string, 128, "pt%dPosX",v);
  318. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[playerid][v][ptPosX] = floatstr( val ); }
  319. format(string, 128, "pt%dPosY",v);
  320. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[playerid][v][ptPosY] = floatstr( val ); }
  321. format(string, 128, "pt%dPosZ",v);
  322. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[playerid][v][ptPosZ] = floatstr( val ); }
  323. format(string, 128, "pt%dRotX",v);
  324. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[playerid][v][ptRotX] = floatstr( val ); }
  325. format(string, 128, "pt%dRotY",v);
  326. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[playerid][v][ptRotY] = floatstr( val ); }
  327. format(string, 128, "pt%dRotZ",v);
  328. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[playerid][v][ptRotZ] = floatstr( val ); }
  329. }
  330. }
  331. public OnPlayerOfflineLogin(playername[])
  332. {
  333. for(new t = 0; t < MAX_PLAYERTOYS; t++)
  334. {
  335. format(string, 128, "pt%dModelID",t);
  336. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[MAX_PLAYERS][t][ptModelID] = strval( val ); }
  337. format(string, 128, "pt%dBone",t);
  338. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[MAX_PLAYERS][t][ptBone] = strval( val ); }
  339. format(string, 128, "pt%dPosX",t);
  340. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[MAX_PLAYERS][t][ptPosX] = floatstr( val ); }
  341. format(string, 128, "pt%dPosY",t);
  342. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[MAX_PLAYERS][t][ptPosY] = floatstr( val ); }
  343. format(string, 128, "pt%dPosZ",t);
  344. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[MAX_PLAYERS][t][ptPosZ] = floatstr( val ); }
  345. format(string, 128, "pt%dRotX",t);
  346. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[MAX_PLAYERS][t][ptRotX] = floatstr( val ); }
  347. format(string, 128, "pt%dRotY",t);
  348. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[MAX_PLAYERS][t][ptRotY] = floatstr( val ); }
  349. format(string, 128, "pt%dRotZ",t);
  350. if( strcmp( key , string , true ) == 0 ) { val = ini_GetValue( Data ); PlayerToyInfo[MAX_PLAYERS][t][ptRotZ] = floatstr( val ); }
  351. }
  352. }
  353. public OnPlayerOfflineSave(playername[])
  354. {
  355. for(v = 0; v < MAX_PLAYERTOYS; v++)
  356. {
  357. format(var, 32, "pt%dModelID=%d\n", v, PlayerToyInfo[MAX_PLAYERS][v][ptModelID]);fwrite(hFile, var);
  358. format(var, 32, "pt%dBone=%d\n", v, PlayerToyInfo[MAX_PLAYERS][v][ptBone]);fwrite(hFile, var);
  359. format(var, 32, "pt%dPosX=%.5f\n", v, PlayerToyInfo[MAX_PLAYERS][v][ptPosX]);fwrite(hFile, var);
  360. format(var, 32, "pt%dPosY=%.5f\n", v, PlayerToyInfo[MAX_PLAYERS][v][ptPosY]);fwrite(hFile, var);
  361. format(var, 32, "pt%dPosZ=%.5f\n", v, PlayerToyInfo[MAX_PLAYERS][v][ptPosZ]);fwrite(hFile, var);
  362. format(var, 32, "pt%dRotX=%.5f\n", v, PlayerToyInfo[MAX_PLAYERS][v][ptRotX]);fwrite(hFile, var);
  363. format(var, 32, "pt%dRotY=%.5f\n", v, PlayerToyInfo[MAX_PLAYERS][v][ptRotY]);fwrite(hFile, var);
  364. format(var, 32, "pt%dRotZ=%.5f\n", v, PlayerToyInfo[MAX_PLAYERS][v][ptRotZ]);fwrite(hFile, var);
  365. }
  366. }
  367. CMD:buytoys(playerid, params[])
  368. {
  369. if(IsPlayerInRangeOfPoint(playerid, 4, 2787.095947, 2390.353027, 1240.531127))
  370. {
  371. if(PlayerInfo[playerid][pDonateRank] < 3)
  372. {
  373. SendClientMessageEx(playerid, COLOR_WHITE, "* You are not a Gold or Platinum VIP!");
  374. }
  375. else
  376. {
  377. ShowPlayerDialog( playerid, BUYTOYSGOLD, DIALOG_STYLE_MSGBOX, "Toy Store", "Welcome to the VIP toy store! Here you can buy accessories to attach to your player.\n\nFirst, we will choose a slot to store the toy in.","Continue", "Cancel" );
  378. }
  379. }
  380. else if(IsAtClothShop(playerid))
  381. {
  382. ShowPlayerDialog( playerid, BUYTOYS, DIALOG_STYLE_MSGBOX, "Toy Store", "Welcome to the toy store! Here you can buy accessories to attach to your player.\n\nFirst, we will choose a slot to store the toy in.\n(Note: Non-VIP can only hold 2 toys, Bronze-Gold VIP can hold 3-5)","Continue", "Cancel" );
  383. }
  384. else
  385. {
  386. SendClientMessageEx( playerid, COLOR_WHITE, " You are not in a Clothing Shop!" );
  387. }
  388. return 1;
  389. }
  390.  
  391. CMD:toyhelp(playerid, params[])
  392. {
  393. SendClientMessageEx(playerid, COLOR_GREEN,"_______________________________________");
  394. SendClientMessageEx(playerid, COLOR_WHITE,"*** TOY HELP ***");
  395. SendClientMessageEx(playerid, COLOR_GRAD3,"To buy a toy, go to any clothing store and type {AA3333}/buytoys");
  396. SendClientMessageEx(playerid, COLOR_GRAD3,"To attach/dettach, edit, or delete a toy type {AA3333}/toys");
  397. SendClientMessageEx(playerid, COLOR_GRAD3,"To quickly attach all your toys, type {AA3333}/wat");
  398. SendClientMessageEx(playerid, COLOR_GRAD3,"To quickly detach all your toys, type {AA3333}/dat");
  399. return 1;
  400. }
  401.  
  402. CMD:toys(playerid, params[])
  403. {
  404. ShowPlayerDialog( playerid, TOYS, DIALOG_STYLE_LIST, "Toy Menu", "Attach/Dettach a Toy\nEdit a Toy\nDelete a Toy","Select", "Cancel" );
  405. return 1;
  406. }
  407.  
  408.  
  409. CMD:wat(playerid, params[])
  410. {
  411. SendClientMessageEx(playerid, COLOR_WHITE, "* Attached all toys.");
  412. for(new x;x<MAX_PLAYERTOYS;x++)
  413. {
  414. if(PlayerToyInfo[playerid][x][ptModelID] != 0) SetPlayerAttachedObject(playerid, x, PlayerToyInfo[playerid][x][ptModelID], PlayerToyInfo[playerid][x][ptBone], PlayerToyInfo[playerid][x][ptPosX], PlayerToyInfo[playerid][x][ptPosY], PlayerToyInfo[playerid][x][ptPosZ], PlayerToyInfo[playerid][x][ptRotX], PlayerToyInfo[playerid][x][ptRotY], PlayerToyInfo[playerid][x][ptRotZ], 1, 1, 1);
  415. }
  416. return 1;
  417. }
  418.  
  419. CMD:dat(playerid, params[])
  420. {
  421. SendClientMessageEx(playerid, COLOR_WHITE, "* Deattached all toys.");
  422. for(new x;x<MAX_PLAYERTOYS;x++)
  423. {
  424. RemovePlayerAttachedObject(playerid, x);
  425. }
  426. return 1;
  427. }
  428. stock ShowEditMenu(playerid)
  429. {
  430. new
  431. iIndex = GetPVarInt(playerid, "ToySlot");
  432.  
  433. if(IsPlayerAttachedObjectSlotUsed(playerid, iIndex))
  434. {
  435. RemovePlayerAttachedObject(playerid, iIndex);
  436. }
  437. if(PlayerToyInfo[playerid][iIndex][ptScaleX] == 0) {
  438. PlayerToyInfo[playerid][iIndex][ptScaleX] = 1.0;
  439. PlayerToyInfo[playerid][iIndex][ptScaleY] = 1.0;
  440. PlayerToyInfo[playerid][iIndex][ptScaleZ] = 1.0;
  441. }
  442.  
  443. SetPlayerAttachedObject(playerid, iIndex, PlayerToyInfo[playerid][iIndex][ptModelID],
  444. PlayerToyInfo[playerid][iIndex][ptBone], PlayerToyInfo[playerid][iIndex][ptPosX],
  445. PlayerToyInfo[playerid][iIndex][ptPosY], PlayerToyInfo[playerid][iIndex][ptPosZ],
  446. PlayerToyInfo[playerid][iIndex][ptRotX], PlayerToyInfo[playerid][iIndex][ptRotY],
  447. PlayerToyInfo[playerid][iIndex][ptRotZ], PlayerToyInfo[playerid][iIndex][ptScaleX],
  448. PlayerToyInfo[playerid][iIndex][ptScaleY], PlayerToyInfo[playerid][iIndex][ptScaleZ]);
  449.  
  450. new stringg[128];
  451. format(stringg, sizeof(stringg), "Bone (%s)\nOffset", HoldingBones[PlayerToyInfo[playerid][iIndex][ptBone]]);
  452. ShowPlayerDialog(playerid, EDITTOYS2, DIALOG_STYLE_LIST, "Toy Menu: Edit", stringg, "Select", "Cancel");
  453. }
  454. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  455. {
  456. new sendername[MAX_PLAYER_NAME];
  457. new string[128];
  458. if((dialogid == BUYTOYS) && response)
  459. {
  460. new stringg[512];
  461. for(new x;x<MAX_PLAYERTOYS;x++)
  462. {
  463. new name[24];
  464. format(name, sizeof(name), "None");
  465.  
  466. for(new i;i<sizeof(HoldingObjectsAll);i++)
  467. {
  468. if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
  469. {
  470. format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
  471. }
  472. }
  473. for(new i;i<sizeof(HoldingObjectsPlat);i++)
  474. {
  475. if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
  476. {
  477. format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
  478. }
  479. }
  480.  
  481. format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
  482. }
  483. ShowPlayerDialog(playerid, BUYTOYS2, DIALOG_STYLE_LIST, "Select a Slot", stringg, "Select", "Cancel");
  484. }
  485. if((dialogid == BUYTOYS2) && response)
  486. {
  487. if(listitem >= 3 && PlayerInfo[playerid][pDonateRank] < 1 || listitem >= 3 && PlayerInfo[playerid][pBuddyInvited] == 1) return SendClientMessageEx(playerid, COLOR_WHITE, "* You must be a Bronze VIP + to use that slot!");
  488. if(listitem >= 4 && PlayerInfo[playerid][pDonateRank] < 2) return SendClientMessageEx(playerid, COLOR_WHITE, "* You must be a Silver VIP + to use that slot!");
  489. if(listitem >= 5 && PlayerInfo[playerid][pDonateRank] < 3) return SendClientMessageEx(playerid, COLOR_WHITE, "* You must be a Gold VIP + to use that slot!");
  490.  
  491. if(PlayerToyInfo[playerid][listitem][ptModelID] != 0) return SendClientMessageEx(playerid, COLOR_YELLOW, "* You already have something in that slot. Delete it with /toys");
  492.  
  493. slotselection[playerid] = listitem;
  494.  
  495. new stringg[5000];
  496. for(new x;x<sizeof(HoldingObjects);x++)
  497. {
  498. format(stringg, sizeof(stringg), "%s%s ($%d)\n", stringg, HoldingObjects[x][holdingmodelname], HoldingObjects[x][holdingprice]);
  499. }
  500. ShowPlayerDialog(playerid, BUYTOYS3, DIALOG_STYLE_LIST, "Select an Item", stringg, "Buy", "Cancel");
  501. }
  502. if((dialogid == BUYTOYS3) && response)
  503. {
  504. if(GetPlayerCash(playerid) < HoldingObjects[listitem][holdingprice])
  505. {
  506. SendClientMessageEx(playerid, COLOR_WHITE, "* You can't afford that!");
  507. }
  508. else
  509. {
  510. GivePlayerCash(playerid, -HoldingObjects[listitem][holdingprice]);
  511. PlayerToyInfo[playerid][slotselection[playerid]][ptModelID] = HoldingObjects[listitem][holdingmodelid];
  512.  
  513. new modelid = PlayerToyInfo[playerid][slotselection[playerid]][ptModelID];
  514. if((modelid >= 19006 && modelid <= 19035) || (modelid >= 19138 && modelid <= 19140))
  515. {
  516. PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
  517. PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.9;
  518. PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
  519. PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.35;
  520. PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 90.0;
  521. PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 90.0;
  522. PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
  523. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
  524. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
  525. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
  526. }
  527. else if(modelid >= 18891 && modelid <= 18910)
  528. {
  529. PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
  530. PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.15;
  531. PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
  532. PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
  533. PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 90.0;
  534. PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 180.0;
  535. PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 90.0;
  536. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
  537. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
  538. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
  539. }
  540. else if(modelid >= 18926 && modelid <= 18935)
  541. {
  542. PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
  543. PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.1;
  544. PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
  545. PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
  546. PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 0.0;
  547. PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 0.0;
  548. PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
  549. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
  550. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
  551. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
  552. }
  553. else if(modelid >= 18911 && modelid <= 18920)
  554. {
  555. PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
  556. PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.1;
  557. PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.035;
  558. PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
  559. PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 90.0;
  560. PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 180.0;
  561. PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 90.0;
  562. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
  563. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
  564. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
  565. }
  566. else if(modelid == 19078 || modelid == 19078)
  567. {
  568. PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 16;
  569. PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0;
  570. PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0;
  571. PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0;
  572. PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 180.0;
  573. PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 180.0;
  574. PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
  575. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
  576. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
  577. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
  578. }
  579. else if((modelid >= 18641 && modelid <= 18644) || (modelid >= 19080 && modelid <= 19084) || modelid == 18890)
  580. {
  581. PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 6;
  582. PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.0;
  583. PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
  584. PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
  585. PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 0.0;
  586. PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 0.0;
  587. PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
  588. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
  589. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
  590. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
  591. }
  592. else
  593. {
  594. PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = 2;
  595. PlayerToyInfo[playerid][slotselection[playerid]][ptPosX] = 0.0;
  596. PlayerToyInfo[playerid][slotselection[playerid]][ptPosY] = 0.0;
  597. PlayerToyInfo[playerid][slotselection[playerid]][ptPosZ] = 0.0;
  598. PlayerToyInfo[playerid][slotselection[playerid]][ptRotX] = 0.0;
  599. PlayerToyInfo[playerid][slotselection[playerid]][ptRotY] = 0.0;
  600. PlayerToyInfo[playerid][slotselection[playerid]][ptRotZ] = 0.0;
  601. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleX] = 1.0;
  602. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleY] = 1.0;
  603. PlayerToyInfo[playerid][slotselection[playerid]][ptScaleZ] = 1.0;
  604. }
  605. format(string, sizeof(string), "* You have purchased %s for $%d (Slot: %d)", HoldingObjects[listitem][holdingmodelname], HoldingObjects[listitem][holdingprice], slotselection[playerid]);
  606. SendClientMessageEx(playerid, COLOR_RED, string);
  607. SendClientMessageEx(playerid, COLOR_WHITE, "HINT: Use /toys to wear/edit this");
  608. }
  609. }
  610. if((dialogid == TOYS) && response)
  611. {
  612. if(listitem == 0)
  613. {
  614. new stringg[512];
  615. for(new x;x<MAX_PLAYERTOYS;x++)
  616. {
  617. new name[24];
  618. format(name, sizeof(name), "None");
  619.  
  620. for(new i;i<sizeof(HoldingObjectsAll);i++)
  621. {
  622. if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
  623. {
  624. format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
  625. }
  626. }
  627. for(new i;i<sizeof(HoldingObjectsPlat);i++)
  628. {
  629. if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
  630. {
  631. format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
  632. }
  633. }
  634. format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
  635. }
  636. ShowPlayerDialog(playerid, WEARTOY, DIALOG_STYLE_LIST, "Select a Toy", stringg, "Select", "Cancel");
  637. }
  638. else if(listitem == 1)
  639. {
  640. new stringg[512];
  641. for(new x;x<MAX_PLAYERTOYS;x++)
  642. {
  643. new name[24];
  644. format(name, sizeof(name), "None");
  645.  
  646. for(new i;i<sizeof(HoldingObjectsAll);i++)
  647. {
  648. if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
  649. {
  650. format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
  651. }
  652. }
  653. for(new i;i<sizeof(HoldingObjectsPlat);i++)
  654. {
  655. if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
  656. {
  657. format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
  658. }
  659. }
  660.  
  661. format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
  662. }
  663. ShowPlayerDialog(playerid, EDITTOYS, DIALOG_STYLE_LIST, "Select a Toy", stringg, "Select", "Cancel");
  664. }
  665. else if(listitem == 2)
  666. {
  667. new stringg[512];
  668. for(new x;x<MAX_PLAYERTOYS;x++)
  669. {
  670. new name[24];
  671. format(name, sizeof(name), "None");
  672.  
  673. for(new i;i<sizeof(HoldingObjectsAll);i++)
  674. {
  675. if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
  676. {
  677. format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
  678. }
  679. }
  680. for(new i;i<sizeof(HoldingObjectsPlat);i++)
  681. {
  682. if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
  683. {
  684. format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
  685. }
  686. }
  687.  
  688. format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
  689. }
  690. ShowPlayerDialog(playerid, DELETETOY, DIALOG_STYLE_LIST, "Select a Toy", stringg, "Delete", "Cancel");
  691. }
  692. }
  693.  
  694. if((dialogid == EDITTOYS) && response)
  695. {
  696. if(PlayerToyInfo[playerid][listitem][ptModelID] == 0)
  697. {
  698. ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Toy Menu: Edit", "Woops! You don't have anything on that slot", "OK", "");
  699. }
  700. else
  701. {
  702. SendClientMessageEx(playerid, COLOR_WHITE, "{AA3333}HINT:{FFFF00} Position your camera differently to better see where your editing.");
  703. slotselection[playerid] = listitem;
  704. ShowEditMenu(playerid);
  705. }
  706. }
  707.  
  708. if((dialogid == EDITTOYS2)) {
  709. if(response) switch(listitem) {
  710. case 0: ShowPlayerDialog(playerid, EDITTOYSBONE, DIALOG_STYLE_LIST, "Select a Bone", "Spine\nHead\nLeft upper arm\nRight upper arm\nLeft hand\nRight hand\nLeft thigh\nRight thigh\nLeft foot\nRight foot\nRight calf\nLeft calf\nLeft forearm\nRight forearm\nLeft clavicle\nRight clavicle\nNeck\nJaw", "Select", "Cancel");
  711. case 1:
  712. {
  713. SendClientMessage(playerid, COLOR_WHITE, "HINT: Hold {8000FF}~k~~PED_SPRINT~ {FFFFAA}to move your camera, press escape to cancel");
  714. EditAttachedObject(playerid, GetPVarInt(playerid, "ToySlot"));
  715. }
  716. }
  717. else
  718. {
  719. new stringg[512];
  720. for(new x;x<MAX_PLAYERTOYS;x++)
  721. {
  722. new name[24];
  723. format(name, sizeof(name), "None");
  724.  
  725. for(new i;i<sizeof(HoldingObjectsAll);i++)
  726. {
  727. if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][x][ptModelID])
  728. {
  729. format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
  730. break;
  731. }
  732. }
  733. if(PlayerToyInfo[playerid][x][ptModelID] != 0 && (strcmp(name, "None", true) == 0))
  734. {
  735. format(name, sizeof(name), "Obj ID: %d", PlayerToyInfo[playerid][x][ptModelID]);
  736. }
  737. format(stringg, sizeof(stringg), "%s(%d) %s (Bone: %s)\n", stringg, x, name, HoldingBones[PlayerToyInfo[playerid][x][ptBone]]);
  738. }
  739. ShowPlayerDialog(playerid, EDITTOYS, DIALOG_STYLE_LIST, "Select a Toy", stringg, "Select", "Cancel");
  740. }
  741. }
  742.  
  743. if(dialogid == EDITTOYSBONE)
  744. {
  745. if(response)
  746. {
  747. PlayerToyInfo[playerid][slotselection[playerid]][ptBone] = listitem+1;
  748. }
  749. ShowEditMenu(playerid);
  750. }
  751.  
  752. if((dialogid == WEARTOY) && response)
  753. {
  754. if(PlayerToyInfo[playerid][listitem][ptModelID] == 0)
  755. {
  756. ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Toy Menu: Attach/Deattach", "Woops! You don't have anything to put on from that slot", "OK", "");
  757. }
  758. else
  759. {
  760. if(IsPlayerAttachedObjectSlotUsed(playerid, listitem))
  761. {
  762. new name[24];
  763. format(name, sizeof(name), "None");
  764.  
  765. for(new i;i<sizeof(HoldingObjectsAll);i++)
  766. {
  767. if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][listitem][ptModelID])
  768. {
  769. format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
  770. }
  771. }
  772. for(new i;i<sizeof(HoldingObjectsPlat);i++)
  773. {
  774. if(HoldingObjectsPlat[i][holdingmodelid] == PlayerToyInfo[playerid][listitem][ptModelID])
  775. {
  776. format(name, sizeof(name), "%s", HoldingObjectsPlat[i][holdingmodelname]);
  777. }
  778. }
  779. format(string, sizeof(string), "Successfully dettached %s (Bone: %s) (Slot: %d)", name, HoldingBones[PlayerToyInfo[playerid][listitem][ptBone]], listitem);
  780. SendClientMessageEx(playerid, COLOR_RED, string);
  781. RemovePlayerAttachedObject(playerid, listitem);
  782. }
  783. else
  784. {
  785. SetPlayerAttachedObject(playerid, listitem, PlayerToyInfo[playerid][listitem][ptModelID], PlayerToyInfo[playerid][listitem][ptBone], PlayerToyInfo[playerid][listitem][ptPosX], PlayerToyInfo[playerid][listitem][ptPosY], PlayerToyInfo[playerid][listitem][ptPosZ], PlayerToyInfo[playerid][listitem][ptRotX], PlayerToyInfo[playerid][listitem][ptRotY], PlayerToyInfo[playerid][listitem][ptRotZ],
  786. PlayerToyInfo[playerid][listitem][ptScaleX], PlayerToyInfo[playerid][listitem][ptScaleY], PlayerToyInfo[playerid][listitem][ptScaleZ]);
  787. new name[24];
  788. format(name, sizeof(name), "None");
  789.  
  790. for(new i;i<sizeof(HoldingObjectsAll);i++)
  791. {
  792. if(HoldingObjectsAll[i][holdingmodelid] == PlayerToyInfo[playerid][listitem][ptModelID])
  793. {
  794. format(name, sizeof(name), "%s", HoldingObjectsAll[i][holdingmodelname]);
  795. }
  796. }
  797. format(string, sizeof(string), "Successfully attached %s (Bone: %s) (Slot: %d)", name, HoldingBones[PlayerToyInfo[playerid][listitem][ptBone]], listitem);
  798. SendClientMessageEx(playerid, COLOR_RED, string);
  799. }
  800. }
  801. }
  802.  
  803. if((dialogid == DELETETOY) && response)
  804. {
  805. PlayerToyInfo[playerid][listitem][ptModelID] = 0;
  806. PlayerToyInfo[playerid][listitem][ptBone] = 0;
  807. PlayerToyInfo[playerid][listitem][ptPosX] = 0.0;
  808. PlayerToyInfo[playerid][listitem][ptPosY] = 0.0;
  809. PlayerToyInfo[playerid][listitem][ptPosZ] = 0.0;
  810. PlayerToyInfo[playerid][listitem][ptPosX] = 0.0;
  811. PlayerToyInfo[playerid][listitem][ptPosY] = 0.0;
  812. PlayerToyInfo[playerid][listitem][ptPosZ] = 0.0;
  813. if(IsPlayerAttachedObjectSlotUsed(playerid, listitem))
  814. {
  815. RemovePlayerAttachedObject(playerid, listitem);
  816. }
  817. format(string, sizeof(string), "You have deleted your toy in slot %d", listitem);
  818. ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Toy Menu", string, "OK", "");
  819. }
  820. }
Advertisement
Add Comment
Please, Sign In to add comment