Advertisement
Brian_Furious

ARNPC include gamemode test 1.1R2

Aug 21st, 2013
1,286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 17.06 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf2>
  4. #include <a_rnpc>
  5. #include <streamer>
  6.  
  7. new NPC1;
  8. new NPC2;
  9. new Text3D:NPC_STATS_LABEL;
  10.  
  11. main()
  12. {
  13.     print(" ARNPC GameMode Test Loaded...");
  14.     for(new i = 0; i < 8; i++)
  15.     {
  16.         printf(" ");
  17.     }
  18. }
  19.  
  20. public OnGameModeInit()
  21. {
  22.     SetGameModeText("ARNPC GameMode Test");
  23.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  24. //  CreateRNPC("MyBaby");
  25. //  NPC1 = CreateRNPC("MyBaby2");
  26. //  NPC2 = CreateRNPC("MyBaby2");
  27. //  CreateRNPC("MyBaby3");
  28. //  CreateRNPC("MyBaby4");
  29. //  SetTimer("NPCUsage", 500, false);
  30. //  SetTimer("NPCUsage2", 1500, false);
  31.     for(new i = 0; i < 5; i++)
  32.     {
  33.         new str[128];
  34.         format(str, sizeof(str),"NPC_(%i)", i);
  35.         CreateRNPC(str);
  36.     }
  37.     //MapAndreas_Init(MAP_ANDREAS_MODE_NOBUFFER);
  38.     //PathFinder_Init(2.0);
  39.     return 1;
  40. }
  41.  
  42. public OnRNPCCreated(npcid)
  43. {
  44.     printf(" GameMode: RNPC %s(%d) has been created ", GetRNPCName(npcid), npcid);
  45.     return 1;
  46. }
  47.  
  48. public OnRNPCDestroyed(npcid)
  49. {
  50.     printf(" GameMode: RNPC %d has been destroyed ", npcid);
  51.     return 1;
  52. }
  53.  
  54. public OnRNPCSpawn(npcid)
  55. {
  56.     new str[32];
  57.     printf(" GameMode: NPC %d has spawned ", npcid);
  58.     new Float:x,Float:y,Float:z;
  59.     GetPlayerPos(npcid, x,y,z);
  60.     CreateDynamic3DTextLabel(GetRNPCName(npcid), 0xFF0000FF, x,y,z, 100.0, npcid);
  61.     format(str, sizeof(str), "HP: %d \nARMOUR: %d", GetRNPCHealth(npcid), GetRNPCArmour(npcid));
  62.     NPC_STATS_LABEL = CreateDynamic3DTextLabel(str, 0xFF0000FF, x+10,y+10,z+10, 100.0, npcid);
  63.     //UpdateDynamic3DTextLabelText(NPC_STATS_LABEL, 0xFF0000FF, str); // fix for no string showing correctly on spawn
  64.     SetRNPCWeapon(npcid, random(30));
  65.     print(" Weapon given ");
  66.     return 1;
  67. }
  68.  
  69. forward NPCUsage();
  70. public NPCUsage()
  71. {
  72.     if(IsPlayerRNPC(NPC1)) print(" Yes I am NPC");
  73.     NPC1 = CreateRNPC("NPC1");
  74.     SetRNPCSkin(NPC1, 98);
  75.     printf(" NPC %d has Skin %d ", GetRNPCSkin(NPC1));
  76.     SetTimer("DestroyNPC1", 1600, false);
  77.     if(IsPlayerRNPC(NPC1)) print(" Yes I am NPC");
  78. }
  79.  
  80. forward NPCUsage2();
  81. public NPCUsage2()
  82. {
  83.     if(IsPlayerRNPC(NPC1)) print(" Yes I am NPC");
  84.     NPC2 = CreateRNPC("NPC2");
  85.     SetRNPCSkin(NPC2, 66);
  86.     printf(" NPC %d has Skin %d ", GetRNPCSkin(NPC2));
  87.     SetTimer("DestroyNPC2", 2000, false);
  88.     if(IsPlayerRNPC(NPC2)) print(" Yes I am NPC2 ");
  89. }
  90.  
  91. forward DestroyNPC1();
  92. public DestroyNPC1()
  93. {
  94.     DestroyRNPC(NPC1);
  95. }
  96.  
  97. forward DestroyNPC2();
  98. public DestroyNPC2()
  99. {
  100.     DestroyRNPC(NPC1);
  101. }
  102.  
  103. public OnGameModeExit()
  104. {
  105.     return 1;
  106. }
  107.  
  108. public OnPlayerRequestClass(playerid, classid)
  109. {
  110.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  111.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  112.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  113.     return 1;
  114. }
  115.  
  116. public OnPlayerConnect(playerid)
  117. {
  118.     return 1;
  119. }
  120.  
  121. public OnPlayerDisconnect(playerid, reason)
  122. {
  123.     return 1;
  124. }
  125.  
  126. /*public OnPlayerSpawn(playerid)
  127. {
  128.     if(IsPlayerRNPC(playerid)) {
  129.         new Float:x,Float:y,Float:z;
  130.         GetPlayerPos(playerid, x,y,z);
  131.         CreateDynamic3DTextLabel(GetRNPCName(playerid), 0xFF0000FF, x,y,z, 100.0, playerid);
  132.     }
  133.     return 1;
  134. }*/
  135.  
  136. public OnPlayerDeath(playerid, killerid, reason)
  137. {
  138.     return 1;
  139. }
  140.  
  141. public OnVehicleSpawn(vehicleid)
  142. {
  143.     return 1;
  144. }
  145.  
  146. public OnVehicleDeath(vehicleid, killerid)
  147. {
  148.     return 1;
  149. }
  150.  
  151. public OnPlayerText(playerid, text[])
  152. {
  153.     return 1;
  154. }
  155.  
  156. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  157. {
  158.     return 1;
  159. }
  160.  
  161. public OnPlayerExitVehicle(playerid, vehicleid)
  162. {
  163.     return 1;
  164. }
  165.  
  166. public OnPlayerStateChange(playerid, newstate, oldstate)
  167. {
  168.     return 1;
  169. }
  170.  
  171. public OnPlayerEnterCheckpoint(playerid)
  172. {
  173.     return 1;
  174. }
  175.  
  176. public OnPlayerLeaveCheckpoint(playerid)
  177. {
  178.     return 1;
  179. }
  180.  
  181. public OnPlayerEnterRaceCheckpoint(playerid)
  182. {
  183.     return 1;
  184. }
  185.  
  186. public OnPlayerLeaveRaceCheckpoint(playerid)
  187. {
  188.     return 1;
  189. }
  190.  
  191. public OnRconCommand(cmd[])
  192. {
  193.     return 1;
  194. }
  195.  
  196. public OnPlayerRequestSpawn(playerid)
  197. {
  198.     return 1;
  199. }
  200.  
  201. public OnObjectMoved(objectid)
  202. {
  203.     return 1;
  204. }
  205.  
  206. public OnPlayerObjectMoved(playerid, objectid)
  207. {
  208.     return 1;
  209. }
  210.  
  211. public OnPlayerPickUpPickup(playerid, pickupid)
  212. {
  213.     return 1;
  214. }
  215.  
  216. public OnVehicleMod(playerid, vehicleid, componentid)
  217. {
  218.     return 1;
  219. }
  220.  
  221. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  222. {
  223.     return 1;
  224. }
  225.  
  226. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  227. {
  228.     return 1;
  229. }
  230.  
  231. public OnPlayerSelectedMenuRow(playerid, row)
  232. {
  233.     return 1;
  234. }
  235.  
  236. public OnPlayerExitedMenu(playerid)
  237. {
  238.     return 1;
  239. }
  240.  
  241. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  242. {
  243.     return 1;
  244. }
  245.  
  246. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  247. {
  248.     return 1;
  249. }
  250.  
  251. public OnRconLoginAttempt(ip[], password[], success)
  252. {
  253.     return 1;
  254. }
  255.  
  256. public OnPlayerUpdate(playerid)
  257. {
  258.     return 1;
  259. }
  260.  
  261. public OnPlayerStreamIn(playerid, forplayerid)
  262. {
  263.     return 1;
  264. }
  265.  
  266. public OnPlayerStreamOut(playerid, forplayerid)
  267. {
  268.     return 1;
  269. }
  270.  
  271. public OnVehicleStreamIn(vehicleid, forplayerid)
  272. {
  273.     return 1;
  274. }
  275.  
  276. public OnVehicleStreamOut(vehicleid, forplayerid)
  277. {
  278.     return 1;
  279. }
  280.  
  281. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  282. {
  283.     return 1;
  284. }
  285.  
  286. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  287. {
  288.     return 1;
  289. }
  290.  
  291. new shoottimer;
  292.  
  293. CMD:shootme(playerid, params[])
  294. {
  295.     new target;
  296.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /shootme [npcid]");
  297.     shoottimer = SetTimerEx("TempShoot", 200, true, "ii", playerid, target);
  298.     return 1;
  299. }
  300.  
  301. CMD:aimme(playerid, params[])
  302. {
  303.     new target;
  304.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /shootme [npcid]");
  305.     new Float:x, Float:y, Float:z;
  306.     GetPlayerPos(playerid, x,y,z);
  307.     RNPCAimAt(target, x,y);
  308.     return 1;
  309. }
  310.  
  311. CMD:stopuseweapon(playerid, params[])
  312. {
  313.     new target;
  314.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /stopuseweapon [npcid]");
  315.     KillTimer(shoottimer);
  316.     RNPCStopUseWeapon(target);
  317.     return 1;
  318. }
  319.  
  320. forward TempShoot(playerid, target);
  321. public TempShoot(playerid, target)
  322. {
  323.     new Float:x, Float:y, Float:z;
  324.     GetPlayerPos(playerid, x,y,z);
  325.     RNPCShotAt(target, x,y);
  326. }
  327.  
  328.  
  329. CMD:followme(playerid, params[])
  330. {
  331.     new target;
  332.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /followme [npcid]");
  333.     RNPCFollowPlayer(target, playerid, RNPC_SPEED_SPRINT);
  334.     return 1;
  335. }
  336.  
  337. CMD:distance(playerid, params[])
  338. {
  339.     new target;
  340.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /distance [npcid]");
  341.     SendFormatMessage(playerid, -1, " The distance between you and npc %d is %.2f ", target, GetDistanceBetweenRNPC(playerid, target));
  342.     return 1;
  343. }
  344.  
  345. CMD:walkhere(playerid, params[])
  346. {
  347.     new target;
  348.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /walkhere [npcid]");
  349.     new Float:x, Float:y, Float:z;
  350.     GetPlayerPos(playerid, x,y,z);
  351.     RNPCWalkTo(target,x,y,z);
  352.     print("command returned");
  353.     return 1;
  354. }
  355.  
  356. CMD:givernpcweapon(playerid, params[])
  357. {
  358.     new target, weaponid;
  359.     if(sscanf(params, "ud", target, weaponid)) return SendClientMessage(playerid, -1, "syntax: /givernpcweapon [npcid][weaponid]");
  360.     SetRNPCWeapon(target, weaponid);
  361.     SendFormatMessage(playerid, -1, "You gave the weapon ID %d to NPC %d", weaponid, target);
  362.     return 1;
  363. }
  364.  
  365. CMD:getrnpcweapon(playerid, params[])
  366. {
  367.     new target;
  368.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcweapon [npcid]");
  369.     SendFormatMessage(playerid, -1, "NPC %d has weaponid %d", target, GetRNPCWeapon(target));
  370.     return 1;
  371. }
  372.  
  373. CMD:setrnpchealth(playerid, params[])
  374. {
  375.     new target, health, str[32];
  376.     if(sscanf(params, "ud", target, health)) return SendClientMessage(playerid, -1, "syntax: /setrnpchealth [npcid][health]");
  377.     SetRNPCHealth(target, health);
  378.     format(str, sizeof(str), "HP: %d \nARMOUR: %d", GetRNPCHealth(target), GetRNPCArmour(target));
  379.     UpdateDynamic3DTextLabelText(NPC_STATS_LABEL, 0xFF0000FF, str);
  380.     SendFormatMessage(playerid, -1, "The health of NPC %d was set to %d", target, GetRNPCHealth(target));
  381.     return 1;
  382. }
  383.  
  384. CMD:setrnpcarmour(playerid, params[])
  385. {
  386.     new target, armour, str[32];
  387.     if(sscanf(params, "ud", target, armour)) return SendClientMessage(playerid, -1, "syntax: /setrnpcarmour [npcid][armour]");
  388.     SetRNPCArmour(target, armour);
  389.     format(str, sizeof(str), "HP: %d \nARMOUR: %d", GetRNPCHealth(target), GetRNPCArmour(target));
  390.     UpdateDynamic3DTextLabelText(NPC_STATS_LABEL, 0xFF0000FF, str);
  391.     SendFormatMessage(playerid, -1, "The armour of NPC %d was set to %d", target, GetRNPCArmour(target));
  392.     return 1;
  393. }
  394.  
  395. CMD:getrnpchealth(playerid, params[])
  396. {
  397.     new target;
  398.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpchealth [npcid]");
  399.     SendFormatMessage(playerid, -1, "The health of NPC %d is %d", target, GetRNPCHealth(target));
  400.     return 1;
  401. }
  402.  
  403. CMD:getrnpcarmour(playerid, params[])
  404. {
  405.     new target;
  406.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcarmour [npcid]");
  407.     SendFormatMessage(playerid, -1, "The armour of NPC %d is %d", target, GetRNPCArmour(target));
  408.     return 1;
  409. }
  410.  
  411. CMD:createvehicle(playerid, params[])
  412. {
  413.     new vehid;
  414.     if(sscanf(params, "d", vehid)) return SendClientMessage(playerid, -1, "syntax: /createvehicle [vehid]");
  415.     new Float:x, Float:y, Float:z;
  416.     GetPlayerPos(playerid,x,y,z);
  417.     CreateVehicle(vehid, x+2,y,z, 0.0, random(100), random(100), -1);
  418.     return 1;
  419. }
  420.  
  421. CMD:arnpc(playerid, params[])
  422. {
  423.     SendClientMessage(playerid, -1, "/creaternpc /isplayerrnpc /destroyrnpc /getrnpcid /setrnpcskin /getrnpcskin /getrnpchere /isrnpcsurf /removernpcfromvehicle");
  424.     return 1;
  425. }
  426.  
  427. CMD:setrnpcangle(playerid, params[])
  428. {
  429.     new target, Float:angle;
  430.     if(sscanf(params, "uf", target, angle)) return SendClientMessage(playerid, -1, "syntax: /setrnpcangle [npcid][float: angle]");
  431.     SetRNPCFacingAngle(target, angle);
  432.     return 1;
  433. }
  434.  
  435. CMD:getrnpcangle(playerid, params[])
  436. {
  437.     new target;
  438.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcangle [npcid]");
  439.     SendFormatMessage(playerid, -1, "NPC %d has angle %f", target, GetNPCFacingAngle(target));
  440.     return 1;
  441. }
  442.  
  443. CMD:removernpcfromvehicle(playerid, params[])
  444. {
  445.     new target;
  446.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /removernpcfromvehicle [npcid]");
  447.     if(!IsPlayerInAnyVehicle(target)) return 1;
  448.     RemoveRNPCFromVehicle(target);
  449.     return 1;
  450. }
  451.  
  452. CMD:creaternpc(playerid, params[])
  453. {
  454.     new name[24];
  455.     if(sscanf(params, "s[24]", name)) return SendClientMessage(playerid, -1, "syntax: /creaternpc [name]");
  456.     CreateRNPC(name);
  457.     return 1;
  458. }
  459.  
  460. CMD:isplayerrnpc(playerid, params[])
  461. {
  462.     new target;
  463.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /isplayerrnpc [npcid]");
  464.     if(!IsPlayerConnected(target)) return 1;
  465.     if(IsPlayerRNPC(target)) return SendClientMessage(playerid, -1, "Yes! :)");
  466.     if(!IsPlayerRNPC(target)) return SendClientMessage(playerid, -1, "No! :)");
  467.     return 1;
  468. }
  469.  
  470. CMD:destroyrnpc(playerid, params[])
  471. {
  472.     new target;
  473.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /destroyrnpc [npcid]");
  474.     DestroyRNPC(target);
  475.     return 1;
  476. }
  477.  
  478. CMD:getrnpcid(playerid, params[])
  479. {
  480.     new target;
  481.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcid [npcid]");
  482.     SendFormatMessage(playerid, -1, "This RNPCID slot is %d", GetRNPCID(target));
  483.     return 1;
  484. }
  485.  
  486. CMD:setrnpcskin(playerid, params[])
  487. {
  488.     new target,skin;
  489.     if(sscanf(params, "ud", target, skin)) return SendClientMessage(playerid, -1, "syntax: /setrnpcskin [npcid] [skin]");
  490.     SetRNPCSkin(target, skin);
  491.     return 1;
  492. }
  493.  
  494. CMD:getrnpcskin(playerid, params[])
  495. {
  496.     new target;
  497.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcskin [npcid]");
  498.     SendFormatMessage(playerid, -1, "NPC %d has %d skin", target, GetRNPCSkin(target));
  499.     return 1;
  500. }
  501.  
  502. /*CMD:isrnpcsurf(playerid, params[])
  503. {
  504.     new target;
  505.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /isrnpcsurf [npcid]");
  506.     new surf = GetRNPCSurfingVehicle(target);
  507.     if(surf == INVALID_VEHICLE_ID) SendFormatMessage(playerid, -1, "NPC %d is not surfing any vehicle!", target);
  508.     else SendFormatMessage(playerid, -1, "NPC %d is surfing vehicle %d", target, surf);
  509.     return 1;
  510. }*/
  511.  
  512. CMD:getrnpchere(playerid, params[])
  513. {
  514.     new target;
  515.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpchere [npcid]");
  516.     new Float:X, Float:Y, Float:Z;
  517.     GetPlayerPos(playerid, X,Y,Z);
  518.     SetRNPCPos(target, X+1, Y, Z);
  519.     return 1;
  520. }
  521.  
  522. CMD:getrnpcname(playerid, params[])
  523. {
  524.     new target;
  525.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcname [npcid]");
  526.     SendFormatMessage(playerid, -1, "NPC %d has name %s", target, GetRNPCName(target));
  527.     return 1;
  528. }
  529.  
  530. CMD:putrnpcinvehicle(playerid, params[])
  531. {
  532.     new target, veh, sit;
  533.     if(sscanf(params, "udd", target, veh, sit)) return SendClientMessage(playerid, -1, " syntax: /putrnpcinvehicle [npcid][veh id][sit]");
  534.     //if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You must be in a vehicle");
  535.     //new mysit = GetPlayerVehicleSeat(playerid);
  536.     //if(mysit == sit) return SendClientMessage(playerid, -1, "You cannot force a NPC to sit on your own sit");
  537.     PutRNPCInVehicle(target, veh, sit);
  538.     return 1;
  539. }
  540.  
  541. CMD:gethere(playerid, params[])
  542. {
  543.     new target;
  544.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /gethere [npcid]");
  545.     new Float:x, Float:y, Float:z;
  546.     GetPlayerPos(playerid, x,y,z);
  547.     SetPlayerPos(target, x+5, y,z);
  548.     return 1;
  549. }
  550.  
  551. CMD:getsiren(playerid, params[])
  552. {
  553.     new target;
  554.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /getsiren [npcid]");
  555.     SendFormatMessage(playerid, -1, " Current siren state %d", GetRNPCVehicleSiren(target));
  556.     return 1;
  557. }
  558.  
  559. CMD:sirenon(playerid, params[])
  560. {
  561.     new target;
  562.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /sirenon [npcid]");
  563.     SetRNPCVehicleSiren(target, 1);
  564.     return 1;
  565. }
  566.  
  567. CMD:sirenoff(playerid, params[])
  568. {
  569.     new target;
  570.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /sirenoff [npcid]");
  571.     SetRNPCVehicleSiren(target, 0);
  572.     return 1;
  573. }
  574.  
  575. CMD:setrnpcskilllevel(playerid, params[])
  576. {
  577.     new target, level;
  578.     if(sscanf(params, "ud", target, level)) return SendClientMessage(playerid, -1, " syntax: /setrnpcskilllevel [level of pistol]");
  579.     //if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You must be in a vehicle");
  580.     //new mysit = GetPlayerVehicleSeat(playerid);
  581.     //if(mysit == sit) return SendClientMessage(playerid, -1, "You cannot force a NPC to sit on your own sit");
  582.     SetRNPCSkillLevel(target, WEAPONSKILL_PISTOL, level);
  583.     return 1;
  584. }
  585.  
  586. CMD:putrnpcinvehicle2(playerid, params[])
  587. {
  588.     new target, veh;
  589.     if(sscanf(params, "ud", target, veh)) return SendClientMessage(playerid, -1, " syntax: /putrnpcinvehicle2 [npcid][veh id]");
  590.     //if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You must be in a vehicle");
  591.     //new mysit = GetPlayerVehicleSeat(playerid);
  592.     //if(mysit == sit) return SendClientMessage(playerid, -1, "You cannot force a NPC to sit on your own sit");
  593.     PutRNPCInVehicle(target, veh, 1);
  594.     SetTimerEx("invehicle3", 2500, false, "ii", target, veh);
  595.     return 1;
  596. }
  597.  
  598. CMD:vw(playerid, params[])
  599. {
  600.     new target, vw;
  601.     if(sscanf(params, "ud", target, vw)) return SendClientMessage(playerid, -1, " syntax: /wv [npcid][virtualworld]");
  602.     SetRNPCVirtualWorld(target, vw);
  603.     SendFormatMessage(playerid, -1, " Player %d was set to vw %d", target, vw);
  604.     return 1;
  605. }
  606.  
  607. CMD:vwget(playerid, params[])
  608. {
  609.     new target;
  610.     if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /vwget [npcid]");
  611.     new vw = GetRNPCVirtualWorld(target);
  612.     SendFormatMessage(playerid, -1, " Player %d is in virtual world %d", target, vw);
  613.     return 1;
  614. }
  615.  
  616. forward invehicle3(target, veh);
  617. public invehicle3(target, veh)
  618. {
  619.     RemoveRNPCFromVehicle(target);
  620.     PutRNPCInVehicle(target, veh, 2);
  621.     SendClientMessageToAll( -1, "invehicle3 executed");
  622. }
  623.  
  624. stock SendFormatMessage(const iPlayer, const iColor, const szFormat[], { Float, _ }: ...) { // Improved by SiX_MiX [Snir]
  625.     new iArgs = ((numargs() - 3) << 2);
  626.     if(iArgs){
  627.         static _:s_szBuf[144],s_iAddr1,s_iAddr2;
  628.         #emit ADDR.PRI szFormat
  629.         #emit STOR.PRI s_iAddr1
  630.         for(s_iAddr2 = s_iAddr1 + iArgs, iArgs += 12; s_iAddr2 != s_iAddr1; s_iAddr2 -= 4) {
  631.             #emit LOAD.PRI s_iAddr2
  632.             #emit LOAD.I
  633.             #emit PUSH.PRI
  634.         }
  635.         #emit CONST.PRI s_szBuf
  636.         #emit PUSH.S szFormat
  637.         #emit PUSH.C 144
  638.         #emit PUSH.PRI
  639.         #emit PUSH.S iArgs
  640.         #emit SYSREQ.C format
  641.         #emit LCTRL 4
  642.         #emit LOAD.S.ALT iArgs
  643.         #emit ADD.C 4
  644.         #emit ADD
  645.         #emit SCTRL 4
  646.         return (iPlayer != -1) ? SendClientMessage(iPlayer, iColor, s_szBuf) : SendClientMessageToAll(iColor, s_szBuf);
  647.     }
  648.     return (iPlayer != -1) ? SendClientMessage(iPlayer, iColor, szFormat) : SendClientMessageToAll(iColor, szFormat);
  649. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement