Advertisement
Kralcik

Dinamik Aktör Sistemi Türkçe

Sep 8th, 2016
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.92 KB | None | 0 0
  1. #define FILTERSCRIPT
  2.  
  3. #include <a_samp>
  4. #include <a_sampdb>
  5. #include <zcmd>
  6. #include <sscanf2>
  7.  
  8. #define function%0(%1) forward%0(%1);public%0(%1)
  9. #define ADosya ("Aktor.db")
  10.  
  11.  
  12. enum AktorInfo
  13. {
  14. AktorSkin,
  15. Float: AktorX,
  16. Float: AktorY,
  17. Float: AktorZ,
  18. Float: AktorA,
  19. AktorVirtual,
  20. AktorYazi[360],
  21. AktorAd[32],
  22. Aaktif,
  23. Aktor,
  24. Text3D: AktorLabel
  25. }
  26. new Ainfo[MAX_ACTORS][AktorInfo];
  27.  
  28. new gValue[128];
  29. new DB:ADB;
  30.  
  31. new Aktor_AI = 1;
  32.  
  33. public OnFilterScriptInit()
  34. {
  35. print("\n--------------------------------------");
  36. print(" _Backup & Kralcik dinamik aktör sistemi yüklendi!"); // This is credits do not delete !
  37. print("--------------------------------------\n"); // ( Türkçeden anlamayan amipler için ingilizce yazdım )
  38. if(!fexist(ADosya))
  39. {
  40. fcreate(ADosya);
  41. printf("%s adlı veritabanı bulunamadı üzümle ben senin için oluştururum.", ADosya);
  42. }
  43. ADB = db_open(ADosya); // dbyi açıyoruz
  44. AktorYukle(); // db yi açtıktan sonra Aktörlerimizi yüklüyoruz.
  45. return 1;
  46. }
  47.  
  48.  
  49.  
  50. public OnFilterScriptExit()
  51. {
  52. db_close(ADB); // dbyi kapatıyoruz
  53. return 1;
  54. }
  55.  
  56.  
  57. public OnPlayerRequestClass(playerid, classid)
  58. {
  59. return 1;
  60. }
  61.  
  62. public OnPlayerConnect(playerid)
  63. {
  64. return 1;
  65. }
  66.  
  67. public OnPlayerDisconnect(playerid, reason)
  68. {
  69. return 1;
  70. }
  71.  
  72. public OnPlayerSpawn(playerid)
  73. {
  74. return 1;
  75. }
  76.  
  77. public OnPlayerDeath(playerid, killerid, reason)
  78. {
  79. return 1;
  80. }
  81.  
  82. public OnVehicleSpawn(vehicleid)
  83. {
  84. return 1;
  85. }
  86.  
  87. public OnVehicleDeath(vehicleid, killerid)
  88. {
  89. return 1;
  90. }
  91.  
  92. public OnPlayerText(playerid, text[])
  93. {
  94. return 1;
  95. }
  96.  
  97. public OnPlayerCommandText(playerid, cmdtext[])
  98. {
  99. return 0;
  100. }
  101.  
  102. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  103. {
  104. return 1;
  105. }
  106.  
  107. public OnPlayerExitVehicle(playerid, vehicleid)
  108. {
  109. return 1;
  110. }
  111.  
  112. public OnPlayerStateChange(playerid, newstate, oldstate)
  113. {
  114. return 1;
  115. }
  116.  
  117. public OnPlayerEnterCheckpoint(playerid)
  118. {
  119. return 1;
  120. }
  121.  
  122. public OnPlayerLeaveCheckpoint(playerid)
  123. {
  124. return 1;
  125. }
  126.  
  127. public OnPlayerEnterRaceCheckpoint(playerid)
  128. {
  129. return 1;
  130. }
  131.  
  132. public OnPlayerLeaveRaceCheckpoint(playerid)
  133. {
  134. return 1;
  135. }
  136.  
  137. public OnRconCommand(cmd[])
  138. {
  139. return 1;
  140. }
  141.  
  142. public OnPlayerRequestSpawn(playerid)
  143. {
  144. return 1;
  145. }
  146.  
  147. public OnObjectMoved(objectid)
  148. {
  149. return 1;
  150. }
  151.  
  152. public OnPlayerObjectMoved(playerid, objectid)
  153. {
  154. return 1;
  155. }
  156.  
  157. public OnPlayerPickUpPickup(playerid, pickupid)
  158. {
  159. return 1;
  160. }
  161.  
  162. public OnVehicleMod(playerid, vehicleid, componentid)
  163. {
  164. return 1;
  165. }
  166.  
  167. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  168. {
  169. return 1;
  170. }
  171.  
  172. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  173. {
  174. return 1;
  175. }
  176.  
  177. public OnPlayerSelectedMenuRow(playerid, row)
  178. {
  179. return 1;
  180. }
  181.  
  182. public OnPlayerExitedMenu(playerid)
  183. {
  184. return 1;
  185. }
  186.  
  187. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  188. {
  189. return 1;
  190. }
  191.  
  192. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  193. {
  194. return 1;
  195. }
  196.  
  197. public OnRconLoginAttempt(ip[], password[], success)
  198. {
  199. return 1;
  200. }
  201.  
  202. public OnPlayerUpdate(playerid)
  203. {
  204. return 1;
  205. }
  206.  
  207. public OnPlayerStreamIn(playerid, forplayerid)
  208. {
  209. return 1;
  210. }
  211.  
  212. public OnPlayerStreamOut(playerid, forplayerid)
  213. {
  214. return 1;
  215. }
  216.  
  217. public OnVehicleStreamIn(vehicleid, forplayerid)
  218. {
  219. return 1;
  220. }
  221.  
  222. public OnVehicleStreamOut(vehicleid, forplayerid)
  223. {
  224. return 1;
  225. }
  226.  
  227. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  228. {
  229. return 1;
  230. }
  231.  
  232. CMD:aktorekle(playerid, params[])
  233. {
  234. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xE60000FF, "Bu komutu sadece adminler kullanabilir!");
  235. if(GetLastID() > MAX_ACTORS) return SendClientMessage(playerid, 0xE60000FF, "Daha fazla aktör oluşturamazsınız!");
  236. new Float:PPos[4], string[128], query[256],skin,actname[32],yazi[250];
  237. GetPlayerPos(playerid, PPos[0], PPos[1], PPos[2]);
  238. GetPlayerFacingAngle(playerid,PPos[3]);
  239. if(sscanf(params,"ssi",actname,yazi,skin)) return SendClientMessage(playerid, 0xE60000FF, "Kullanım: /Aktorekle [isim] [Yazi] [Skin]");
  240. format(query, sizeof(query), "INSERT INTO `AktorDB` (`AktorX`,`AktorY`,`AktorZ`, `AktorNeymim`,`Yazi`, `AktorVirtual`, `AktorA`,`Skin`,`Aaktif`) VALUES('%f','%f','%f','%s','%s','%i','%f','%i','1');",PPos[0], PPos[1], PPos[2],actname,yazi,GetPlayerVirtualWorld(playerid),PPos[3],skin);
  241. db_query(ADB,query);
  242. format(string,sizeof(string),"%s isimli %i skinli bir aktör oluşturdunuz!", actname,skin);
  243. SendClientMessage(playerid, 0xFFFFFFFF, string);
  244. SetPlayerPos(playerid, PPos[0] + (1.5 * floatsin(-PPos[3], degrees)), PPos[1] + (1.5 * floatcos(-PPos[3], degrees)), PPos[2]);
  245. AktorEkle(actname,Aktor_AI,yazi,skin,PPos[0],PPos[1],PPos[2],PPos[3],GetPlayerVirtualWorld(playerid),1);
  246. Aktor_AI ++;
  247. return 1;
  248. }
  249. CMD:aktorsil(playerid,params[])
  250. {
  251. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xE60000FF, "Bu komutu sadece adminler kullanabilir!");
  252. new ID;
  253. if(sscanf(params,"i",ID)) return SendClientMessage(playerid,0xE60000FF,"Kullanım: /aktorsil [AKTOR ID]");
  254. new query[250];
  255. Ainfo[ID][Aaktif] = 0;
  256. format(query, sizeof(query), "UPDATE `AktorDB` SET `Aaktif` = '0' WHERE `AktorNeymim` = '%s'",Ainfo[ID][AktorAd]);
  257. db_query(ADB,query);
  258. DestroyActor(Ainfo[ID][Aktor]);
  259. Delete3DTextLabel(Ainfo[ID][AktorLabel]);
  260. SendClientMessage(playerid,-1,"Başarıyla aktorü sildiniz!");
  261. return true;
  262.  
  263. }
  264. CMD:aktorduzenle(playerid,params[])
  265. {
  266. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xE60000FF, "Bu komutu sadece adminler kullanabilir!");
  267.  
  268. new akid ,yazi[256],skin,Float:PPos[4],actname[32],query[500];
  269.  
  270. if(sscanf(params,"is[32]s[250]i,",akid,actname,yazi,skin)) return SendClientMessage(playerid,0xE60000FF,"Kullanım : /aktorduzenle [AktorID] [Yeni isim] [Yazi] [Skin]");
  271. if(Ainfo[akid][Aaktif] == 0) return SendClientMessage(playerid, 0xE60000FF ,"Bu aktör aktif durumda değil!");
  272.  
  273. GetPlayerPos(playerid, PPos[0], PPos[1], PPos[2]);
  274. GetPlayerFacingAngle(playerid,PPos[3]);
  275.  
  276. DestroyActor(Ainfo[akid][Aktor]);
  277. Delete3DTextLabel(Ainfo[akid][AktorLabel]);
  278. new ad[32];
  279. format(ad,32,"%s",Ainfo[akid][AktorAd]);
  280.  
  281. format(query, sizeof(query), "UPDATE `AktorDB` SET `AktorNeymim` = '%s' WHERE `AktorNeymim` = '%s'",actname,ad);
  282. db_query(ADB,query);
  283.  
  284. format(query, sizeof(query), "UPDATE `AktorDB` SET `AktorX` = '%f' WHERE `AktorNeymim` = '%s'",PPos[0],ad);
  285. db_query(ADB,query);
  286. format(query, sizeof(query), "UPDATE `AktorDB` SET `AktorY` = '%f' WHERE `AktorNeymim` = '%s'",PPos[1],ad);
  287. db_query(ADB,query);
  288. format(query, sizeof(query), "UPDATE `AktorDB` SET `AktorZ` = '%f' WHERE `AktorNeymim` = '%s'",PPos[2],ad);
  289. db_query(ADB,query);
  290. format(query, sizeof(query), "UPDATE `AktorDB` SET `AktorA` = '%f' WHERE `AktorNeymim` = '%s'",PPos[3],ad);
  291. db_query(ADB,query);
  292. format(query, sizeof(query), "UPDATE `AktorDB` SET `Skin` = '%i' WHERE `AktorNeymim` = '%s'",skin,ad);
  293. db_query(ADB,query);
  294. format(query, sizeof(query), "UPDATE `AktorDB` SET `Yazi` = '%s' WHERE `AktorNeymim` = '%s'",yazi,ad);
  295. db_query(ADB,query);
  296. format(query, sizeof(query), "UPDATE `AktorDB` SET `AktorVirtual` = '%i' WHERE `AktorNeymim` = '%s'",GetPlayerVirtualWorld(playerid),ad);
  297. db_query(ADB,query);
  298.  
  299. SetPlayerPos(playerid, PPos[0] + (1.5 * floatsin(-PPos[3], degrees)), PPos[1] + (1.5 * floatcos(-PPos[3], degrees)), PPos[2]);
  300. AktorEkle(actname,akid,yazi,skin,PPos[0],PPos[1],PPos[2],PPos[3],GetPlayerVirtualWorld(playerid),1);
  301. return true;
  302. }
  303. /// Stocklar
  304.  
  305. stock GetLastID()
  306. {
  307. new DBResult:qresult, count = 0, Value[128];
  308. qresult = db_query(ADB, "SELECT * FROM `AktorDB` ORDER BY `ID` DESC LIMIT 1");
  309. count = db_num_rows(qresult);
  310. for(new a=0;a<count;a++)
  311. {
  312. if(count <= MAX_ACTORS)
  313. {
  314. db_get_field_assoc(qresult, "ID", Value, 5); gValue[a] = Value[a]+1;
  315. db_next_row(qresult);
  316. }
  317. }
  318. db_free_result(qresult);
  319. return 1;
  320. }
  321.  
  322. stock fcreate(filename[])
  323. {
  324. if (fexist(filename)){return false;}
  325. new File:fhandle = fopen(filename,io_write);
  326. fclose(fhandle);
  327. return true;
  328. }
  329.  
  330. stock AktorYukle()
  331. {
  332.  
  333. new query[356], DBResult:qresult, count = 0, value[128],string[356],Float:xim,Float:yim,Float:zim,Float:aim,gelenyazi[356],aktorneymim[32],
  334. aktorvirtualim,askinim,adurum3;
  335. if(!db_query(DB: ADB, "SELECT * FROM `AktorDB`"))
  336. {
  337. print("Aktor tablosu bulunamadı! Ben senin icin oluşturuyorum...");
  338. format(query,sizeof(query),"CREATE TABLE IF NOT EXISTS `AktorDB` (`ID` INTEGER PRIMARY KEY AUTOINCREMENT,`AktorNeymim` TEXT,`AktorVirtual`INTEGER ,`AktorX` TEXT,`AktorA` TEXT,`AktorY` TEXT,`AktorZ` TEXT,`Skin` INTEGER ,`Aaktif` INTEGER ,`Yazi` TEXT)");
  339. db_query(ADB,query);
  340. print("--------------------------------------\n");
  341. print("Aktör tablosu oluşturuldu sunucuya restart atman gerekiyor...");
  342. print("--------------------------------------\n");
  343. SendRconCommand("exit");
  344. }
  345. else
  346. {
  347. qresult = db_query(ADB, "SELECT * FROM `AktorDB`");
  348. count = db_num_rows(qresult);
  349. for(new a=0;a<count;a++)
  350. {
  351. if(count >= 1 && count <= MAX_ACTORS)
  352. {
  353. db_get_field_assoc(qresult, "AktorX", value, 20); xim = floatstr(value);
  354. db_get_field_assoc(qresult, "AktorY", value, 20); yim = floatstr(value);
  355. db_get_field_assoc(qresult, "AktorZ", value, 20); zim = floatstr(value);
  356. db_get_field_assoc(qresult, "AktorA", value, 20); aim = floatstr(value);
  357. db_get_field_assoc(qresult, "Yazi",string,356); format(gelenyazi,356,string);
  358. db_get_field_assoc(qresult,"AktorNeymim",string,35); format(aktorneymim,32,string);
  359. db_get_field_assoc(qresult, "AktorVirtual", value, 20); aktorvirtualim = strval(value);
  360. db_get_field_assoc(qresult, "Skin", value, 20); askinim = strval(value);
  361. db_get_field_assoc(qresult, "Aaktif", value, 20); adurum3 = strval(value);
  362. if(adurum3 == 1)
  363. {
  364. AktorEkle(aktorneymim,Aktor_AI,gelenyazi,askinim,xim,yim,zim,aim,aktorvirtualim,adurum3);
  365. Aktor_AI++;
  366. }
  367. db_next_row(qresult);
  368.  
  369. }
  370. }
  371. db_free_result(qresult);
  372. print("Backup & Kralcik aktör sistemi şuanda yüklendi.");
  373. print("--------------------------------------\n");
  374. }
  375.  
  376.  
  377.  
  378. return true;
  379. }
  380.  
  381. stock AktorEkle(AktorNeym[],AktorAydi,BilgiYazi[],Smodel,Float:Axxx,Float:Ayyy,Float:Azzz,Float:Aaaa,AVorld,adurum)
  382. {
  383. if(adurum == 1)
  384. {
  385. new dongustr[256];
  386. format(dongustr,256,"%s(%i)\n%s",AktorNeym,AktorAydi,BilgiYazi);
  387. Ainfo[AktorAydi][AktorLabel] = Create3DTextLabel(dongustr, 0x008080FF, Axxx, Ayyy, Azzz, 20.0, AVorld, 0);
  388. Ainfo[AktorAydi][Aktor] = CreateActor(Smodel,Axxx,Ayyy,Azzz,Aaaa);
  389. SetActorVirtualWorld(Ainfo[AktorAydi][Aktor], AVorld);
  390.  
  391. Ainfo[AktorAydi][Aaktif] = 1;
  392. Ainfo[AktorAydi][AktorX] = Axxx;
  393. Ainfo[AktorAydi][AktorY] = Ayyy;
  394. Ainfo[AktorAydi][AktorZ] = Azzz;
  395. Ainfo[AktorAydi][AktorA] = Aaaa;
  396. Ainfo[AktorAydi][AktorVirtual] = AVorld;
  397. Ainfo[AktorAydi][AktorSkin] = Smodel;
  398. format(Ainfo[AktorAydi][AktorAd],32,AktorNeym);
  399. format(Ainfo[AktorAydi][AktorYazi],256,BilgiYazi);
  400. }
  401.  
  402. return true;
  403. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement