Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #include <a_rnpc>
- #include <streamer>
- new NPC1;
- new NPC2;
- new Text3D:NPC_STATS_LABEL;
- main()
- {
- print(" ARNPC GameMode Test Loaded...");
- for(new i = 0; i < 8; i++)
- {
- printf(" ");
- }
- }
- public OnGameModeInit()
- {
- SetGameModeText("ARNPC GameMode Test");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- // CreateRNPC("MyBaby");
- // NPC1 = CreateRNPC("MyBaby2");
- // NPC2 = CreateRNPC("MyBaby2");
- // CreateRNPC("MyBaby3");
- // CreateRNPC("MyBaby4");
- // SetTimer("NPCUsage", 500, false);
- // SetTimer("NPCUsage2", 1500, false);
- for(new i = 0; i < 5; i++)
- {
- new str[128];
- format(str, sizeof(str),"NPC_(%i)", i);
- CreateRNPC(str);
- }
- //MapAndreas_Init(MAP_ANDREAS_MODE_NOBUFFER);
- //PathFinder_Init(2.0);
- return 1;
- }
- public OnRNPCCreated(npcid)
- {
- printf(" GameMode: RNPC %s(%d) has been created ", GetRNPCName(npcid), npcid);
- return 1;
- }
- public OnRNPCDestroyed(npcid)
- {
- printf(" GameMode: RNPC %d has been destroyed ", npcid);
- return 1;
- }
- public OnRNPCSpawn(npcid)
- {
- new str[32];
- printf(" GameMode: NPC %d has spawned ", npcid);
- new Float:x,Float:y,Float:z;
- GetPlayerPos(npcid, x,y,z);
- CreateDynamic3DTextLabel(GetRNPCName(npcid), 0xFF0000FF, x,y,z, 100.0, npcid);
- format(str, sizeof(str), "HP: %d \nARMOUR: %d", GetRNPCHealth(npcid), GetRNPCArmour(npcid));
- NPC_STATS_LABEL = CreateDynamic3DTextLabel(str, 0xFF0000FF, x+10,y+10,z+10, 100.0, npcid);
- //UpdateDynamic3DTextLabelText(NPC_STATS_LABEL, 0xFF0000FF, str); // fix for no string showing correctly on spawn
- SetRNPCWeapon(npcid, random(30));
- print(" Weapon given ");
- return 1;
- }
- forward NPCUsage();
- public NPCUsage()
- {
- if(IsPlayerRNPC(NPC1)) print(" Yes I am NPC");
- NPC1 = CreateRNPC("NPC1");
- SetRNPCSkin(NPC1, 98);
- printf(" NPC %d has Skin %d ", GetRNPCSkin(NPC1));
- SetTimer("DestroyNPC1", 1600, false);
- if(IsPlayerRNPC(NPC1)) print(" Yes I am NPC");
- }
- forward NPCUsage2();
- public NPCUsage2()
- {
- if(IsPlayerRNPC(NPC1)) print(" Yes I am NPC");
- NPC2 = CreateRNPC("NPC2");
- SetRNPCSkin(NPC2, 66);
- printf(" NPC %d has Skin %d ", GetRNPCSkin(NPC2));
- SetTimer("DestroyNPC2", 2000, false);
- if(IsPlayerRNPC(NPC2)) print(" Yes I am NPC2 ");
- }
- forward DestroyNPC1();
- public DestroyNPC1()
- {
- DestroyRNPC(NPC1);
- }
- forward DestroyNPC2();
- public DestroyNPC2()
- {
- DestroyRNPC(NPC1);
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- /*public OnPlayerSpawn(playerid)
- {
- if(IsPlayerRNPC(playerid)) {
- new Float:x,Float:y,Float:z;
- GetPlayerPos(playerid, x,y,z);
- CreateDynamic3DTextLabel(GetRNPCName(playerid), 0xFF0000FF, x,y,z, 100.0, playerid);
- }
- return 1;
- }*/
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- new shoottimer;
- CMD:shootme(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /shootme [npcid]");
- shoottimer = SetTimerEx("TempShoot", 200, true, "ii", playerid, target);
- return 1;
- }
- CMD:aimme(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /shootme [npcid]");
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x,y,z);
- RNPCAimAt(target, x,y);
- return 1;
- }
- CMD:stopuseweapon(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /stopuseweapon [npcid]");
- KillTimer(shoottimer);
- RNPCStopUseWeapon(target);
- return 1;
- }
- forward TempShoot(playerid, target);
- public TempShoot(playerid, target)
- {
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x,y,z);
- RNPCShotAt(target, x,y);
- }
- CMD:followme(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /followme [npcid]");
- RNPCFollowPlayer(target, playerid, RNPC_SPEED_SPRINT);
- return 1;
- }
- CMD:distance(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /distance [npcid]");
- SendFormatMessage(playerid, -1, " The distance between you and npc %d is %.2f ", target, GetDistanceBetweenRNPC(playerid, target));
- return 1;
- }
- CMD:walkhere(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /walkhere [npcid]");
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x,y,z);
- RNPCWalkTo(target,x,y,z);
- print("command returned");
- return 1;
- }
- CMD:givernpcweapon(playerid, params[])
- {
- new target, weaponid;
- if(sscanf(params, "ud", target, weaponid)) return SendClientMessage(playerid, -1, "syntax: /givernpcweapon [npcid][weaponid]");
- SetRNPCWeapon(target, weaponid);
- SendFormatMessage(playerid, -1, "You gave the weapon ID %d to NPC %d", weaponid, target);
- return 1;
- }
- CMD:getrnpcweapon(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcweapon [npcid]");
- SendFormatMessage(playerid, -1, "NPC %d has weaponid %d", target, GetRNPCWeapon(target));
- return 1;
- }
- CMD:setrnpchealth(playerid, params[])
- {
- new target, health, str[32];
- if(sscanf(params, "ud", target, health)) return SendClientMessage(playerid, -1, "syntax: /setrnpchealth [npcid][health]");
- SetRNPCHealth(target, health);
- format(str, sizeof(str), "HP: %d \nARMOUR: %d", GetRNPCHealth(target), GetRNPCArmour(target));
- UpdateDynamic3DTextLabelText(NPC_STATS_LABEL, 0xFF0000FF, str);
- SendFormatMessage(playerid, -1, "The health of NPC %d was set to %d", target, GetRNPCHealth(target));
- return 1;
- }
- CMD:setrnpcarmour(playerid, params[])
- {
- new target, armour, str[32];
- if(sscanf(params, "ud", target, armour)) return SendClientMessage(playerid, -1, "syntax: /setrnpcarmour [npcid][armour]");
- SetRNPCArmour(target, armour);
- format(str, sizeof(str), "HP: %d \nARMOUR: %d", GetRNPCHealth(target), GetRNPCArmour(target));
- UpdateDynamic3DTextLabelText(NPC_STATS_LABEL, 0xFF0000FF, str);
- SendFormatMessage(playerid, -1, "The armour of NPC %d was set to %d", target, GetRNPCArmour(target));
- return 1;
- }
- CMD:getrnpchealth(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpchealth [npcid]");
- SendFormatMessage(playerid, -1, "The health of NPC %d is %d", target, GetRNPCHealth(target));
- return 1;
- }
- CMD:getrnpcarmour(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcarmour [npcid]");
- SendFormatMessage(playerid, -1, "The armour of NPC %d is %d", target, GetRNPCArmour(target));
- return 1;
- }
- CMD:createvehicle(playerid, params[])
- {
- new vehid;
- if(sscanf(params, "d", vehid)) return SendClientMessage(playerid, -1, "syntax: /createvehicle [vehid]");
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid,x,y,z);
- CreateVehicle(vehid, x+2,y,z, 0.0, random(100), random(100), -1);
- return 1;
- }
- CMD:arnpc(playerid, params[])
- {
- SendClientMessage(playerid, -1, "/creaternpc /isplayerrnpc /destroyrnpc /getrnpcid /setrnpcskin /getrnpcskin /getrnpchere /isrnpcsurf /removernpcfromvehicle");
- return 1;
- }
- CMD:setrnpcangle(playerid, params[])
- {
- new target, Float:angle;
- if(sscanf(params, "uf", target, angle)) return SendClientMessage(playerid, -1, "syntax: /setrnpcangle [npcid][float: angle]");
- SetRNPCFacingAngle(target, angle);
- return 1;
- }
- CMD:getrnpcangle(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcangle [npcid]");
- SendFormatMessage(playerid, -1, "NPC %d has angle %f", target, GetNPCFacingAngle(target));
- return 1;
- }
- CMD:removernpcfromvehicle(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /removernpcfromvehicle [npcid]");
- if(!IsPlayerInAnyVehicle(target)) return 1;
- RemoveRNPCFromVehicle(target);
- return 1;
- }
- CMD:creaternpc(playerid, params[])
- {
- new name[24];
- if(sscanf(params, "s[24]", name)) return SendClientMessage(playerid, -1, "syntax: /creaternpc [name]");
- CreateRNPC(name);
- return 1;
- }
- CMD:isplayerrnpc(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /isplayerrnpc [npcid]");
- if(!IsPlayerConnected(target)) return 1;
- if(IsPlayerRNPC(target)) return SendClientMessage(playerid, -1, "Yes! :)");
- if(!IsPlayerRNPC(target)) return SendClientMessage(playerid, -1, "No! :)");
- return 1;
- }
- CMD:destroyrnpc(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /destroyrnpc [npcid]");
- DestroyRNPC(target);
- return 1;
- }
- CMD:getrnpcid(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcid [npcid]");
- SendFormatMessage(playerid, -1, "This RNPCID slot is %d", GetRNPCID(target));
- return 1;
- }
- CMD:setrnpcskin(playerid, params[])
- {
- new target,skin;
- if(sscanf(params, "ud", target, skin)) return SendClientMessage(playerid, -1, "syntax: /setrnpcskin [npcid] [skin]");
- SetRNPCSkin(target, skin);
- return 1;
- }
- CMD:getrnpcskin(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcskin [npcid]");
- SendFormatMessage(playerid, -1, "NPC %d has %d skin", target, GetRNPCSkin(target));
- return 1;
- }
- /*CMD:isrnpcsurf(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /isrnpcsurf [npcid]");
- new surf = GetRNPCSurfingVehicle(target);
- if(surf == INVALID_VEHICLE_ID) SendFormatMessage(playerid, -1, "NPC %d is not surfing any vehicle!", target);
- else SendFormatMessage(playerid, -1, "NPC %d is surfing vehicle %d", target, surf);
- return 1;
- }*/
- CMD:getrnpchere(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpchere [npcid]");
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, X,Y,Z);
- SetRNPCPos(target, X+1, Y, Z);
- return 1;
- }
- CMD:getrnpcname(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, "syntax: /getrnpcname [npcid]");
- SendFormatMessage(playerid, -1, "NPC %d has name %s", target, GetRNPCName(target));
- return 1;
- }
- CMD:putrnpcinvehicle(playerid, params[])
- {
- new target, veh, sit;
- if(sscanf(params, "udd", target, veh, sit)) return SendClientMessage(playerid, -1, " syntax: /putrnpcinvehicle [npcid][veh id][sit]");
- //if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You must be in a vehicle");
- //new mysit = GetPlayerVehicleSeat(playerid);
- //if(mysit == sit) return SendClientMessage(playerid, -1, "You cannot force a NPC to sit on your own sit");
- PutRNPCInVehicle(target, veh, sit);
- return 1;
- }
- CMD:gethere(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /gethere [npcid]");
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x,y,z);
- SetPlayerPos(target, x+5, y,z);
- return 1;
- }
- CMD:getsiren(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /getsiren [npcid]");
- SendFormatMessage(playerid, -1, " Current siren state %d", GetRNPCVehicleSiren(target));
- return 1;
- }
- CMD:sirenon(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /sirenon [npcid]");
- SetRNPCVehicleSiren(target, 1);
- return 1;
- }
- CMD:sirenoff(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /sirenoff [npcid]");
- SetRNPCVehicleSiren(target, 0);
- return 1;
- }
- CMD:setrnpcskilllevel(playerid, params[])
- {
- new target, level;
- if(sscanf(params, "ud", target, level)) return SendClientMessage(playerid, -1, " syntax: /setrnpcskilllevel [level of pistol]");
- //if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You must be in a vehicle");
- //new mysit = GetPlayerVehicleSeat(playerid);
- //if(mysit == sit) return SendClientMessage(playerid, -1, "You cannot force a NPC to sit on your own sit");
- SetRNPCSkillLevel(target, WEAPONSKILL_PISTOL, level);
- return 1;
- }
- CMD:putrnpcinvehicle2(playerid, params[])
- {
- new target, veh;
- if(sscanf(params, "ud", target, veh)) return SendClientMessage(playerid, -1, " syntax: /putrnpcinvehicle2 [npcid][veh id]");
- //if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You must be in a vehicle");
- //new mysit = GetPlayerVehicleSeat(playerid);
- //if(mysit == sit) return SendClientMessage(playerid, -1, "You cannot force a NPC to sit on your own sit");
- PutRNPCInVehicle(target, veh, 1);
- SetTimerEx("invehicle3", 2500, false, "ii", target, veh);
- return 1;
- }
- CMD:vw(playerid, params[])
- {
- new target, vw;
- if(sscanf(params, "ud", target, vw)) return SendClientMessage(playerid, -1, " syntax: /wv [npcid][virtualworld]");
- SetRNPCVirtualWorld(target, vw);
- SendFormatMessage(playerid, -1, " Player %d was set to vw %d", target, vw);
- return 1;
- }
- CMD:vwget(playerid, params[])
- {
- new target;
- if(sscanf(params, "u", target)) return SendClientMessage(playerid, -1, " syntax: /vwget [npcid]");
- new vw = GetRNPCVirtualWorld(target);
- SendFormatMessage(playerid, -1, " Player %d is in virtual world %d", target, vw);
- return 1;
- }
- forward invehicle3(target, veh);
- public invehicle3(target, veh)
- {
- RemoveRNPCFromVehicle(target);
- PutRNPCInVehicle(target, veh, 2);
- SendClientMessageToAll( -1, "invehicle3 executed");
- }
- stock SendFormatMessage(const iPlayer, const iColor, const szFormat[], { Float, _ }: ...) { // Improved by SiX_MiX [Snir]
- new iArgs = ((numargs() - 3) << 2);
- if(iArgs){
- static _:s_szBuf[144],s_iAddr1,s_iAddr2;
- #emit ADDR.PRI szFormat
- #emit STOR.PRI s_iAddr1
- for(s_iAddr2 = s_iAddr1 + iArgs, iArgs += 12; s_iAddr2 != s_iAddr1; s_iAddr2 -= 4) {
- #emit LOAD.PRI s_iAddr2
- #emit LOAD.I
- #emit PUSH.PRI
- }
- #emit CONST.PRI s_szBuf
- #emit PUSH.S szFormat
- #emit PUSH.C 144
- #emit PUSH.PRI
- #emit PUSH.S iArgs
- #emit SYSREQ.C format
- #emit LCTRL 4
- #emit LOAD.S.ALT iArgs
- #emit ADD.C 4
- #emit ADD
- #emit SCTRL 4
- return (iPlayer != -1) ? SendClientMessage(iPlayer, iColor, s_szBuf) : SendClientMessageToAll(iColor, s_szBuf);
- }
- return (iPlayer != -1) ? SendClientMessage(iPlayer, iColor, szFormat) : SendClientMessageToAll(iColor, szFormat);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement