Guest User

Untitled

a guest
Jul 24th, 2018
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.83 KB | None | 0 0
  1. /*
  2. Görev Sistemi. Kodlayan: Zoxy
  3. */
  4.  
  5. #include <a_samp>
  6. #include <zcmd>
  7. // ------------------------ DEĞİŞKENLER -----------------------------
  8. new KurbanID[MAX_PLAYERS];
  9. new GorevDakika[MAX_PLAYERS];
  10. new GorevOdul[MAX_PLAYERS];
  11. new Text:GorevTD[MAX_PLAYERS][7];
  12.  
  13. #define ACTOR_X 1215.0837 // Actorun X pozisyonudur.
  14. #define ACTOR_Y -1653.7765 // Actorun Y Pozisyonudur.
  15. #define ACTOR_Z 11.7969 // Actorun Z pozisyonudur.
  16. #define ACTOR_ROTATION 264.9668 // Actorun bakış açısı.
  17. #define ACTOR_SKINID 33 // Actorun kullanacağı Skin id.
  18.  
  19. #define DIALOG_GOREV 8885 // Dialog ID. Mod ile çakışırsa buradan değiştirebilirsiniz.
  20. #define ODUL_PARA 100000 // Görevi bitirdiği zaman verilecek para. Örnek olarak eğer 100000 yazarsanız 100000/dakika
  21. #define ODUL_SKOR 2 // Görevi bitirdiği zaman verilecek skor.
  22. // ------------------------------------------------------------------
  23. public OnFilterScriptInit()
  24. {
  25. print("\n--------------------------------------");
  26. print(" Görev Sistemi yüklenmiştir. Kodlayan: Zoxy");
  27. print("--------------------------------------\n");
  28.  
  29. SetTimer("GorevTimer",1000,true);
  30.  
  31. CreateActor(33,ACTOR_X,ACTOR_Y,ACTOR_Z,ACTOR_ROTATION);
  32.  
  33. Create3DTextLabel("{FF0000}Görev almak istiyorsan {00FF5E}Y {FF0000}tuşuna bas.",-1,ACTOR_X,ACTOR_Y,ACTOR_Z,15.0,0,0);
  34. return 1;
  35. }
  36.  
  37. public OnFilterScriptExit()
  38. {
  39. return 1;
  40. }
  41.  
  42. public OnPlayerConnect(playerid)
  43. {
  44. TDYukle(playerid);
  45. KurbanID[playerid] = INVALID_PLAYER_ID;
  46. GorevDakika[playerid] = 0;
  47. GorevOdul[playerid] = 0;
  48. return 1;
  49. }
  50.  
  51. public OnPlayerDisconnect(playerid, reason)
  52. {
  53. for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
  54. {
  55. if(IsPlayerConnected(i))
  56. {
  57. if(KurbanID[i] == playerid && GorevDakika[i] > 0)
  58. {
  59. KurbanID[i] = INVALID_PLAYER_ID;
  60. GorevDakika[i] = 0;
  61. GorevOdul[i] = 0;
  62. TDGizle(i);
  63. SendClientMessage(i,-1,"{00FF6A}[+] {FFFFFF}Kurban oyundan çıktı, görev başarısız.");
  64. }
  65. }
  66. }
  67. TDGizle(playerid);
  68. KurbanID[playerid] = INVALID_PLAYER_ID;
  69. GorevDakika[playerid] = 0;
  70. GorevOdul[playerid] = 0;
  71. return 1;
  72. }
  73.  
  74. public OnPlayerDeath(playerid, killerid, reason)
  75. {
  76. if(killerid != INVALID_PLAYER_ID)
  77. {
  78. if(KurbanID[killerid] == playerid && GorevDakika[killerid] > 0)
  79. {
  80. KurbanID[killerid] = INVALID_PLAYER_ID;
  81. GorevDakika[killerid] = 0;
  82. GivePlayerMoney(killerid,GorevOdul[killerid]);
  83. SetPlayerScore(killerid,GetPlayerScore(killerid) + ODUL_SKOR);
  84. TDGizle(killerid);
  85. new str[100];
  86. #if ODUL_SKOR > 0
  87. {
  88. format(str,sizeof(str),"{00FF6A}[+] {FFFFFF}Görevi başarıyla tamamlayarak {00FF6A}%d$ ve %d skor {FFFFFF}kazandınız.",GorevOdul[killerid],ODUL_SKOR);
  89. }
  90. #else
  91. {
  92. format(str,sizeof(str),"{00FF6A}[+] {FFFFFF}Görevi başarıyla tamamlayarak {00FF6A}%d$ {FFFFFF}kazandınız.",GorevOdul[killerid]);
  93. }
  94. #endif
  95. SendClientMessage(killerid,-1,str);
  96. GorevOdul[killerid] = 0;
  97. }
  98. }
  99. return 1;
  100. }
  101.  
  102. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  103. {
  104. if(newkeys & KEY_YES && !IsPlayerInAnyVehicle(playerid) && IsPlayerInRangeOfPoint(playerid,3.5,ACTOR_X,ACTOR_Y,ACTOR_Z))
  105. {
  106. if(KurbanID[playerid] != INVALID_PLAYER_ID) return SendClientMessage(playerid,-1,"{FF0000}[!] {FFFFFF}Zaten bir göreviniz var.");
  107. if(OnlinePlayers() < 4) return SendClientMessage(playerid,-1,"{FF0000}[!] {FFFFFF}Sunucuda en az 4 kişi bulunmak zorundadır.");
  108. new pID = GetRandomPlayer();
  109. if(pID == INVALID_PLAYER_ID || pID == playerid) return SendClientMessage(playerid,-1,"{FF0000}[!] {FFFFFF}Sana uygun birisini bulamadım, tekrar dene.");
  110. new string[350];
  111. format(string,sizeof(string),"{FFFFFF}Kurbanın {2CE817}%s, {FFFFFF}bu kişiyi kaç dakikada öldürebilirsin? Minimum 3, maksimum 30 dakika girebilirsiniz.\n\n{FF0000}NOT: {FFFFFF}Dakika ne kadar az olursa o kadar fazla para kazanırsınız. Oyundan çıktığında görev iptal olur.",getName(pID));
  112. ShowPlayerDialog(playerid,DIALOG_GOREV,DIALOG_STYLE_INPUT,"Görev",string,"Devam","Kapat");
  113. SetPVarInt(playerid,"KurbanID",pID);
  114. }
  115. return 1;
  116. }
  117. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  118. {
  119. if(dialogid == DIALOG_GOREV)
  120. {
  121. if(!response) return DeletePVar(playerid,"KurbanID");
  122. if(response)
  123. {
  124. new string[400];
  125. if(isnull(inputtext))
  126. {
  127. format(string,sizeof(string),"{FFFFFF}Kurbanın {2CE817}%s, {FFFFFF}bu kişiyi kaç dakikada öldürebilirsin? Minimum 3, maksimum 30 dakika girebilirsiniz.\n\n{FF0000}NOT: {FFFFFF}Dakika ne kadar az olursa o kadar fazla para kazanırsınız. Oyundan çıktığında görev iptal olur.",getName(GetPVarInt(playerid,"KurbanID")));
  128. ShowPlayerDialog(playerid,DIALOG_GOREV,DIALOG_STYLE_INPUT,"Görev",string,"Devam","Kapat");
  129. return 1;
  130. }
  131. if(!IsNumeric(inputtext))
  132. {
  133. format(string,sizeof(string),"{FFFFFF}Kurbanın {2CE817}%s, {FFFFFF}bu kişiyi kaç dakikada öldürebilirsin? Minimum 3, maksimum 30 dakika girebilirsiniz.\n\n{FF0000}NOT: {FFFFFF}Dakika ne kadar az olursa o kadar fazla para kazanırsınız. Oyundan çıktığında görev iptal olur.",getName(GetPVarInt(playerid,"KurbanID")));
  134. ShowPlayerDialog(playerid,DIALOG_GOREV,DIALOG_STYLE_INPUT,"Görev",string,"Devam","Kapat");
  135. return 1;
  136. }
  137. if(strval(inputtext) < 3 || strval(inputtext) > 30)
  138. {
  139. format(string,sizeof(string),"{FFFFFF}Kurbanın {2CE817}%s, {FFFFFF}bu kişiyi kaç dakikada öldürebilirsin? Minimum 3, maksimum 30 dakika girebilirsiniz.\n\n{FF0000}NOT: {FFFFFF}Dakika ne kadar az olursa o kadar fazla para kazanırsınız. Oyundan çıktığında görev iptal olur.",getName(GetPVarInt(playerid,"KurbanID")));
  140. ShowPlayerDialog(playerid,DIALOG_GOREV,DIALOG_STYLE_INPUT,"Görev",string,"Devam","Kapat");
  141. return 1;
  142. }
  143. new odul = ODUL_PARA/strval(inputtext);
  144. SetPVarInt(playerid,"GorevDakika",strval(inputtext));
  145. format(string,sizeof(string),"{C2A2DA}Kurban: %s\n{C2A2DA}Dakika: %d\n{C2A2DA}Ödül: %d$\n\n{FFFFFF}Bu görevi almak istediğinize emin misiniz?",getName(GetPVarInt(playerid,"KurbanID")),strval(inputtext),odul);
  146. ShowPlayerDialog(playerid,DIALOG_GOREV+1,DIALOG_STYLE_MSGBOX,"Görev - Onayla",string,"Evet","Hayır");
  147. }
  148. }
  149. if(dialogid == DIALOG_GOREV+1)
  150. {
  151. if(!response)
  152. {
  153. DeletePVar(playerid,"KurbanID");
  154. DeletePVar(playerid,"GorevDakika");
  155. return 1;
  156. }
  157. if(response)
  158. {
  159. KurbanID[playerid] = GetPVarInt(playerid,"KurbanID");
  160. GorevDakika[playerid] = GetPVarInt(playerid,"GorevDakika")*60;
  161. GorevOdul[playerid] = floatround(ODUL_PARA/GetPVarInt(playerid,"GorevDakika"));
  162. TextDrawShowForPlayer(playerid,GorevTD[playerid][0]);
  163. TextDrawShowForPlayer(playerid,GorevTD[playerid][1]);
  164. TextDrawShowForPlayer(playerid,GorevTD[playerid][2]);
  165. TextDrawShowForPlayer(playerid,GorevTD[playerid][3]);
  166. TextDrawShowForPlayer(playerid,GorevTD[playerid][4]);
  167. TextDrawShowForPlayer(playerid,GorevTD[playerid][5]);
  168. TextDrawShowForPlayer(playerid,GorevTD[playerid][6]);
  169.  
  170. SendClientMessage(playerid,-1,"{00FF6A}[+] {FFFFFF}Süre başladı, görevini bitirdiğin zaman paranı alacaksın. /goreviptal ile iptal edebilirsin.");
  171. }
  172. }
  173. return 1;
  174. }
  175. // ------------------------------ KOMUTLAR --------------------------------
  176. CMD:goreviptal(playerid)
  177. {
  178. if(KurbanID[playerid] == INVALID_PLAYER_ID) return SendClientMessage(playerid,-1,"{FF0000}[!] {FFFFFF}Bir göreviniz yok.");
  179.  
  180. TDGizle(playerid);
  181. KurbanID[playerid] = INVALID_PLAYER_ID;
  182. GorevDakika[playerid] = 0;
  183. GorevOdul[playerid] = 0;
  184. SendClientMessage(playerid,-1,"{00FF6A}[+] {FFFFFF}Görev iptal edildi.");
  185. return 1;
  186. }
  187. // --------------------------------------------------------------------------
  188. // -------------------------- FONKSIYONLAR ---------------------------
  189. forward GorevTimer();
  190. public GorevTimer()
  191. {
  192. for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
  193. {
  194. if(IsPlayerConnected(i))
  195. {
  196. if(KurbanID[i] != INVALID_PLAYER_ID && GorevDakika[i] >= 1)
  197. {
  198. GorevDakika[i]--;
  199. new str[100];
  200. format(str,sizeof(str),"%s",getName(KurbanID[i]));
  201. TextDrawSetString(GorevTD[i][2],str);
  202. format(str,sizeof(str),"%s",TimeConvert(GorevDakika[i]));
  203. TextDrawSetString(GorevTD[i][4],str);
  204. format(str,sizeof(str),"%d$",GorevOdul[i]);
  205. TextDrawSetString(GorevTD[i][6],str);
  206.  
  207. if(GorevDakika[i] == 0)
  208. {
  209. KurbanID[i] = INVALID_PLAYER_ID;
  210. GorevDakika[i] = 0;
  211. GorevOdul[i] = 0;
  212. TDGizle(i);
  213. SendClientMessage(i,-1,"{00FF6A}[+] {FFFFFF}Süre doldu, görev başarısız.");
  214. }
  215. }
  216. }
  217. }
  218. return 1;
  219. }
  220. TimeConvert(seconds, tarz=0, saat=0)
  221. {
  222. new tmp[16];
  223. new minutes = floatround(seconds/60);
  224. seconds -= minutes*60;
  225. if(minutes >= 60)
  226. {
  227. saat++;
  228. }
  229. if(tarz == 1)
  230. {
  231. format(tmp, sizeof(tmp), "%d:%02d", minutes, seconds);
  232. } else {
  233. format(tmp, sizeof(tmp), "%02d:%02d:%02d", saat, minutes, seconds);
  234. }
  235. return tmp;
  236. }
  237.  
  238. IsNumeric(const string[])
  239. {
  240. for (new i = 0, j = strlen(string); i < j; i++)
  241. {
  242. if (string[i] > '9' || string[i] < '0') return 0;
  243. }
  244. return 1;
  245. }
  246. stock getName(playerid)
  247. {
  248. new name[MAX_PLAYER_NAME];
  249. GetPlayerName(playerid,name,sizeof(name));
  250. return name;
  251. }
  252. stock OnlinePlayers()
  253. {
  254. new count = 0;
  255. for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
  256. {
  257. if(IsPlayerConnected(i))
  258. {
  259. count++;
  260. }
  261. }
  262. return count;
  263. }
  264. stock GetRandomPlayer()
  265. {
  266. new array[MAX_PLAYERS],idx;
  267. for(new i = 0; i <= GetPlayerPoolSize(); i ++)
  268. {
  269. if(IsPlayerConnected(i))
  270. {
  271. array[idx] = i;
  272. idx++;
  273. }
  274. }
  275. return array[random(idx)];
  276. }
  277. /*stock GetRandomPlayer()
  278.  
  279. {
  280.  
  281. new poolsize = GetPlayerPoolSize(), array[poolsize], idx;
  282.  
  283. for(new i = 0; i <= poolsize; i ++)
  284.  
  285. {
  286.  
  287. if(IsPlayerConnected(i))
  288.  
  289. {
  290.  
  291. array[idx] = i;
  292.  
  293. idx ++;
  294.  
  295. }
  296.  
  297. }
  298.  
  299. return array[random(idx)];
  300.  
  301. }*/
  302. stock TDYukle(playerid)
  303. {
  304. GorevTD[playerid][0] = TextDrawCreate(641.199951, 153.073333, "usebox");
  305. TextDrawLetterSize(GorevTD[playerid][0], 0.000000, 7.067037);
  306. TextDrawTextSize(GorevTD[playerid][0], 566.799987, 0.000000);
  307. TextDrawAlignment(GorevTD[playerid][0], 1);
  308. TextDrawColor(GorevTD[playerid][0], 0);
  309. TextDrawUseBox(GorevTD[playerid][0], true);
  310. TextDrawBoxColor(GorevTD[playerid][0], 102);
  311. TextDrawSetShadow(GorevTD[playerid][0], 0);
  312. TextDrawSetOutline(GorevTD[playerid][0], 0);
  313. TextDrawFont(GorevTD[playerid][0], 0);
  314.  
  315. GorevTD[playerid][1] = TextDrawCreate(572.799987, 152.319976, "Kurban:");
  316. TextDrawLetterSize(GorevTD[playerid][1], 0.226000, 1.338666);
  317. TextDrawAlignment(GorevTD[playerid][1], 1);
  318. TextDrawColor(GorevTD[playerid][1], 16777215);
  319. TextDrawSetShadow(GorevTD[playerid][1], 0);
  320. TextDrawSetOutline(GorevTD[playerid][1], 1);
  321. TextDrawBackgroundColor(GorevTD[playerid][1], 51);
  322. TextDrawFont(GorevTD[playerid][1], 1);
  323. TextDrawSetProportional(GorevTD[playerid][1], 1);
  324.  
  325. GorevTD[playerid][2] = TextDrawCreate(605.599975, 153.813308, "ZiqZaq");
  326. TextDrawLetterSize(GorevTD[playerid][2], 0.206000, 1.114666);
  327. TextDrawAlignment(GorevTD[playerid][2], 1);
  328. TextDrawColor(GorevTD[playerid][2], -65281);
  329. TextDrawSetShadow(GorevTD[playerid][2], 0);
  330. TextDrawSetOutline(GorevTD[playerid][2], 1);
  331. TextDrawBackgroundColor(GorevTD[playerid][2], 51);
  332. TextDrawFont(GorevTD[playerid][2], 1);
  333. TextDrawSetProportional(GorevTD[playerid][2], 1);
  334.  
  335. GorevTD[playerid][3] = TextDrawCreate(573.799987, 168.253311, "Kalan:");
  336. TextDrawLetterSize(GorevTD[playerid][3], 0.226000, 1.338666);
  337. TextDrawAlignment(GorevTD[playerid][3], 1);
  338. TextDrawColor(GorevTD[playerid][3], 16777215);
  339. TextDrawSetShadow(GorevTD[playerid][3], 0);
  340. TextDrawSetOutline(GorevTD[playerid][3], 1);
  341. TextDrawBackgroundColor(GorevTD[playerid][3], 51);
  342. TextDrawFont(GorevTD[playerid][3], 1);
  343. TextDrawSetProportional(GorevTD[playerid][3], 1);
  344.  
  345. GorevTD[playerid][4] = TextDrawCreate(602.599975, 169.746627, "00:00");
  346. TextDrawLetterSize(GorevTD[playerid][4], 0.206000, 1.114666);
  347. TextDrawAlignment(GorevTD[playerid][4], 1);
  348. TextDrawColor(GorevTD[playerid][4], -65281);
  349. TextDrawSetShadow(GorevTD[playerid][4], 0);
  350. TextDrawSetOutline(GorevTD[playerid][4], 1);
  351. TextDrawBackgroundColor(GorevTD[playerid][4], 51);
  352. TextDrawFont(GorevTD[playerid][4], 1);
  353. TextDrawSetProportional(GorevTD[playerid][4], 1);
  354.  
  355. GorevTD[playerid][5] = TextDrawCreate(574.799987, 191.653305, "Odul:");
  356. TextDrawLetterSize(GorevTD[playerid][5], 0.226000, 1.338666);
  357. TextDrawAlignment(GorevTD[playerid][5], 1);
  358. TextDrawColor(GorevTD[playerid][5], 16777215);
  359. TextDrawSetShadow(GorevTD[playerid][5], 0);
  360. TextDrawSetOutline(GorevTD[playerid][5], 1);
  361. TextDrawBackgroundColor(GorevTD[playerid][5], 51);
  362. TextDrawFont(GorevTD[playerid][5], 1);
  363. TextDrawSetProportional(GorevTD[playerid][5], 1);
  364.  
  365. GorevTD[playerid][6] = TextDrawCreate(603.599975, 193.146606, "100000$");
  366. TextDrawLetterSize(GorevTD[playerid][6], 0.206000, 1.114666);
  367. TextDrawAlignment(GorevTD[playerid][6], 1);
  368. TextDrawColor(GorevTD[playerid][6], -65281);
  369. TextDrawSetShadow(GorevTD[playerid][6], 0);
  370. TextDrawSetOutline(GorevTD[playerid][6], 1);
  371. TextDrawBackgroundColor(GorevTD[playerid][6], 51);
  372. TextDrawFont(GorevTD[playerid][6], 1);
  373. TextDrawSetProportional(GorevTD[playerid][6], 1);
  374.  
  375. return 1;
  376.  
  377. }
  378. stock TDGizle(playerid)
  379. {
  380. for(new i; i<7; i++)
  381. {
  382. TextDrawHideForPlayer(playerid,GorevTD[playerid][i]);
  383. }
  384. }
  385. // -----------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment