Guest User

Untitled

a guest
Dec 22nd, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.41 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf2>
  4. #include <dini>
  5.  
  6. #define DIALOG_YEDIT (133)
  7.  
  8. #define Yedit-> Yedit_
  9. #define MAX_YEDIT (100)
  10.  
  11. #define yeditYolu "/Yedit/"
  12.  
  13. enum y_Enum{
  14. Float:yX,
  15. Float:yY,
  16. Float:yZ,
  17. Float:yRotX,
  18. Float:yRotY,
  19. Float:yRotZ,
  20. yObje,
  21. Text3D:yLabel
  22. };
  23. new
  24. YeditData[MAX_YEDIT][y_Enum],
  25. _yCount
  26. ;
  27.  
  28. public OnFilterScriptInit()
  29. {
  30. print("\n--------------------------------------");
  31. print(" Yılbaşı Objeleri Düzenleme Sistemi Aktif");
  32. print("--------------------------------------\n");
  33. for(new _y = false; _y < (MAX_YEDIT); _y++)
  34. {
  35. new dosya[96];
  36. format(dosya, sizeof dosya, ""yeditYolu"%i.ini", _y);
  37. if(!dini_Exists(dosya)) continue;
  38. Yedit->Obje(strval(dini_Get(dosya, "obje")), floatstr(dini_Get(dosya, "x")), floatstr(dini_Get(dosya, "y")), floatstr(dini_Get(dosya, "z")), floatstr(dini_Get(dosya, "rotx")), floatstr(dini_Get(dosya, "roty")), floatstr(dini_Get(dosya, "rotz")));
  39. }
  40. return 1;
  41. }
  42.  
  43. public OnFilterScriptExit()
  44. {
  45. for(new _y = false; _y < (MAX_YEDIT); _y++)
  46. {
  47. new dosya[96];
  48. format(dosya, sizeof dosya, ""yeditYolu"%i.ini", _y);
  49. if(!dini_Exists(dosya)) continue;
  50. DestroyObject(YeditData[_y][yObje]);
  51. Delete3DTextLabel(YeditData[_y][yLabel]);
  52. }
  53. return 1;
  54. }
  55.  
  56. CMD:yeditor(playerid){
  57. if(GetPVarInt(playerid, "Yedit_Duzenliyor") == 0)
  58. {
  59. SetPVarInt(playerid, "Yedit_Duzenliyor", 1);
  60. ShowPlayerDialog(playerid, DIALOG_YEDIT, DIALOG_STYLE_TABLIST_HEADERS, "{ff00ff}Yılbaşı Editör","{00ffff}ID\t{00ffff}Obje\n19076\tYılbaşı Ağacı\n19054\tKoyu Kırmızı Kutu\n19055\tSarı Kutu\n19056\tGökkuşağı Kutu\n19057\tKırmızı Yıldızlı Kutu\n19058\tSiyah Kutu", "Seç", "Kapat");
  61. GameTextForPlayer(playerid, "~g~Duzenleme basladi.", 5000, 5);
  62. } else {
  63. SetPVarInt(playerid, "Yedit_Duzenliyor", 0);
  64. GameTextForPlayer(playerid, "~r~Duzenleme sona erdi.", 5000, 5);
  65. }
  66. return true;
  67. }
  68.  
  69. CMD:yduzenle(playerid, params[]){
  70. if(!IsPlayerAdmin(playerid)) return true;
  71. new yid, dosyaYolu[126];
  72. if(sscanf(params, "i", yid)) return SendClientMessage(playerid, 0xBD1414FF, "KULLANIM: {ffffff}/yduzenle [ID]");
  73. format(dosyaYolu, sizeof dosyaYolu, ""yeditYolu"%i.ini", yid);
  74. if(!dini_Exists(dosyaYolu)) return SendClientMessage(playerid, 0xBD1414FF, "HATA: {ffffff}Bu ID'a ait bir obje yok.");
  75. else {
  76. format(dosyaYolu, sizeof dosyaYolu, "BILGI: {ffffff}Şu an {00ff00}%i {ffffff}ID'e sahip yılbaşı objesini düzenliyorsunuz.", yid);
  77. SendClientMessage(playerid, 0x00ff00ff, dosyaYolu);
  78. SendClientMessage(playerid, 0x00ff00ff, "BILGI: {ffffff}Düzenlemeyi kapatmak için {bd1414}/ydiptal {ffffff}yazın.");
  79. EditObject(playerid, YeditData[yid][yObje]);
  80. SetPVarInt(playerid, "Yedit_Duzenleme", 1);
  81. SetPVarInt(playerid, "Yedit_Duzenlenen", yid);
  82. }
  83. return true;
  84. }
  85.  
  86. CMD:ydiptal(playerid){
  87. if(!IsPlayerAdmin(playerid)) return true;
  88. if(GetPVarInt(playerid, "Yedit_Duzenleme") == 0) return SendClientMessage(playerid, 0xBD1414FF, "HATA: {ffffff}Yedit düzenlemiyorsunuz.");
  89. else {
  90. SetPVarInt(playerid, "Yedit_Duzenleme", 0);
  91. CancelEdit(playerid);
  92. SendClientMessage(playerid, 0x00ff00ff, "BILGI: {ffffff}Yılbaşı objesi düzenlemeyi iptal ettiniz.");
  93. }
  94. return true;
  95. }
  96.  
  97. CMD:ysil(playerid, params[]){
  98. if(!IsPlayerAdmin(playerid)) return true;
  99. new yid, dosyaYolu[126];
  100. if(sscanf(params, "i", yid)) return SendClientMessage(playerid, 0xBD1414FF, "KULLANIM: {ffffff}/ysil [ID]");
  101. format(dosyaYolu, sizeof dosyaYolu, ""yeditYolu"%i.ini", yid);
  102. if(!dini_Exists(dosyaYolu)) return SendClientMessage(playerid, 0xBD1414FF, "HATA: {ffffff}Bu ID'a ait bir obje yok.");
  103. else {
  104. DestroyObject(YeditData[yid][yObje]);
  105. Delete3DTextLabel(YeditData[yid][yLabel]);
  106. dini_Remove(dosyaYolu);
  107. format(dosyaYolu, sizeof dosyaYolu, "BILGI: {ffffff}Şu an {00ff00}%i {ffffff}ID'e sahip objeyi sildiniz.", yid);
  108. SendClientMessage(playerid, 0x00ff00ff, dosyaYolu);
  109. }
  110. return true;
  111. }
  112.  
  113. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
  114. {
  115. new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ;
  116. GetObjectPos(objectid, oldX, oldY, oldZ);
  117. GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
  118. if(!playerobject)
  119. {
  120. if(!IsValidObject(objectid)) return 1;
  121. SetObjectPos(objectid, fX, fY, fZ);
  122. SetObjectRot(objectid, fRotX, fRotY, fRotZ);
  123. }
  124.  
  125. if(response == EDIT_RESPONSE_FINAL)
  126. {
  127. new dosya[126];
  128. format(dosya,126,""yeditYolu"%i.ini", GetPVarInt(playerid, "Yedit_Duzenlenen"));
  129. if(dini_Exists(dosya))
  130. {
  131. dini_FloatSet(dosya, "x", fX);
  132. dini_FloatSet(dosya, "y", fY);
  133. dini_FloatSet(dosya, "z", fZ);
  134. dini_FloatSet(dosya, "rotx", fRotX);
  135. dini_FloatSet(dosya, "roty", fRotY);
  136. dini_FloatSet(dosya, "rotz", fRotZ);
  137. YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yX] = fX;
  138. YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yY] = fY;
  139. YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yZ] = fZ;
  140. YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yRotX] = fRotX;
  141. YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yRotY] = fRotY;
  142. YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yRotZ] = fRotZ;
  143. Delete3DTextLabel(YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yLabel]);
  144. new hasd[126];
  145. format(hasd,126,"%s(%i)", GetYeditObjectName(strval(dini_Get(dosya, "obje"))), _yCount);
  146. YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yLabel] = Create3DTextLabel(hasd, 0xea1354a9, YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yX], YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yY], YeditData[GetPVarInt(playerid,"Yedit_Duzenlenen")][yZ], 5.0, 0, 0);
  147. }
  148. cmd_ydiptal(playerid);
  149. SendClientMessage(playerid, 0x00ff00ff, "BILGI: {ffffff}Yılbaşı objesi başarıyla kaydedildi.");
  150. }
  151.  
  152. if(response == EDIT_RESPONSE_CANCEL)
  153. {
  154. if(!playerobject)
  155. {
  156. SetObjectPos(objectid, oldX, oldY, oldZ);
  157. SetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
  158. }
  159. else
  160. {
  161. SetPlayerObjectPos(playerid, objectid, oldX, oldY, oldZ);
  162. SetPlayerObjectRot(playerid, objectid, oldRotX, oldRotY, oldRotZ);
  163. }
  164. }
  165. return true;
  166. }
  167.  
  168. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  169. {
  170. if(dialogid == DIALOG_YEDIT)
  171. {
  172. if(!response) return cmd_yeditor(playerid);
  173. new
  174. Float:yPos[3], dosyaYeri[96];
  175. GetPlayerPos(playerid, yPos[0], yPos[1], yPos[2]);
  176. format(dosyaYeri, 96, ""yeditYolu"%i.ini", _yCount);
  177. dini_Create(dosyaYeri);
  178. switch(listitem)
  179. {
  180. case 0: Yedit->Obje(19076, yPos[0], yPos[1], yPos[2], 0, 0, 0), dini_IntSet(dosyaYeri, "obje", 19076); //Yılbaşı Ağacı
  181. case 1: Yedit->Obje(19054, yPos[0], yPos[1], yPos[2], 0, 0, 0), dini_IntSet(dosyaYeri, "obje", 19054); //Koyu Kırmızı Kutu
  182. case 2: Yedit->Obje(19055, yPos[0], yPos[1], yPos[2], 0, 0, 0), dini_IntSet(dosyaYeri, "obje", 19055); //Sarı Kutu
  183. case 3: Yedit->Obje(19056, yPos[0], yPos[1], yPos[2], 0, 0, 0), dini_IntSet(dosyaYeri, "obje", 19056); //Gökkuşağı Kutu
  184. case 4: Yedit->Obje(19057, yPos[0], yPos[1], yPos[2], 0, 0, 0), dini_IntSet(dosyaYeri, "obje", 19057); //Kırmızı Yıldızlı Kutu
  185. case 5: Yedit->Obje(19058, yPos[0], yPos[1], yPos[2], 0, 0, 0), dini_IntSet(dosyaYeri, "obje", 19058); //Siyah Kutu
  186. }
  187. SetPlayerPos(playerid, yPos[0]+0.6, yPos[1]+0.6, yPos[2]+0.8);
  188. new string[126];
  189. format(string,156,"{00FF00}BILGI: {ffffff}Bu yılbaşı objesini düzenlemek için {ff0000}/yduzenle %i {ffffff}yazınız.", _yCount-1);
  190. SendClientMessage(playerid, 0xFF0000FF, string);
  191. dini_FloatSet(dosyaYeri, "x", yPos[0]);
  192. dini_FloatSet(dosyaYeri, "y", yPos[1]);
  193. dini_FloatSet(dosyaYeri, "z", yPos[2]);
  194. dini_FloatSet(dosyaYeri, "rotx", 0);
  195. dini_FloatSet(dosyaYeri, "roty", 0);
  196. dini_FloatSet(dosyaYeri, "rotz", 0);
  197. SetPVarInt(playerid, "Yedit_Duzenliyor", 0);
  198. }
  199. return true;
  200. }
  201.  
  202. stock Yedit_Obje(objeid, Float:_yPosX, Float:_yPosY, Float:_yPosZ, Float:_yRotY, Float:_yRotX, Float:_yRotZ){
  203. new string[126];
  204. YeditData[_yCount][yObje] = CreateObject(objeid, _yPosX, _yPosY, _yPosZ, _yRotX, _yRotY, _yRotZ);
  205. format(string,126,"%s(%i)", GetYeditObjectName(objeid), _yCount);
  206. YeditData[_yCount][yX] = _yPosX;
  207. YeditData[_yCount][yY] = _yPosY;
  208. YeditData[_yCount][yZ] = _yPosZ;
  209. YeditData[_yCount][yRotX] = _yRotX;
  210. YeditData[_yCount][yRotY] = _yRotY;
  211. YeditData[_yCount][yRotZ] = _yRotZ;
  212. YeditData[_yCount][yLabel] = Create3DTextLabel(string, 0xea1354a9, _yPosX, _yPosY, _yPosZ, 5.0, 0, 0);
  213. printf("YEDIT: %s(%i) yüklendi.", GetYeditObjectName(objeid), _yCount);
  214. _yCount++;
  215. return true;
  216. }
  217.  
  218. stock GetYeditObjectName(itemid){
  219. new iString[56];
  220. switch(itemid)
  221. {
  222. case 19076: format(iString,sizeof iString, "Yılbaşı Ağacı");
  223. case 19054: format(iString,sizeof iString, "Koyu Kırmızı Kutu");
  224. case 19055: format(iString,sizeof iString, "Sarı Kutu");
  225. case 19056: format(iString,sizeof iString, "Gökkuşağı Kutu");
  226. case 19057: format(iString,sizeof iString, "Kırmızı Yıldızlı Kutu");
  227. case 19058: format(iString,sizeof iString, "Siyah Kutu");
  228. }
  229. return iString;
  230. }
Advertisement
Add Comment
Please, Sign In to add comment