28.02.2014, 00:55
(
Последний раз редактировалось Pottus; 28.02.2014 в 17:33.
)
Enhanced NPC Development
This is geared towards more experienced scripters.Objective
Enhance our development environment by combining known NPC resources to provide an improved platform in which NPC's can be used.
The Idea
RNPC provides a very nice low level NPC implementation it is possible to create sequences in a programmatic fashion I really think this is underestimated at times with the focus put mostly on FCNPC. Now wouldn't it be nice if FCNPC could also have the capabilities of RNPC? Well the fact of the matter it already does RNPC simply creates recordings FCNPC has the ability to playback any recording. I will explain the steps required to achieve this system for your development purposes.
Advantages
1.) Provides a low level NPC builder
2.) Extends NPC possibilities
3.) Address issues by using the best result for the job for instance RNPC yields better movement across terrain than FCNPC but FCNPC is better for melee attacks on players yes it's true
4.) FCNPC is much easier to connect lots of NPCs quickly and effectively
5.) RNPC connects players at player slot 0 FNPC starts at maxplayers defined in server.cfg reducing .amx size
Requirements
FCNPC - https://sampforum.blast.hk/showthread.php?tid=428066 (For some reason some of the NPC resources are missing right now)
RNPC - https://sampforum.blast.hk/showthread.php?tid=355849
Patience - NPC development is very tedious take small steps and test everything you do!
Process
Configure your server.cfg
1.) Add RNPC and FCNPC plugins to your SAMP server
2.) Set maxplayers to MAX_PLAYERS+MAX_NPC you will need to define MAX_NPC in your gamemode
3.) Set maxnpc to MAX_NPC
4.) Save
Note: You won't need to have MAX_PLAYERS take into account NPC player ids this will optimize your variable sizes for instance if your server has 300 player slots and 200 npc slots MAX_PLAYERS should be 300 and MAX_NPC should be 200 but maxplayers in your server.cfg would be 500
Support Code
This is pretty much it, we just need a function for playing back recordings generated by RNPC this function takes care of that just call it after creating an RNPC build.
(Recommend to put this in FCNPC.inc)
At top of gamemode or your NPC include module
pawn Код:
#include <FCNPC>
#include <RNPC>
pawn Код:
stock FCNPC_StartRNPCPlayBack(npcid)
{
new recname[16];
format(recname, sizeof(recname), "rnpc%03d-00", npcid);
FCNPC_StopRecordingPlayback(npcid);
FCNPC_StartRecordingPlayback(npcid, recname);
return 1;
}
Conclusion
This was a very simple process to achieve a huge amount of extended functionality that FCNPC can utilize and it all but requires 5 minutes of work! But the results speak for themselves the best of both plugins are easily combined even newbies shouldn't have much trouble.
@Edit - Updated the function.