Advertisement
Guest User

Untitled

a guest
Feb 27th, 2012
837
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.42 KB | None | 0 0
  1. /* Basic
  2. Freeroam
  3. Gamemode Script by Chris' */
  4.  
  5. #include <a_samp> // Credits SAMP team
  6. #include <dudb> // Draco Blue
  7.  
  8. #include "../include/gl_common.inc"
  9.  
  10. #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
  11.  
  12. #pragma unused ret_memcpy
  13.  
  14. #define COLOR_GREY 0xAFAFAFAA
  15. #define COLOR_GREEN 0x00FF00C8
  16. #define COLOR_RED 0xFF0000AA
  17. #define COLOR_YELLOW 0xFFFF00AA
  18. #define COLOR_PINK 0xFF66FFAA
  19. #define COLOR_BLUE 0x3A47DEFF
  20. #define COLOR_TAN 0xBDB76BAA
  21. #define COLOR_PURPLE 0x800080AA
  22. #define COLOR_WHITE 0xFFFFFFAA
  23. #define COLOR_LIGHTBLUE 0x33CCFFAA
  24. #define COLOR_ORANGE 0xFF9900AA
  25. #define COLOR_INDIGO 0x1E90FFAA
  26. #define COLOR_BLACK 0x00000000
  27. #define COLOR_DARKGREY 0x696969FF
  28.  
  29. new PlayerColors[200] = {
  30. 0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,
  31. 0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,
  32. 0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,
  33. 0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,
  34. 0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,
  35. 0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,
  36. 0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,
  37. 0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,
  38. 0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,
  39. 0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF,
  40. 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
  41. 0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,
  42. 0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,
  43. 0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,
  44. 0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,
  45. 0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
  46. 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,
  47. 0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,
  48. 0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,
  49. 0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,
  50. 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,
  51. 0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,
  52. 0xD8C762FF,0xD8C762FF
  53. };
  54.  
  55. new file[512];
  56.  
  57. enum Info
  58. {
  59. AdminLevel,
  60. Cash,
  61. Score,
  62. }
  63.  
  64. new AccountInfo[MAX_PLAYERS][Info];
  65.  
  66. public OnGameModeInit()
  67. {
  68. SetGameModeText("Freeroam");
  69. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  70.  
  71. LoadStaticVehiclesFromFile("vehicles/trains.txt");
  72. LoadStaticVehiclesFromFile("vehicles/pilots.txt");
  73. LoadStaticVehiclesFromFile("vehicles/lv_law.txt");
  74. LoadStaticVehiclesFromFile("vehicles/lv_airport.txt");
  75. LoadStaticVehiclesFromFile("vehicles/lv_gen.txt");
  76. LoadStaticVehiclesFromFile("vehicles/sf_law.txt");
  77. LoadStaticVehiclesFromFile("vehicles/sf_airport.txt");
  78. LoadStaticVehiclesFromFile("vehicles/sf_gen.txt");
  79. LoadStaticVehiclesFromFile("vehicles/ls_law.txt");
  80. LoadStaticVehiclesFromFile("vehicles/ls_airport.txt");
  81. LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt");
  82. LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt");
  83. LoadStaticVehiclesFromFile("vehicles/whetstone.txt");
  84. LoadStaticVehiclesFromFile("vehicles/bone.txt");
  85. LoadStaticVehiclesFromFile("vehicles/flint.txt");
  86. LoadStaticVehiclesFromFile("vehicles/tierra.txt");
  87. LoadStaticVehiclesFromFile("vehicles/red_county.txt");
  88. return 1;
  89. }
  90.  
  91. public OnGameModeExit()
  92. {
  93. return 1;
  94. }
  95.  
  96. public OnPlayerRequestClass(playerid, classid)
  97. {
  98. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  99. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  100. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  101. return 1;
  102. }
  103.  
  104. public OnPlayerConnect(playerid)
  105. {
  106. new string[256];
  107. new name[MAX_PLAYER_NAME];
  108.  
  109. GetPlayerName(playerid, name, sizeof(name));
  110. format(file, sizeof(file), "Accounts/%s.ini", name);
  111. if (!dini_Exists(file))
  112. {
  113. format(string, sizeof(string), "Welcome: %s\n This account is not registered\nPlease register", name);
  114. ShowPlayerDialog(playerid, 3333, DIALOG_STYLE_INPUT, "Welcome", string, "Register", "Leave");
  115. }
  116. if(fexist(file))
  117. {
  118. format(string, sizeof(string), "Welcome: %s\n This account is registered\nPlease Login", name);
  119. ShowPlayerDialog(playerid, 3334, DIALOG_STYLE_INPUT, "Hello", string, "Login", "Leave");
  120. }
  121. return 1;
  122. }
  123.  
  124. public OnPlayerDisconnect(playerid, reason)
  125. {
  126. new name[24];
  127.  
  128. GetPlayerName(playerid,name,24);
  129. GetPlayerName(playerid, name, sizeof(name));
  130.  
  131. format(file,sizeof(file),"Accounts/%s.ini",name);
  132. if(dini_Exists(file))
  133. {
  134. dini_IntSet(file,"Cash",GetPlayerMoney(playerid));
  135. dini_IntSet(file,"Score",GetPlayerScore(playerid));
  136. dini_IntSet(file,"AdminLevel", AccountInfo[playerid][AdminLevel]);
  137. return 1;
  138. }
  139. return 1;
  140. }
  141.  
  142. public OnPlayerSpawn(playerid)
  143. {
  144. return 1;
  145. }
  146.  
  147. public OnPlayerDeath(playerid, killerid, reason)
  148. {
  149. return 1;
  150. }
  151.  
  152. public OnVehicleSpawn(vehicleid)
  153. {
  154. return 1;
  155. }
  156.  
  157. public OnVehicleDeath(vehicleid, killerid)
  158. {
  159. return 1;
  160. }
  161.  
  162. public OnPlayerText(playerid, text[])
  163. {
  164. return 1;
  165. }
  166.  
  167. public OnPlayerCommandText(playerid, cmdtext[])
  168. {
  169. dcmd(makeadmin, 9, cmdtext);
  170. dcmd(parch, 5, cmdtext);
  171. dcmd(jetpack, 7, cmdtext);
  172. dcmd(fstyle, 6, cmdtext);
  173. dcmd(randomcolor, 11, cmdtext);
  174. dcmd(stats, 5, cmdtext);
  175. dcmd(commands, 8, cmdtext);
  176. return 0;
  177. }
  178.  
  179. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  180. {
  181. return 1;
  182. }
  183.  
  184. public OnPlayerExitVehicle(playerid, vehicleid)
  185. {
  186. return 1;
  187. }
  188.  
  189. public OnPlayerStateChange(playerid, newstate, oldstate)
  190. {
  191. return 1;
  192. }
  193.  
  194. public OnPlayerEnterCheckpoint(playerid)
  195. {
  196. return 1;
  197. }
  198.  
  199. public OnPlayerLeaveCheckpoint(playerid)
  200. {
  201. return 1;
  202. }
  203.  
  204. public OnPlayerEnterRaceCheckpoint(playerid)
  205. {
  206. return 1;
  207. }
  208.  
  209. public OnPlayerLeaveRaceCheckpoint(playerid)
  210. {
  211. return 1;
  212. }
  213.  
  214. public OnRconCommand(cmd[])
  215. {
  216. return 1;
  217. }
  218.  
  219. public OnPlayerRequestSpawn(playerid)
  220. {
  221. return 1;
  222. }
  223.  
  224. public OnObjectMoved(objectid)
  225. {
  226. return 1;
  227. }
  228.  
  229. public OnPlayerObjectMoved(playerid, objectid)
  230. {
  231. return 1;
  232. }
  233.  
  234. public OnPlayerPickUpPickup(playerid, pickupid)
  235. {
  236. return 1;
  237. }
  238.  
  239. public OnVehicleMod(playerid, vehicleid, componentid)
  240. {
  241. return 1;
  242. }
  243.  
  244. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  245. {
  246. return 1;
  247. }
  248.  
  249. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  250. {
  251. return 1;
  252. }
  253.  
  254. public OnPlayerSelectedMenuRow(playerid, row)
  255. {
  256. return 1;
  257. }
  258.  
  259. public OnPlayerExitedMenu(playerid)
  260. {
  261. return 1;
  262. }
  263.  
  264. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  265. {
  266. return 1;
  267. }
  268.  
  269. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  270. {
  271. return 1;
  272. }
  273.  
  274. public OnRconLoginAttempt(ip[], password[], success)
  275. {
  276. return 1;
  277. }
  278.  
  279. public OnPlayerUpdate(playerid)
  280. {
  281. return 1;
  282. }
  283.  
  284. public OnPlayerStreamIn(playerid, forplayerid)
  285. {
  286. return 1;
  287. }
  288.  
  289. public OnPlayerStreamOut(playerid, forplayerid)
  290. {
  291. return 1;
  292. }
  293.  
  294. public OnVehicleStreamIn(vehicleid, forplayerid)
  295. {
  296. return 1;
  297. }
  298.  
  299. public OnVehicleStreamOut(vehicleid, forplayerid)
  300. {
  301. return 1;
  302. }
  303.  
  304. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  305. {
  306. if (dialogid == 3333)
  307. {
  308. new name[MAX_PLAYER_NAME], string[128];
  309.  
  310. GetPlayerName(playerid, name, sizeof(name));
  311.  
  312. format(file, sizeof(file), "Accounts/%s.ini", name);
  313.  
  314. if(!response) return Kick(playerid);
  315.  
  316. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 3333, DIALOG_STYLE_INPUT, "Welcome", "This account its not registered\nPlease register", "Register", "Leave");
  317.  
  318. dini_Create(file);
  319. dini_IntSet(file, "Password", udb_hash(inputtext));
  320. dini_IntSet(file, "AdminLevel",AccountInfo[playerid][AdminLevel] = 0);
  321. dini_IntSet(file, "Cash",AccountInfo[playerid][Cash] = 5000);
  322. dini_IntSet(file, "Score",AccountInfo[playerid][Score] = 0);
  323.  
  324. format(string, 400, "You successfuly registered as %s", name, inputtext);
  325. SendClientMessage(playerid,COLOR_WHITE, string);
  326. }
  327. if (dialogid == 3334)
  328. {
  329. new name[MAX_PLAYER_NAME];
  330. GetPlayerName(playerid, name, sizeof(name));
  331. format(file, sizeof(file), "Data/users/%s.ini", name);
  332. if(!response) return Kick(playerid);
  333. if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 3334, DIALOG_STYLE_INPUT, "Welcome", "This account is registered\nPlease login", "Login", "Leave");
  334. new tmp;
  335. tmp = dini_Int(file, "Password");
  336. if(udb_hash(inputtext) != tmp) {
  337. SendClientMessage(playerid,COLOR_RED, "You have entered an incorrect password");
  338. ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Welcome", "This account is registered\nPlease login", "Login", "Leave");
  339. }
  340. else
  341. {
  342. SetPlayerMoney(playerid, dini_Int(file, "Cash"));
  343. SetPlayerScore(playerid, dini_Int(file, "Score"));
  344. AccountInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
  345. SendClientMessage(playerid,COLOR_ORANGE, "You successfuly logged in");
  346. SetPlayerPos(playerid, 2020.0795,1342.9370,10.8130);
  347. }
  348. }
  349. if(dialogid == 2221)
  350. {
  351. if(response)
  352. {
  353. switch(listitem)
  354. {
  355. case 0:
  356. {
  357. SetPlayerFightingStyle (playerid, FIGHT_STYLE_BOXING);
  358. }
  359. case 1:
  360. {
  361. SetPlayerFightingStyle (playerid, FIGHT_STYLE_KUNGFU);
  362. }
  363. case 2:
  364. {
  365. SetPlayerFightingStyle (playerid, FIGHT_STYLE_KNEEHEAD);
  366. }
  367. case 3:
  368. {
  369. SetPlayerFightingStyle (playerid, FIGHT_STYLE_GRABKICK);
  370. }
  371. case 4:
  372. {
  373. SetPlayerFightingStyle (playerid, FIGHT_STYLE_ELBOW);
  374. }
  375.  
  376. }
  377.  
  378. }
  379.  
  380. }
  381. return 1;
  382. }
  383.  
  384. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  385. {
  386. return 1;
  387. }
  388.  
  389. dcmd_makeadmin(playerid, params[])
  390. {
  391. new id, lvl, string[256], name[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME];
  392.  
  393. if(IsPlayerConnected(id))
  394. {
  395. if(AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  396. {
  397. if(!sscanf(params, "ui", id, lvl))
  398. {
  399. if((lvl >= 1 && lvl <= 5) || lvl == 0)
  400. {
  401. format(file,sizeof(file),"Accounts/%s.ini",id);
  402.  
  403. GetPlayerName(playerid, name, sizeof(name));
  404. GetPlayerName(id, PlayerName, sizeof(PlayerName));
  405. format(string, sizeof(string), "You are now Admin level %d thanks to %s", lvl, name);
  406. SendClientMessage(id, COLOR_RED, string);
  407. format(string, sizeof(string), "You gave %d an admin level %s", PlayerName, lvl);
  408. SendClientMessage(playerid, COLOR_WHITE, string);
  409. dini_IntSet(file,"AdminLevel", lvl);
  410. AccountInfo[id][AdminLevel] = lvl;
  411. return 1;
  412. }
  413. else return SendClientMessage(playerid, COLOR_RED, "ERROR: Admin level cant go higher that 5 and lower that 1");
  414. }
  415. else return SendClientMessage(playerid, COLOR_RED, "USAGE: /makeadmin [PlayerId/PartOfName] [AdminLevel]");
  416. }
  417. else return SendClientMessage(playerid, COLOR_RED, "You must be RCON loged in to use this command");
  418. }
  419. else return SendClientMessage(playerid, COLOR_RED, "ERROR: Player Is Not Connected");
  420. }
  421.  
  422. dcmd_parch(playerid, params[])
  423. {
  424. #pragma unused params
  425. GivePlayerWeapon(playerid, 46, 1);
  426. return 1;
  427. }
  428.  
  429. dcmd_jetpack(playerid, params[])
  430. {
  431. #pragma unused params
  432. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  433. return 1;
  434. }
  435.  
  436. dcmd_fstyle(playerid, params[])
  437. {
  438. #pragma unused params
  439. ShowPlayerDialog(playerid, 2221, DIALOG_STYLE_LIST, "Fighting Styles:", "Boxing\nKung Fu\nKneeHead\nGrabKick\nElbow", "Select","Cancel");
  440. return 1;
  441. }
  442.  
  443. dcmd_randomcolor(playerid, params[])
  444. {
  445. #pragma unused params
  446. new rand = random(sizeof(PlayerColors));
  447. SetPlayerColor(playerid, PlayerColors[rand]);
  448. return 1;
  449. }
  450.  
  451. dcmd_stats(playerid, params[])
  452. {
  453. #pragma unused params
  454. format(file, sizeof(file), "AdminLevel: %d\nScore: %d\nMoney: %d", AccountInfo[playerid][AdminLevel], GetPlayerScore(playerid), GetPlayerMoney(playerid));
  455. ShowPlayerDialog(playerid, 2223, DIALOG_STYLE_MSGBOX, "Player stats",file,"Close","");
  456. return 1;
  457. }
  458.  
  459. dcmd_commands(playerid, params[])
  460. {
  461. #pragma unused params
  462. if(!IsPlayerAdmin(playerid))
  463. {
  464. ShowPlayerDialog(playerid, 2224, DIALOG_STYLE_MSGBOX, "Server Commands","Player Commands: /parch, /jetpack, /randomcolor, /stats", "Close","");
  465. }
  466. else
  467. {
  468. ShowPlayerDialog(playerid, 2224, DIALOG_STYLE_MSGBOX, "Server Commands","Player Commands: /parch, /jetpack, /randomcolor, /stats\nAdmin Commands: /makeadmin", "Close","");
  469. }
  470. return 1;
  471. }
  472.  
  473.  
  474. stock sscanf(string[], format[], {Float,_}:...) // Thanks to Y_Less
  475. {
  476. new
  477. formatPos = 0,
  478. stringPos = 0,
  479. paramPos = 2,
  480. paramCount = numargs();
  481. while (paramPos < paramCount && string[stringPos])
  482. {
  483. switch (format[formatPos++])
  484. {
  485. case '\0':
  486. {
  487. return 0;
  488. }
  489. case 'i', 'd':
  490. {
  491. new
  492. neg = 1,
  493. num = 0,
  494. ch = string[stringPos];
  495. if (ch == '-')
  496. {
  497. neg = -1;
  498. ch = string[++stringPos];
  499. }
  500. do
  501. {
  502. stringPos++;
  503. if (ch >= '0' && ch <= '9')
  504. {
  505. num = (num * 10) + (ch - '0');
  506. }
  507. else
  508. {
  509. return 1;
  510. }
  511. }
  512. while ((ch = string[stringPos]) && ch != ' ');
  513. setarg(paramPos, 0, num * neg);
  514. }
  515. case 'h', 'x':
  516. {
  517. new
  518. ch,
  519. num = 0;
  520. while ((ch = string[stringPos++]))
  521. {
  522. switch (ch)
  523. {
  524. case 'x', 'X':
  525. {
  526. num = 0;
  527. continue;
  528. }
  529. case '0' .. '9':
  530. {
  531. num = (num << 4) | (ch - '0');
  532. }
  533. case 'a' .. 'f':
  534. {
  535. num = (num << 4) | (ch - ('a' - 10));
  536. }
  537. case 'A' .. 'F':
  538. {
  539. num = (num << 4) | (ch - ('A' - 10));
  540. }
  541. case ' ':
  542. {
  543. break;
  544. }
  545. default:
  546. {
  547. return 1;
  548. }
  549. }
  550. }
  551. setarg(paramPos, 0, num);
  552. }
  553. case 'c':
  554. {
  555. setarg(paramPos, 0, string[stringPos++]);
  556. }
  557. case 'f':
  558. {
  559. new tmp[25];
  560. strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2);
  561. setarg(paramPos, 0, _:floatstr(tmp));
  562. }
  563. case 's', 'z':
  564. {
  565. new
  566. i = 0,
  567. ch;
  568. if (format[formatPos])
  569. {
  570. while ((ch = string[stringPos++]) && ch != ' ')
  571. {
  572. setarg(paramPos, i++, ch);
  573. }
  574. if (!i) return 1;
  575. }
  576. else
  577. {
  578. while ((ch = string[stringPos++]))
  579. {
  580. setarg(paramPos, i++, ch);
  581. }
  582. }
  583. stringPos--;
  584. setarg(paramPos, i, '\0');
  585. }
  586. default:
  587. {
  588. continue;
  589. }
  590. }
  591. while (string[stringPos] && string[stringPos] != ' ')
  592. {
  593. stringPos++;
  594. }
  595. while (string[stringPos] == ' ')
  596. {
  597. stringPos++;
  598. }
  599. paramPos++;
  600. }
  601. while (format[formatPos] == 'z') formatPos++;
  602. return format[formatPos];
  603. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement