Guest User

Untitled

a guest
May 29th, 2011
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.13 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. /* -- Definition DCMD -- */
  4. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  5. /* -- Defintion Transport -- */
  6. new Transporter[3];
  7. /* -- Definition Pickups -- */
  8. new JobPickup;
  9. /* -- Deintion Farben -- */
  10. #define blau 0x0086FFFF
  11. #define gruen 0x008F45FF
  12. #define rot 0xFF0000FF
  13. /* -- Definitionen zum Job -- */
  14. new IsTransporter[MAX_PLAYERS];
  15. new HatErlaubnis[MAX_PLAYERS];
  16. new MMCheckpoint[MAX_PLAYERS];
  17.  
  18. new Haus;
  19. new Haus2;
  20. public OnFilterScriptInit()
  21. {
  22. /*Print Text*/
  23. print("\n--------------------------------------");
  24. print(" Transporter MiniMission by [NSG]W4RFiGhTeR");
  25. print("--------------------------------------\n");
  26. /*Transporter*/
  27. Transporter[0] = AddStaticVehicleEx(578,2501.6235,-2115.6821,14.1723,1.0051,1,1,20); // DFT-1
  28. Transporter[1] = AddStaticVehicleEx(578,2497.6187,-2115.6621,14.1720,0.9042,1,1,20); // DFT-2
  29. Transporter[2] = AddStaticVehicleEx(578,2493.1768,-2115.6807,14.1717,358.8366,1,1,20); // DFT-3
  30. /*Pickups*/
  31. JobPickup = CreatePickup(1277,1,2484.5530,-2119.3354,13.5469, -1);
  32. /*3DText*/
  33. Create3DTextLabel("Guten Tag Sir,\n{3169EB}Um eine Mission als Transporter zu starten, geben Sie {ED4040}/start {3169EB}ein.\nBeim eingeben des Commands wird Ihnen {ED4040}5000$ {3169EB}abgezogen.",gruen,2484.5530,-2119.3354,14.5469,40.0,0);
  34. return 1;
  35. }
  36.  
  37. public OnFilterScriptExit()
  38. {
  39. return 1;
  40. }
  41. public OnPlayerRequestClass(playerid, classid)
  42. {
  43. return 1;
  44. }
  45.  
  46. public OnPlayerConnect(playerid)
  47. {
  48. IsTransporter[playerid] = 0;
  49. HatErlaubnis[playerid] = 0;
  50. MMCheckpoint[playerid] = 0;
  51. return 1;
  52. }
  53.  
  54. public OnPlayerDisconnect(playerid, reason)
  55. {
  56. IsTransporter[playerid] = 0;
  57. HatErlaubnis[playerid] = 0;
  58. MMCheckpoint[playerid] = 0;
  59. return 1;
  60. }
  61.  
  62. public OnPlayerSpawn(playerid)
  63. {
  64. GivePlayerMoney(playerid,10000);
  65. return 1;
  66. }
  67.  
  68. public OnPlayerDeath(playerid, killerid, reason)
  69. {
  70. return 1;
  71. }
  72.  
  73. public OnVehicleSpawn(vehicleid)
  74. {
  75. return 1;
  76. }
  77.  
  78. public OnVehicleDeath(vehicleid, killerid)
  79. {
  80. return 1;
  81. }
  82.  
  83. public OnPlayerText(playerid, text[])
  84. {
  85. return 1;
  86. }
  87.  
  88. public OnPlayerCommandText(playerid, cmdtext[])
  89. {
  90. dcmd(start,5,cmdtext);
  91. dcmd(aufladen,8,cmdtext);
  92.  
  93. dcmd(basis,5,cmdtext);
  94. dcmd(abholort,8,cmdtext);
  95. return 0;
  96. }
  97. dcmd_basis(playerid,params[])
  98. {
  99. #pragma unused params
  100. if(IsPlayerInAnyVehicle(playerid))
  101. {
  102. SetVehiclePos(GetPlayerVehicleID(playerid),2470.5388,-2089.0430,14.1698);
  103. SetVehicleZAngle(GetPlayerVehicleID(playerid),270.0204);
  104. }
  105. else
  106. {
  107. SetPlayerPos(playerid,2470.5388,-2089.0430,14.1698);
  108. SetPlayerFacingAngle(playerid,270.0204);
  109. }
  110. return 1;
  111. }
  112. dcmd_abholort(playerid,params[])
  113. {
  114. #pragma unused params
  115. if(IsPlayerInAnyVehicle(playerid))
  116. {
  117. SetVehiclePos(GetPlayerVehicleID(playerid),-75.1452,-1128.9773,1.7036);
  118. SetVehicleZAngle(GetPlayerVehicleID(playerid),249.3426);
  119. }
  120. else
  121. {
  122. SetPlayerPos(playerid,-75.1452,-1128.9773,1.7036);
  123. SetPlayerFacingAngle(playerid,249.3426);
  124. }
  125. return 1;
  126. }
  127. dcmd_start(playerid,params[])
  128. {
  129. #pragma unused params
  130. if(!IsPlayerInRangeOfPoint(playerid,1.0,2484.5530,-2119.3354,13.5469)) return SendClientMessage(playerid,rot,"[ERROR] Du bist nicht beim Start-Icon!");
  131. if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid,rot,"[ERROR] Du hast nicht genug Geld für die MiniMission");
  132. else
  133. {
  134. SendClientMessage(playerid,blau,"Setzte dich nun in einen DFT und starte deine Mission");
  135. SendClientMessage(playerid,blau,"Es wird dir nun ein Checkpoint angezeigt wo du die gewünschte Ladung abholen sollst.");
  136. SendClientMessage(playerid,gruen,"Viel Spaß");
  137. GameTextForPlayer(playerid,"~y~Mission ~g~gestartet",6000,1);
  138. SetPlayerCheckpoint(playerid,-52.9854,-1141.6389,1.0781,4.0);
  139. GivePlayerMoney(playerid,-5000);
  140. HatErlaubnis[playerid] = 1;
  141. }
  142. return 1;
  143. }
  144. dcmd_aufladen(playerid,params[])
  145. {
  146. #pragma unused params
  147. if(IsPlayerInRangeOfPoint(playerid,4.0,-52.9854,-1141.6389,1.0781) && MMCheckpoint[playerid] == 2 && HatErlaubnis[playerid] == 1 && IsTransporter[playerid] == 1)
  148. {
  149. MMCheckpoint[playerid] = 3;
  150. Haus = CreateObject(3504,0,0,0,0,0,0);
  151. Haus2 = CreateObject(3504,0,0,0,0,0,0);
  152. AttachObjectToVehicle(Haus,GetPlayerVehicleID(playerid),0.0, -1.0,1.0,0.0,0.0,0.0);
  153. AttachObjectToVehicle(Haus2,GetPlayerVehicleID(playerid),0.0, -3.0,1.0,0.0,0.0,0.0);
  154. SendClientMessage(playerid,blau,"Transportiere die Klohäusschen nun wieder zurück zur Basis");
  155. SetPlayerCheckpoint(playerid,2520.0793,-2089.9197,13.5469,4.0);
  156. }
  157. else
  158. {
  159. SendClientMessage(playerid,rot,"[ERROR] Du bist nicht am Treffpunkt oder du hast keine Erlaubnis");
  160. }
  161. return 1;
  162. }
  163.  
  164. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  165. {
  166. return 1;
  167. }
  168.  
  169. public OnPlayerExitVehicle(playerid, vehicleid)
  170. {
  171. return 1;
  172. }
  173.  
  174. public OnPlayerStateChange(playerid, newstate, oldstate)
  175. {
  176. if(newstate == 2)
  177. {
  178. for(new t = 0; t < sizeof(Transporter); t++)
  179. {
  180. if(!IsPlayerNPC(playerid) && HatErlaubnis[playerid] == 1 && IsPlayerInVehicle(playerid,Transporter[t]))
  181. {
  182. IsTransporter[playerid] = 1;
  183. MMCheckpoint[playerid] = 1;
  184. }
  185. }
  186. }
  187. if(newstate == 1)
  188. {
  189. if(HatErlaubnis[playerid] == 1 && IsTransporter[playerid] == 1)
  190. {
  191. HatErlaubnis[playerid] = 0;
  192. IsTransporter[playerid] = 0;
  193. SendClientMessage(playerid,rot,"Du hast die Mission als Trucker abgebrochen, da du aus dem Truck ausgestiegen bist");
  194. SendClientMessage(playerid,rot,"Das Geld bekommst du NICHT wieder zurück!");
  195. GameTextForPlayer(playerid,"~y~Mission ~r~abgebrochen",6000,1);
  196. DisablePlayerCheckpoint(playerid);
  197. MMCheckpoint[playerid] = 0;
  198. }
  199. }
  200. if(newstate == 2)
  201. {
  202. for(new t = 0; t < sizeof(Transporter); t++)
  203. {
  204. if(!IsPlayerNPC(playerid) && HatErlaubnis[playerid] == 0 && IsPlayerInVehicle(playerid,Transporter[t]))
  205. {
  206. new Float:slapx,Float:slapy,Float:slapz;
  207. GetPlayerPos(playerid,slapx,slapy,slapz);
  208. SetPlayerPos(playerid,slapx,slapy,slapz+3);
  209. SendClientMessage(playerid,rot,"[ERROR]Du hast die MiniMission noch nicht angenommen");
  210. }
  211. }
  212. }
  213. return 1;
  214. }
  215.  
  216. public OnPlayerEnterCheckpoint(playerid)
  217. {
  218. switch(MMCheckpoint[playerid])
  219. {
  220. case 1:
  221. {
  222. DisablePlayerCheckpoint(playerid);
  223. SendClientMessage(playerid,gruen,"Benutze nun /aufladen um ein Haus aufzuladen");
  224. MMCheckpoint[playerid] = 2;
  225. return 1;
  226. }
  227. case 3:
  228. {
  229. DisablePlayerCheckpoint(playerid);
  230. SendClientMessage(playerid,gruen,"Du hast die MiniMission erfolgreich beendet, Gute Arbeit");
  231. SendClientMessage(playerid,blau,"{3169EB}Du erhältst für die Arbeit {ED4040}15000$");
  232. SendClientMessage(playerid,blau,"{3169EB}[CREDITS]: Script by {ED4040}W4RFiGhTeR aka Pinguin");
  233. GivePlayerMoney(playerid,15000);
  234. MMCheckpoint[playerid] = 0;
  235. IsTransporter[playerid] = 0;
  236. HatErlaubnis[playerid] = 0;
  237. RemovePlayerFromVehicle(playerid);
  238. DestroyObject(Haus);
  239. DestroyObject(Haus2);
  240. return 1;
  241. }
  242. }
  243. return 1;
  244. }
  245.  
  246. public OnPlayerLeaveCheckpoint(playerid)
  247. {
  248. return 1;
  249. }
  250.  
  251. public OnPlayerEnterRaceCheckpoint(playerid)
  252. {
  253. return 1;
  254. }
  255.  
  256. public OnPlayerLeaveRaceCheckpoint(playerid)
  257. {
  258. return 1;
  259. }
  260.  
  261. public OnRconCommand(cmd[])
  262. {
  263. return 1;
  264. }
  265.  
  266. public OnPlayerRequestSpawn(playerid)
  267. {
  268. return 1;
  269. }
  270.  
  271. public OnObjectMoved(objectid)
  272. {
  273. return 1;
  274. }
  275.  
  276. public OnPlayerObjectMoved(playerid, objectid)
  277. {
  278. return 1;
  279. }
  280.  
  281. public OnPlayerPickUpPickup(playerid, pickupid)
  282. {
  283. if(pickupid == JobPickup) return 1;
  284. return 1;
  285. }
  286.  
  287. public OnVehicleMod(playerid, vehicleid, componentid)
  288. {
  289. return 1;
  290. }
  291.  
  292. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  293. {
  294. return 1;
  295. }
  296.  
  297. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  298. {
  299. return 1;
  300. }
  301.  
  302. public OnPlayerSelectedMenuRow(playerid, row)
  303. {
  304. return 1;
  305. }
  306.  
  307. public OnPlayerExitedMenu(playerid)
  308. {
  309. return 1;
  310. }
  311.  
  312. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  313. {
  314. return 1;
  315. }
  316.  
  317. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  318. {
  319. return 1;
  320. }
  321.  
  322. public OnRconLoginAttempt(ip[], password[], success)
  323. {
  324. return 1;
  325. }
  326.  
  327. public OnPlayerUpdate(playerid)
  328. {
  329. return 1;
  330. }
  331.  
  332. public OnPlayerStreamIn(playerid, forplayerid)
  333. {
  334. return 1;
  335. }
  336.  
  337. public OnPlayerStreamOut(playerid, forplayerid)
  338. {
  339. return 1;
  340. }
  341.  
  342. public OnVehicleStreamIn(vehicleid, forplayerid)
  343. {
  344. return 1;
  345. }
  346.  
  347. public OnVehicleStreamOut(vehicleid, forplayerid)
  348. {
  349. return 1;
  350. }
  351.  
  352. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  353. {
  354. return 1;
  355. }
  356.  
  357. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  358. {
  359. return 1;
  360. }
  361. stock sscanf(string[], format[], {Float,_}:...)
  362. {
  363. #if defined isnull
  364. if (isnull(string))
  365. #else
  366. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  367. #endif
  368. {
  369. return format[0];
  370. }
  371. #pragma tabsize 4
  372. new
  373. formatPos = 0,
  374. stringPos = 0,
  375. paramPos = 2,
  376. paramCount = numargs(),
  377. delim = ' ';
  378. while (string[stringPos] && string[stringPos] <= ' ')
  379. {
  380. stringPos++;
  381. }
  382. while (paramPos < paramCount && string[stringPos])
  383. {
  384. switch (format[formatPos++])
  385. {
  386. case '\0':
  387. {
  388. return 0;
  389. }
  390. case 'i', 'd':
  391. {
  392. new
  393. neg = 1,
  394. num = 0,
  395. ch = string[stringPos];
  396. if (ch == '-')
  397. {
  398. neg = -1;
  399. ch = string[++stringPos];
  400. }
  401. do
  402. {
  403. stringPos++;
  404. if ('0' <= ch <= '9')
  405. {
  406. num = (num * 10) + (ch - '0');
  407. }
  408. else
  409. {
  410. return -1;
  411. }
  412. }
  413. while ((ch = string[stringPos]) > ' ' && ch != delim);
  414. setarg(paramPos, 0, num * neg);
  415. }
  416. case 'h', 'x':
  417. {
  418. new
  419. num = 0,
  420. ch = string[stringPos];
  421. do
  422. {
  423. stringPos++;
  424. switch (ch)
  425. {
  426. case 'x', 'X':
  427. {
  428. num = 0;
  429. continue;
  430. }
  431. case '0' .. '9':
  432. {
  433. num = (num << 4) | (ch - '0');
  434. }
  435. case 'a' .. 'f':
  436. {
  437. num = (num << 4) | (ch - ('a' - 10));
  438. }
  439. case 'A' .. 'F':
  440. {
  441. num = (num << 4) | (ch - ('A' - 10));
  442. }
  443. default:
  444. {
  445. return -1;
  446. }
  447. }
  448. }
  449. while ((ch = string[stringPos]) > ' ' && ch != delim);
  450. setarg(paramPos, 0, num);
  451. }
  452. case 'c':
  453. {
  454. setarg(paramPos, 0, string[stringPos++]);
  455. }
  456. case 'f':
  457. {
  458. setarg(paramPos, 0, _:floatstr(string[stringPos]));
  459. }
  460. case 'p':
  461. {
  462. delim = format[formatPos++];
  463. continue;
  464. }
  465. case '\'':
  466. {
  467. new
  468. end = formatPos - 1,
  469. ch;
  470. while ((ch = format[++end]) && ch != '\'') {}
  471. if (!ch)
  472. {
  473. return -1;
  474. }
  475. format[end] = '\0';
  476. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  477. {
  478. if (format[end + 1])
  479. {
  480. return -1;
  481. }
  482. return 0;
  483. }
  484. format[end] = '\'';
  485. stringPos = ch + (end - formatPos);
  486. formatPos = end + 1;
  487. }
  488. case 'u':
  489. {
  490. new
  491. end = stringPos - 1,
  492. id = 0,
  493. bool:num = true,
  494. ch;
  495. while ((ch = string[++end]) && ch != delim)
  496. {
  497. if (num)
  498. {
  499. if ('0' <= ch <= '9')
  500. {
  501. id = (id * 10) + (ch - '0');
  502. }
  503. else
  504. {
  505. num = false;
  506. }
  507. }
  508. }
  509. if (num && IsPlayerConnected(id))
  510. {
  511. setarg(paramPos, 0, id);
  512. }
  513. else
  514. {
  515. #if !defined foreach
  516. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  517. #define __SSCANF_FOREACH__
  518. #endif
  519. string[end] = '\0';
  520. num = false;
  521. new
  522. name[MAX_PLAYER_NAME];
  523. id = end - stringPos;
  524. foreach (Player, playerid)
  525. {
  526. GetPlayerName(playerid, name, sizeof (name));
  527. if (!strcmp(name, string[stringPos], true, id))
  528. {
  529. setarg(paramPos, 0, playerid);
  530. num = true;
  531. break;
  532. }
  533. }
  534. if (!num)
  535. {
  536. setarg(paramPos, 0, INVALID_PLAYER_ID);
  537. }
  538. string[end] = ch;
  539. #if defined __SSCANF_FOREACH__
  540. #undef foreach
  541. #undef __SSCANF_FOREACH__
  542. #endif
  543. }
  544. stringPos = end;
  545. }
  546. case 's', 'z':
  547. {
  548. new
  549. i = 0,
  550. ch;
  551. if (format[formatPos])
  552. {
  553. while ((ch = string[stringPos++]) && ch != delim)
  554. {
  555. setarg(paramPos, i++, ch);
  556. }
  557. if (!i)
  558. {
  559. return -1;
  560. }
  561. }
  562. else
  563. {
  564. while ((ch = string[stringPos++]))
  565. {
  566. setarg(paramPos, i++, ch);
  567. }
  568. }
  569. stringPos--;
  570. setarg(paramPos, i, '\0');
  571. }
  572. default:
  573. {
  574. continue;
  575. }
  576. }
  577. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  578. {
  579. stringPos++;
  580. }
  581. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  582. {
  583. stringPos++;
  584. }
  585. paramPos++;
  586. }
  587. do
  588. {
  589. if ((delim = format[formatPos++]) > ' ')
  590. {
  591. if (delim == '\'')
  592. {
  593. while ((delim = format[formatPos++]) && delim != '\'') {}
  594. }
  595. else if (delim != 'z')
  596. {
  597. return delim;
  598. }
  599. }
  600. }
  601. while (delim > ' ');
  602. return 0;
  603. }
Advertisement
Add Comment
Please, Sign In to add comment