Advertisement
Guest User

MS-FS

a guest
Apr 7th, 2013
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.57 KB | None | 0 0
  1.  
  2. #define FILTERSCRIPT
  3.  
  4. #include <a_samp>
  5. #include <ocmd>
  6. new HatSchaden[MAX_PLAYERS];
  7. new Text:Motorschaden[6];
  8. forward TextDrawWeg(playerid);
  9. new MSchaden[MAX_VEHICLES];
  10. new HatAuftrag[MAX_PLAYERS];
  11. new engine, lights, alarm, doors, bonnet, boot, objective;
  12.  
  13. public OnFilterScriptInit()
  14. {
  15. print("\n--------------------------------------");
  16. print(" [FILTERSCRIPT]Motorschaden geladen");
  17. print("--------------------------------------\n");
  18. //Textdraws
  19. Motorschaden[0] = TextDrawCreate(604.400024, 230.726654, "usebox");
  20. TextDrawLetterSize(Motorschaden[0], 0.000000, 10.468520);
  21. TextDrawTextSize(Motorschaden[0], 417.199981, 0.000000);
  22. TextDrawAlignment(Motorschaden[0], 1);
  23. TextDrawColor(Motorschaden[0], 0);
  24. TextDrawUseBox(Motorschaden[0], true);
  25. TextDrawBoxColor(Motorschaden[0], 102);
  26. TextDrawSetShadow(Motorschaden[0], 0);
  27. TextDrawSetOutline(Motorschaden[0], 0);
  28. TextDrawFont(Motorschaden[0], 0);
  29.  
  30. Motorschaden[1] = TextDrawCreate(603.599975, 231.473327, "usebox");
  31. TextDrawLetterSize(Motorschaden[1], 0.000000, -0.121108);
  32. TextDrawTextSize(Motorschaden[1], 418.000000, 0.000000);
  33. TextDrawAlignment(Motorschaden[1], 1);
  34. TextDrawColor(Motorschaden[1], 0);
  35. TextDrawUseBox(Motorschaden[1], true);
  36. TextDrawBoxColor(Motorschaden[1], -16776961);
  37. TextDrawSetShadow(Motorschaden[1], 0);
  38. TextDrawSetOutline(Motorschaden[1], 0);
  39. TextDrawFont(Motorschaden[1], 0);
  40.  
  41. Motorschaden[2] = TextDrawCreate(603.799987, 325.060058, "usebox");
  42. TextDrawLetterSize(Motorschaden[2], 0.000000, -0.121108);
  43. TextDrawTextSize(Motorschaden[2], 417.199981, 0.000000);
  44. TextDrawAlignment(Motorschaden[2], 1);
  45. TextDrawColor(Motorschaden[2], 0);
  46. TextDrawUseBox(Motorschaden[2], true);
  47. TextDrawBoxColor(Motorschaden[2], -16776961);
  48. TextDrawSetShadow(Motorschaden[2], 0);
  49. TextDrawSetOutline(Motorschaden[2], 0);
  50. TextDrawFont(Motorschaden[2], 0);
  51.  
  52. Motorschaden[3] = TextDrawCreate(440.000122, 242.666641, "Sie haben einen Motorschaden");
  53. TextDrawLetterSize(Motorschaden[3], 0.279600, 1.629866);
  54. TextDrawAlignment(Motorschaden[3], 1);
  55. TextDrawColor(Motorschaden[3], -1);
  56. TextDrawSetShadow(Motorschaden[3], 0);
  57. TextDrawSetOutline(Motorschaden[3], 1);
  58. TextDrawBackgroundColor(Motorschaden[3], 51);
  59. TextDrawFont(Motorschaden[3], 1);
  60. TextDrawSetProportional(Motorschaden[3], 1);
  61.  
  62. Motorschaden[4] = TextDrawCreate(428.200012, 268.306640, "Ein Mechaniker wurde soeben Informiert");
  63. TextDrawLetterSize(Motorschaden[4], 0.244400, 1.756800);
  64. TextDrawAlignment(Motorschaden[4], 1);
  65. TextDrawColor(Motorschaden[4], -1);
  66. TextDrawSetShadow(Motorschaden[4], 0);
  67. TextDrawSetOutline(Motorschaden[4], 1);
  68. TextDrawBackgroundColor(Motorschaden[4], 51);
  69. TextDrawFont(Motorschaden[4], 1);
  70. TextDrawSetProportional(Motorschaden[4], 1);
  71.  
  72. Motorschaden[5] = TextDrawCreate(459.600158, 295.440063, "Sie sind eingeklemmt!");
  73. TextDrawLetterSize(Motorschaden[5], 0.279600, 1.629866);
  74. TextDrawAlignment(Motorschaden[5], 1);
  75. TextDrawColor(Motorschaden[5], -1);
  76. TextDrawSetShadow(Motorschaden[5], 0);
  77. TextDrawSetOutline(Motorschaden[5], 1);
  78. TextDrawBackgroundColor(Motorschaden[5], 51);
  79. TextDrawFont(Motorschaden[5], 1);
  80. TextDrawSetProportional(Motorschaden[5], 1);
  81. return 1;
  82. }
  83.  
  84. public OnFilterScriptExit()
  85. {
  86. return 1;
  87. }
  88.  
  89. public OnPlayerUpdate(playerid)
  90. {
  91. new Float:Ahealth;
  92. new Vehicle = GetPlayerVehicleID(playerid);
  93. new ALeben = GetVehicleHealth(Vehicle,Ahealth);
  94. new sName[MAX_PLAYER_NAME], text[200];
  95. GetPlayerName(playerid,sName,sizeof(sName));
  96. format(text,sizeof(text),"%s hat einen Motorschaden, /msannehmen um den Auftrag anzunehmen.",sName);
  97. if(IsPlayerInAnyVehicle(playerid))
  98. {
  99. if(ALeben <= 250.0)
  100. {
  101. SetVehicleHealth(Vehicle,250.0);
  102. TextDrawShowForPlayer(playerid,Motorschaden[0]);
  103. TextDrawShowForPlayer(playerid,Motorschaden[1]);
  104. TextDrawShowForPlayer(playerid,Motorschaden[2]);
  105. TextDrawShowForPlayer(playerid,Motorschaden[3]);
  106. TextDrawShowForPlayer(playerid,Motorschaden[4]);
  107. TextDrawShowForPlayer(playerid,Motorschaden[5]);
  108. SetTimerEx("TextDrawWeg",10000,false,"i",playerid);
  109. MSchaden[Vehicle] = true;
  110. HatSchaden[playerid] = 1;
  111. TogglePlayerControllable(playerid,0);
  112. GetVehicleParamsEx(Vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  113. SetVehicleParamsEx(Vehicle, false, lights, alarm, doors, bonnet, boot, objective);
  114. if(SpielerInfo[playerid][sLeader] == 18 || SpielerInfo[playerid][sMember] == 18)
  115. {
  116. for(new i = 0; i<MAX_PLAYERS; i++)
  117. {
  118. if(SpielerInfo[playerid][sLeader] == SpielerInfo[i][sLeader])
  119. {
  120. SendClientMessage(i,0xFFFFFFFF,text);
  121. }
  122. if(SpielerInfo[playerid][sMember] == SpielerInfo[i][sMember])
  123. {
  124. SendClientMessage(i,0xFFFFFFFF,text);
  125. }
  126. }
  127. }
  128. }
  129. }
  130. return 1;
  131. }
  132. public TextDrawWeg(playerid)
  133. {
  134. TextDrawHideForPlayer(playerid,Motorschaden[0]);
  135. TextDrawHideForPlayer(playerid,Motorschaden[1]);
  136. TextDrawHideForPlayer(playerid,Motorschaden[2]);
  137. TextDrawHideForPlayer(playerid,Motorschaden[3]);
  138. TextDrawHideForPlayer(playerid,Motorschaden[4]);
  139. TextDrawHideForPlayer(playerid,Motorschaden[5]);
  140. return 1;
  141. }
  142. ocmd:msannehmen(playerid,params[])
  143. {
  144. if(SpielerInfo[playerid][sLeader] != 18 || SpielerInfo[playerid][sMember] != 18)return SendClientMessage(playerid,0xFFFFFFFF,"Du bist kein Mechaniker");
  145. new pID, Float:X,Float:Y,Float:Z,text[200], sName[MAX_PLAYER_NAME];
  146. GetPlayerName(playerid,sName,sizeof(sName));
  147. if(sscanf(params,"u",pID))return SendClientMessage(playerid,0xFFFFFFFF,"Benutze: /msannehmen [playerid]");
  148. if(HatSchaden[pID] == 1)return SendClientMessage(playerid,0xFFFFFFFF,"Dieser Spieler hat keinen Motorschaden");
  149. if(HatAuftrag[pID] == 1)return SendClientMessage(playerid,0xFFFFFFFF,"Dieser Auftrag wurde schon angenommen");
  150. HatAuftrag[pID] = 1;
  151. HatSchaden[pID] = 0;
  152. GetPlayerPos(pID,X,Y,Z);
  153. SetPlayerCheckpoint(playerid,X,Y,Z,5.0);
  154. format(text,sizeof(text),"Mechaniker %s hat deine Auftrag angenommen.",sName);
  155. SendClientMessage(pID,0xFFFFFFFF,text);
  156. return 1;
  157. }
  158.  
  159. stock sscanf(string[], format[], {Float,_}:...)
  160. {
  161. #if defined isnull
  162. if (isnull(string))
  163. #else
  164. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  165. #endif
  166. {
  167. return format[0];
  168. }
  169. #pragma tabsize 4
  170. new
  171. formatPos = 0,
  172. stringPos = 0,
  173. paramPos = 2,
  174. paramCount = numargs(),
  175. delim = ' ';
  176. while (string[stringPos] && string[stringPos] <= ' ')
  177. {
  178. stringPos++;
  179. }
  180. while (paramPos < paramCount && string[stringPos])
  181. {
  182. switch (format[formatPos++])
  183. {
  184. case '\0':
  185. {
  186. return 0;
  187. }
  188. case 'i', 'd':
  189. {
  190. new
  191. neg = 1,
  192. num = 0,
  193. ch = string[stringPos];
  194. if (ch == '-')
  195. {
  196. neg = -1;
  197. ch = string[++stringPos];
  198. }
  199. do
  200. {
  201. stringPos++;
  202. if ('0' <= ch <= '9')
  203. {
  204. num = (num * 10) + (ch - '0');
  205. }
  206. else
  207. {
  208. return -1;
  209. }
  210. }
  211. while ((ch = string[stringPos]) > ' ' && ch != delim);
  212. setarg(paramPos, 0, num * neg);
  213. }
  214. case 'h', 'x':
  215. {
  216. new
  217. num = 0,
  218. ch = string[stringPos];
  219. do
  220. {
  221. stringPos++;
  222. switch (ch)
  223. {
  224. case 'x', 'X':
  225. {
  226. num = 0;
  227. continue;
  228. }
  229. case '0' .. '9':
  230. {
  231. num = (num << 4) | (ch - '0');
  232. }
  233. case 'a' .. 'f':
  234. {
  235. num = (num << 4) | (ch - ('a' - 10));
  236. }
  237. case 'A' .. 'F':
  238. {
  239. num = (num << 4) | (ch - ('A' - 10));
  240. }
  241. default:
  242. {
  243. return -1;
  244. }
  245. }
  246. }
  247. while ((ch = string[stringPos]) > ' ' && ch != delim);
  248. setarg(paramPos, 0, num);
  249. }
  250. case 'c':
  251. {
  252. setarg(paramPos, 0, string[stringPos++]);
  253. }
  254. case 'f':
  255. {
  256.  
  257. new changestr[16], changepos = 0, strpos = stringPos;
  258. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  259. {
  260. changestr[changepos++] = string[strpos++];
  261. }
  262. changestr[changepos] = '\0';
  263. setarg(paramPos,0,_:floatstr(changestr));
  264. }
  265. case 'p':
  266. {
  267. delim = format[formatPos++];
  268. continue;
  269. }
  270. case '\'':
  271. {
  272. new
  273. end = formatPos - 1,
  274. ch;
  275. while ((ch = format[++end]) && ch != '\'') {}
  276. if (!ch)
  277. {
  278. return -1;
  279. }
  280. format[end] = '\0';
  281. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  282. {
  283. if (format[end + 1])
  284. {
  285. return -1;
  286. }
  287. return 0;
  288. }
  289. format[end] = '\'';
  290. stringPos = ch + (end - formatPos);
  291. formatPos = end + 1;
  292. }
  293. case 'u':
  294. {
  295. new
  296. end = stringPos - 1,
  297. id = 0,
  298. bool:num = true,
  299. ch;
  300. while ((ch = string[++end]) && ch != delim)
  301. {
  302. if (num)
  303. {
  304. if ('0' <= ch <= '9')
  305. {
  306. id = (id * 10) + (ch - '0');
  307. }
  308. else
  309. {
  310. num = false;
  311. }
  312. }
  313. }
  314. if (num && IsPlayerConnected(id))
  315. {
  316. setarg(paramPos, 0, id);
  317. }
  318. else
  319. {
  320. #if !defined foreach
  321. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  322. #define __SSCANF_FOREACH__
  323. #endif
  324. string[end] = '\0';
  325. num = false;
  326. new
  327. name[MAX_PLAYER_NAME];
  328. id = end - stringPos;
  329. foreach (Player, playerid)
  330. {
  331. GetPlayerName(playerid, name, sizeof (name));
  332. if (!strcmp(name, string[stringPos], true, id))
  333. {
  334. setarg(paramPos, 0, playerid);
  335. num = true;
  336. break;
  337. }
  338. }
  339. if (!num)
  340. {
  341. setarg(paramPos, 0, INVALID_PLAYER_ID);
  342. }
  343. string[end] = ch;
  344. #if defined __SSCANF_FOREACH__
  345. #undef foreach
  346. #undef __SSCANF_FOREACH__
  347. #endif
  348. }
  349. stringPos = end;
  350. }
  351. case 's', 'z':
  352. {
  353. new
  354. i = 0,
  355. ch;
  356. if (format[formatPos])
  357. {
  358. while ((ch = string[stringPos++]) && ch != delim)
  359. {
  360. setarg(paramPos, i++, ch);
  361. }
  362. if (!i)
  363. {
  364. return -1;
  365. }
  366. }
  367. else
  368. {
  369. while ((ch = string[stringPos++]))
  370. {
  371. setarg(paramPos, i++, ch);
  372. }
  373. }
  374. stringPos--;
  375. setarg(paramPos, i, '\0');
  376. }
  377. default:
  378. {
  379. continue;
  380. }
  381. }
  382. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  383. {
  384. stringPos++;
  385. }
  386. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  387. {
  388. stringPos++;
  389. }
  390. paramPos++;
  391. }
  392. do
  393. {
  394. if ((delim = format[formatPos++]) > ' ')
  395. {
  396. if (delim == '\'')
  397. {
  398. while ((delim = format[formatPos++]) && delim != '\'') {}
  399. }
  400. else if (delim != 'z')
  401. {
  402. return delim;
  403. }
  404. }
  405. }
  406. while (delim > ' ');
  407. return 0;
  408. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement