Advertisement
Guest User

hilfe

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