Advertisement
Guest User

Untitled

a guest
Apr 20th, 2012
559
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.12 KB | None | 0 0
  1. #define FILTERSCRIPT
  2.  
  3. #include <a_samp>
  4. #include <dini>
  5. #include <sscanf>
  6.  
  7. // Farben
  8. #define BLAU 0x0087FFFF
  9. #define ROT 0xE10000FF
  10. // MAX. Frak
  11. #define MAX_FRAK 1
  12. #define MAX_CARS 100
  13. #define ADMLVL 1338
  14. #define OAMT 24 //fraktion oamt
  15. #define OPARKG 500 // Geld
  16. /* Installation: */
  17. /*
  18. Den ordner "fraccar" erstellen
  19. #define MAX_FRAK auf die Max. anzahl von Fraktionen einstellen (z.B. 24)
  20. ADMLVL (reihe 13) auf das zu gebrauchende Admin level einstellen
  21. OnPlayerStatechange aus den Klammern holen (*/ /*)
  22. bei fdel die Abfrage anch PlayerInfo aus den klammern holen (*/ /*)
  23. Die Adminabfrage bei dem befehl /fnew aus den Klammer holen (//)
  24. heißt alles aus dem klammern!!
  25. */
  26.  
  27. /* Credits */
  28. /*
  29. Die Credits gehen an Myname1997
  30. Währe nett wenn es drinne bleibt :P
  31. */
  32. enum fcinfo
  33. {
  34. modelid,
  35. Float:fcx,
  36. Float:fcy,
  37. Float:fcz,
  38. Float:fca,
  39. fcc1,
  40. fcc2,
  41. Frakid,
  42. open,
  43. Opark
  44. }
  45. new FCInfo[MAX_CARS][fcinfo];
  46.  
  47. new Frakcar[MAX_CARS];
  48.  
  49. public OnFilterScriptInit()
  50. {
  51. print("\n--------------------------------------");
  52. print("Frak-Car-System\n");
  53. print("By Myname1997\n");
  54. print("Fahrzeuge werden geladen...\n");
  55. print("--------------------------------------\n");
  56. for(new i=0;i<MAX_CARS;i++)
  57. {
  58. LFC(i);
  59. }
  60. print("\n--------------------------------------");
  61. print("Frak-Car-System\n");
  62. print("By Myname1997\n");
  63. print("Fahrzeuge wurden geladen...\n");
  64. print("--------------------------------------\n");
  65. return 1;
  66. }
  67.  
  68. public OnFilterScriptExit()
  69. {
  70. for(new i=0;i<MAX_CARS;i++)
  71. {
  72. SFC(i);
  73. }
  74. return 1;
  75. }
  76.  
  77. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  78. {
  79. /*for(new i=0;i<MAX_CARS;i++)
  80. {
  81. if(vehicleid == Frakcar[i])
  82. {
  83. if(FCInfo[i][open] == 0 && PlayerInfo[playerid][pLeader] != FCInfo[i][Frakid])
  84. {
  85. SendClientMessage(playerid,ROT,"[ERROR:] Das Fahrzeug ist Abgeschloßen!");
  86. new Float:x,Float:y,Float:z;
  87. GetPlayerPos(playerid,x,y,z);
  88. SetPlayerPos(playerid,x,y,z+1);
  89. }
  90. }
  91. }*/
  92.  
  93. /*for(new i=0;i<MAX_CARS;i++)
  94. {
  95. if(vehicleid == Frakcar[i])
  96. {
  97. if(FCInfo[i][Opark] == 1)
  98. {
  99. SendClientMessage(playerid,ROT,"[ERROR:] Das Fahrzeug ist Abgeschleppt , Freikaufen mit '/freefcar'!");
  100. TogglePlayerControllable(playerid,0);
  101. TogglePlayerControllable(playerid,1);
  102. RemovePlayerFromVehicle(playerid);
  103. }
  104. }
  105. }*/
  106.  
  107. return 1;
  108. }
  109.  
  110. public OnPlayerCommandText(playerid,cmdtext[])
  111. {
  112. new cmd[256];
  113. new tmp[256];
  114. new idx;
  115. cmd = strtok(cmdtext, idx);
  116.  
  117. if(strcmp(cmdtext,"/fopark",true)==0)
  118. {
  119. if(IsPlayerConnected(playerid))
  120. {
  121. if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 525 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  122. {
  123. if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
  124. {
  125. SendClientMessage(playerid, ROT, "[FCAR:] An deinem Abschleppwagen ist kein Auto angehängt!");
  126. return 1;
  127. }
  128. new veh = GetVehicleTrailer(GetPlayerVehicleID(playerid));
  129. for(new i=0;i<MAX_CARS;i++)
  130. {
  131. if(veh == Frakcar[i])
  132. {
  133. /*if(PlayerInfo[playerid][pMember] != OAMT && PlayerInfo[playerid][pLeader] != OAMT)
  134. {
  135. SendClientMessage(playerid,ROT,"[ERROR:] Sie sind kein Ordnungbeamter!");
  136. return 1;
  137. }*/
  138. new Float:x,Float:y,Float:z,Float:a;
  139. GetVehiclePos(veh,x,y,z);
  140. GetVehicleZAngle(veh,a);
  141. FCInfo[i][fcx] = x;
  142. FCInfo[i][fcy] = y;
  143. FCInfo[i][fcz] = z;
  144. FCInfo[i][fca] = a;
  145. FCInfo[i][Opark] = 1;
  146. SFC(i);
  147. SendClientMessage(playerid,BLAU,"[FCAR:] Fahrzeug in verwahrung gegeben!");
  148. }
  149. }
  150. }
  151. }
  152. return 1;
  153. }
  154. if(strcmp(cmdtext,"/freefcar",true)==0)
  155. {
  156. if(IsPlayerConnected(playerid))
  157. {
  158. if(!IsPlayerInAnyVehicle(playerid)) return 1;
  159. new fcar = GetPlayerVehicleID(playerid);
  160. for(new i=0;i<MAX_CARS;i++)
  161. {
  162. if(fcar == Frakcar[i])
  163. {
  164. if(GetPlayerMoney(playerid) < OPARKG) return SendClientMessage(playerid,ROT,"[ERROR:]Nicht genug Geld dabei!");
  165. if(FCInfo[i][Opark] == 0) return SendClientMessage(playerid,ROT,"[ERROR:]Fahrzeug nicht abgeschleppt!");
  166. //if(FCInfo[i][Frakid] != PlayerInfo[playerid][pLeader]) return SendClientmessage(playerid,ROT,"[ERROR:]Nicht ihr Fraktionsfahrezug!");
  167. GivePlayerMoney(playerid,-OAMTG);
  168. FCInfo[i][Opark] = 0;
  169. SendClientMessage(playerid,BLAU,"[FCAR:]Fahrzeug wirde erfolgreich freigekauft! , Nicht Vergessen: Mit '/fpark' neu parken!");
  170. return 1;
  171. }
  172. }
  173. }
  174. return 1;
  175. }
  176.  
  177. if(strcmp(cmdtext,"/flock",true)==0)
  178. {
  179. if(IsPlayerConnected(playerid))
  180. {
  181. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,ROT,"[ERROR:] Sie sind in keinem Auto!");
  182. new veh;
  183. veh = GetPlayerVehicleID(playerid);
  184. for(new i=0;i<MAX_CARS;i++)
  185. {
  186. if(veh == Frakcar[i])
  187. {
  188. /*if(PlayerInfo[playerid][pMember] != FCInfo[i][Frakid] && PlayerInfo[playerid][pLeader] != FCInfo[i][Frakid] && PlayerInfo[playerid][pAdmin] < ADMLVL)
  189. {
  190. SendClientMessage(playerid,ROT,"[ERROR:] Dies ist nicht ihr Fraktion's Auto!");
  191. return 1;
  192. }*/
  193. if(FCInfo[i][open] == 1)
  194. {
  195. FCInfo[i][open] = 0;
  196. SFC(i);
  197. SendClientMessage(playerid,BLAU,"[FCAR:] Fahrzeug abgeschloßen!");
  198. }
  199. else if(FCInfo[i][open] == 0)
  200. {
  201. FCInfo[i][open] = 1;
  202. SFC(i);
  203. SendClientMessage(playerid,BLAU,"[FCAR:] Fahrzeug aufgeschloßen!");
  204. }
  205. }
  206. }
  207. }
  208. return 1;
  209. }
  210.  
  211. if(strcmp(cmdtext,"/fpark",true)==0)
  212. {
  213. if(IsPlayerConnected(playerid))
  214. {
  215. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,ROT,"[ERROR:] Sie sind in keinem Auto!");
  216. new veh;
  217. veh = GetPlayerVehicleID(playerid);
  218. for(new i=0;i<MAX_CARS;i++)
  219. {
  220. if(veh == Frakcar[i])
  221. {
  222. /*if(PlayerInfo[playerid][pMember] != FCInfo[i][Frakid] && PlayerInfo[playerid][pLeader] != FCInfo[i][Frakid] && PlayerInfo[playerid][pAdmin] < ADMLVL)
  223. {
  224. SendClientMessage(playerid,ROT,"[ERROR:] Dies ist nicht ihr Fraktion's Auto!");
  225. return 1;
  226. }*/
  227. new Float:x,Float:y,Float:z,Float:a;
  228. GetVehiclePos(veh,x,y,z);
  229. GetVehicleZAngle(veh,a);
  230. FCInfo[i][fcx] = x;
  231. FCInfo[i][fcy] = y;
  232. FCInfo[i][fcz] = z;
  233. FCInfo[i][fca] = a;
  234. SFC(i);
  235. SendClientMessage(playerid,BLAU,"[FCAR:] Fahrzeug geparkt!");
  236. }
  237. }
  238. }
  239. return 1;
  240. }
  241. if(strcmp(cmdtext,"/fdel",true)==0)
  242. {
  243. if(IsPlayerConnected(playerid))
  244. {
  245. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,ROT,"[ERROR:] Sie sind in keinem Auto!");
  246. new veh;
  247. veh = GetPlayerVehicleID(playerid);
  248. for(new i=0;i<MAX_CARS;i++)
  249. {
  250. if(veh == Frakcar[i])
  251. {
  252. /*if(PlayerInfo[playerid][pMember] != FCInfo[i][Frakid] && PlayerInfo[playerid][pLeader] != FCInfo[i][Frakid] && PlayerInfo[playerid][pAdmin] < ADMLVL)
  253. {
  254. SendClientMessage(playerid,ROT,"[ERROR:] Dies ist nicht ihr Fraktion's Auto!");
  255. return 1;
  256. }*/
  257. DestroyVehicle(veh);
  258. new SDatei[64];
  259. format(SDatei,50,"/fraccar/%d.txt",i);
  260. dini_Remove(SDatei);
  261. SendClientMessage(playerid,BLAU,"[FCAR:] Fahrzeug gelöscht!");
  262. }
  263. }
  264. }
  265. return 1;
  266. }
  267. if(strcmp(cmd,"/fklauen",true)==0)
  268. {
  269. if(IsPlayerConnected(playerid))
  270. {
  271. //if(PlayerInfo[playerid][pLeader] != 15 && PlayerInfo[playerid][pMember] != 15) return SendClientMessage(playerid,ROT,"Du bist kein Terrorist");
  272. tmp = strtok(cmdtext, idx);
  273. if(!strlen(tmp))
  274. {
  275. SendClientMessage(playerid, ROT, "Benutze: /fklauen [carid]");
  276. return 1;
  277. }
  278. new id;
  279. id = strval(tmp);
  280. new Float:vx,Float:vy,Float:vz;
  281. GetVehiclePos(id,vx,vy,vz);
  282. for(new i=0;i<MAX_CARS;i++)
  283. {
  284. if(id == Frakcar[i])
  285. {
  286. if(IsPlayerInRangeOfPoint(playerid,5,vx,vy,vz))
  287. {
  288. FCInfo[i][Frakid] = 15;
  289. SendClientMessage(playerid,BLAU,"Das Auto wurde erfolgreich geklaut!");
  290. SFC(i);
  291. }
  292. }
  293. }
  294. }
  295. return 1;
  296. }
  297. if(strcmp(cmd,"/fnew",true)==0)
  298. {
  299. if(IsPlayerConnected(playerid))
  300. {
  301. //if(PlayerInfo[playerid][pAdmin] < ADMLVL) return 1;
  302. tmp = strtok(cmdtext, idx);
  303. if(!strlen(tmp))
  304. {
  305. SendClientMessage(playerid, ROT, "Benutze: /fnew [model] [farbe1] [farbe2] [Fraktion]");
  306. return 1;
  307. }
  308. new model;
  309. model = strval(tmp);
  310. if(model < 400 || model > 611) return SendClientMessage(playerid,ROT,"[ERROR:] Die Modelid darf nicht über 611 bzw. unter 400 liegen!");
  311. tmp = strtok(cmdtext, idx);
  312. if(!strlen(tmp))
  313. {
  314. SendClientMessage(playerid, ROT, "Benutze: /fnew [model] [farbe1] [farbe2] [Fraktion]");
  315. return 1;
  316. }
  317. new farbe1;
  318. farbe1 = strval(tmp);
  319. tmp = strtok(cmdtext, idx);
  320. if(!strlen(tmp))
  321. {
  322. SendClientMessage(playerid, ROT, "Benutze: /fnew [model] [farbe1] [farbe2] [Fraktion]");
  323. return 1;
  324. }
  325. new farbe2;
  326. farbe2 = strval(tmp);
  327. tmp = strtok(cmdtext, idx);
  328. if(!strlen(tmp))
  329. {
  330. SendClientMessage(playerid, ROT, "Benutze: /fnew [model] [farbe1] [farbe2] [Fraktion]");
  331. return 1;
  332. }
  333. new frak;
  334. frak = strval(tmp);
  335. if(frak > MAX_FRAK || frak < 1) return SendClientMessage(playerid,ROT,"Bitte gültige Fraktion angeben!");
  336.  
  337. new Float:x,Float:y,Float:z,Float:a;
  338. GetPlayerPos(playerid,x,y,z);
  339. GetPlayerFacingAngle(playerid,a);
  340. SendClientMessage(playerid,BLAU,"Fraktionsfahrzeug wird erstellt!");
  341. CFC(model,x,y,z,a,farbe1,farbe2,frak);
  342. SendClientMessage(playerid,BLAU,"Erfolgreich");
  343.  
  344. }
  345. return 1;
  346. }
  347.  
  348. return 1;
  349. }
  350.  
  351. /*public OnPlayerStateChange(playerid, newstate, oldstate)
  352. {
  353. if(newstate==PLAYER_STATE_DRIVER)
  354. {
  355. for(new i=0; i<MAX_CARS; i++)
  356. {
  357. if(GetPlayerVehicleID(playerid)==Frakcar[i])
  358. {
  359. if(PlayerInfo[playerid][pMember] != FCInfo[i][Frakid] && PlayerInfo[playerid][pLeader] != FCInfo[i][Frakid]) // && PlayerInfo[playerid][pAdmin] < ADMLVL)
  360. {
  361. RemovePlayerFromVehicle(playerid);
  362. SendClientMessage(playerid,COLOR_LIGHTRED,"Du darfst dieses Fahrzeug nicht fahren.");
  363. }
  364. }
  365. }
  366. }
  367. return 1;
  368. }*/
  369.  
  370. stock CFC(model,Float:fx,Float:fy,Float:fz,Float:fa,farbe1,farbe2,frak)
  371. {
  372. new SDatei[64];
  373. for(new carid=1;carid<MAX_CARS;carid++)
  374. {
  375. format(SDatei,50,"/fraccar/%d.txt",carid);
  376. if(!fexist(SDatei))
  377. {
  378. dini_Create(SDatei);
  379. dini_IntSet(SDatei,"Model",model);
  380. dini_FloatSet(SDatei,"X",fx);
  381. dini_FloatSet(SDatei,"Y",fy);
  382. dini_FloatSet(SDatei,"Z",fz);
  383. dini_FloatSet(SDatei,"A",fa);
  384. dini_IntSet(SDatei,"Farbe1",farbe1);
  385. dini_IntSet(SDatei,"Farbe2",farbe2);
  386. dini_IntSet(SDatei,"Fraktion",frak);
  387. Frakcar[carid] = CreateVehicle(model,fx,fy,fz,fa,farbe1,farbe2,-1);
  388.  
  389. FCInfo[carid][modelid] = dini_Int(SDatei,"Model");
  390. FCInfo[carid][fcx] = dini_Float(SDatei,"X");
  391. FCInfo[carid][fcy] = dini_Float(SDatei,"Y");
  392. FCInfo[carid][fcz] = dini_Float(SDatei,"Z");
  393. FCInfo[carid][fca] = dini_Float(SDatei,"A");
  394. FCInfo[carid][Frakid] = dini_Int(SDatei,"Fraktion");
  395. FCInfo[carid][fcc1] = dini_Int(SDatei,"Farbe1");
  396. FCInfo[carid][fcc2] = dini_Int(SDatei,"Farbe2");
  397.  
  398. FCInfo[carid][open] = 0;
  399.  
  400. FCInfo[carid][Opark] = 0;
  401.  
  402. return 1;
  403. }
  404. }
  405. return 1;
  406. }
  407.  
  408. stock SFC(autoid)
  409. {
  410. new SDatei[64];
  411. format(SDatei,50,"/fraccar/%d.txt",autoid);
  412. dini_IntSet(SDatei,"Model",FCInfo[autoid][modelid]);
  413. dini_FloatSet(SDatei,"X",FCInfo[autoid][fcx]);
  414. dini_FloatSet(SDatei,"Y",FCInfo[autoid][fcy]);
  415. dini_FloatSet(SDatei,"Z",FCInfo[autoid][fcz]);
  416. dini_FloatSet(SDatei,"A",FCInfo[autoid][fca]);
  417. dini_IntSet(SDatei,"Farbe1",FCInfo[autoid][fcc1]);
  418. dini_IntSet(SDatei,"Farbe2",FCInfo[autoid][fcc2]);
  419. dini_IntSet(SDatei,"Fraktion",FCInfo[autoid][Frakid]);
  420. dini_IntSet(SDatei,"Open",FCInfo[autoid][open]);
  421. dini_IntSet(SDatei,"Opark",FCInfo[autoid][Opark]);
  422. return 1;
  423. }
  424.  
  425. stock LFC(autoid)
  426. {
  427. new SDatei[64];
  428. format(SDatei,50,"/fraccar/%d.txt",autoid);
  429. if(!fexist(SDatei))return 0;
  430. FCInfo[autoid][modelid] = dini_Int(SDatei,"Model");
  431. FCInfo[autoid][fcx] = dini_Float(SDatei,"X");
  432. FCInfo[autoid][fcy] = dini_Float(SDatei,"Y");
  433. FCInfo[autoid][fcz] = dini_Float(SDatei,"Z");
  434. FCInfo[autoid][fca] = dini_Float(SDatei,"A");
  435. FCInfo[autoid][Frakid] = dini_Int(SDatei,"Fraktion");
  436. FCInfo[autoid][fcc1] = dini_Int(SDatei,"Farbe1");
  437. FCInfo[autoid][fcc2] = dini_Int(SDatei,"Farbe2");
  438. FCInfo[autoid][open] = dini_Int(SDatei,"Open");
  439. FCInfo[autoid][Opark] = dini_Int(SDatei,"Opark");
  440. Frakcar[autoid] = CreateVehicle(FCInfo[autoid][modelid],FCInfo[autoid][fcx],FCInfo[autoid][fcy],FCInfo[autoid][fcz],FCInfo[autoid][fca],FCInfo[autoid][fcc1],FCInfo[autoid][fcc2],-1);
  441. return 1;
  442. }
  443.  
  444. strtok(const string[], &index)
  445. {
  446. new length = strlen(string);
  447. while ((index < length) && (string[index] <= ' '))
  448. {
  449. index++;
  450. }
  451.  
  452. new offset = index;
  453. new result[20];
  454. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  455. {
  456. result[index - offset] = string[index];
  457. index++;
  458. }
  459. result[index - offset] = EOS;
  460. return result;
  461. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement