|
|
#1 |
|
High-roller
![]() ![]() ![]() ![]() ![]() Join Date: Jun 2007
Location: Western Germany
Posts: 2,865
Reputation: 617
|
Its been a while since I wrote about my experiences with the .rec files. Later, Joe Staff released a code snippet to generate rec files. Now I finally made use of this, as I planned to do all the time, and started creating a plugin to control NPCs by manipulating and creating rec files.
The generate code is now completely rewritten for a better performance, and more possibilities. What RNPC does RNPC currently offers complete control over OnFoot-NPCs. Easy or complex actions can be assembled in the script using the "build mode". You can read about how it all works on the wiki page. Theres also some example code. The plugin comes with a npcmode and include, that do most of the job, as well as a filterscript for testing. What RNPC should do RNPC is just in developement, but might already be useful for some people. Im looking forward to add these functionalities some time:
Bugs Creating a new recording file (using RNPC_CreateBuild) on the same slot the NPC is currently playing back will crash the NPC. Fix: Stop the NPC playback before creating the build, or create the build on another slot. ConnectRNPC does not always return the correct ID when used in OnGameModeInit or main. Fix: Create NPCs slightly delayed with a timer when the gamemode is fully loaded. Starting vehicle playbacks is delayed if the vehicle is far away from its recorded position. Fix: This is a SA-MP issue, however it can be fixed when specifiing the vehicleid in RNPC_StartBuildPlayback. This will start the recording twice with a small delay, which seems to fix the problem. Some people got problems with missing DLLs. Try downloading these and put them in your server directory: msvcr100d.dll msvcp100d.dll Background info The system behind it is quite easy. When MoveRNPC is called, the plugin generates a .rec file for the movement from A to B. Then a clientmessage is sent to the npc, telling him that theres a new action in his record file. He plays it back, and reports back when its done. The "build mode" is meant to assemble more complex actions than just walking. When starting it, the record file is created, and new segments are added whenever something is added in the script. This way the .rec file is built step-by-step, and can easily be played back after finishing it. As this is quite complicated if you arent familiar with the way .rec files work, Ill add CNPC-like Mid-level functions later. The source currently contains MapAndreas. Dont get confused by that, I altered an old project and as im going to need MapAndreas anyways at a later stage I just kept it there. Changelog 0.1: Initial release 0.2: Huge amount of changes, the plugin is now really useable for normal servers:
Download Currently only windows version for testing and experiments. Version 0.1 (1.7.2012): .DLL + npcmode + include + source Version 0.2 (3.7.2012): .DLL + npcmode + include + source + testfilterscript Version 0.2.1 (4.7.2012): .DLL + .so and all the previous stuff Version 0.3 (13.7.2012): .DLL and .so, etc Version 0.3.1 Plugin (restored 28.10.2012): Plugin source, .so and .dll This might work with the 0.3 include file, but i didnt test it myself. Version 0.3.1 Release compile (21.1.2013): .DLL and .so A release compile, shouldnt need the above dlls, and should run faster. Thanks to KingJ for explaining me how to do that. Version 0.3.1.1 Fixed RNPC_StopPlayback (25.2.2013), full package with 0.3.1 release version plugin (actually working link) Third party ARNPC include by TheArcher - An edited version of the RNPC include that fixes a bunch of bugs, and adds some new functions like RNPCFollowPlayer Have fun, and give some feedback
Last edited by Mauzen; 22/03/2013 at 10:43 PM. Reason: Planned features updated |
|
|
|
|
|
#2 |
|
High-roller
![]() ![]() ![]() ![]() ![]() Join Date: Jul 2010
Location: England
Posts: 2,182
Reputation: 51
|
This. Is. Awesome.
|
|
|
|
|
|
#3 |
|
Huge Clucker
![]() ![]() ![]() Join Date: Oct 2011
Posts: 356
Reputation: 13
|
Very good job! Keep it up
.
|
|
|
|
|
|
#4 |
|
High-roller
![]() ![]() ![]() ![]() ![]() Join Date: Dec 2010
Location: Belgium
Posts: 2,409
Reputation: 707
|
Aw yeaaah
Nice work !
|
|
|
|
|
|
#5 |
|
High-roller
![]() ![]() ![]() ![]() ![]() Join Date: May 2010
Location: Black Asylum
Posts: 2,399
Reputation: 210
|
NICE!. I CAN'T WAIT FOR Vehicle support!
|
|
|
|
|
|
#6 |
|
High-roller
![]() ![]() ![]() ![]() ![]() Join Date: Aug 2007
Posts: 2,744
Reputation: 327
|
As I mentioned in my old thread, it should be relatively easy to create configuring functions pre-rec generation like so...
pawn Code:
|
|
|
|
|
|
#7 | |
|
High-roller
![]() ![]() ![]() ![]() ![]() Join Date: Jun 2007
Location: Western Germany
Posts: 2,865
Reputation: 617
|
Quote:
Structure will change a bit with the new generation code. Recordings will be appendable (already are in the current version, but just in the code, not useable with the include yet) so you can build a route or set of actions step by step, also including "pauses" without movements, as the current code just works with movements. Then you can set those configs for each step, this should give maximum control. The biggest problem i got so far is making vehicle movements at least a bit smooth. Already thought about different ways to interpolate curves and turns. However the first vehicle version will just offer straight movements. |
|
|
|
|
|
|
#8 |
|
Huge Clucker
![]() ![]() ![]() Join Date: May 2008
Location: Berlin, Germany
Posts: 354
Reputation: 12
|
Awesome mauzen, awesome!
Best would of course be to find a way using the GPS Pathfinding stuff to make it like the 0.2.5 Actors work, but I know it is hardly possible. |
|
|
|
|
|
#9 | |
|
High-roller
![]() ![]() ![]() ![]() ![]() Join Date: Jun 2007
Location: Western Germany
Posts: 2,865
Reputation: 617
|
Quote:
Damn, im somehow curious myself how far this plugin will make it. I got tons of ideas. |
|
|
|
|
|
|
#10 |
|
High-roller
![]() ![]() ![]() ![]() ![]() Join Date: Dec 2009
Location: Home
Posts: 2,350
Reputation: 212
|
Damn it, i was going to release such a idea today, but this looks better since its a plugin. Good job
![]() Edit: You released almost everything we spoke in PM ![]() Edit2: What about GTA path? Last edited by TheArcher; 01/07/2012 at 09:35 PM. |
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Control NPCs using Paths? | Programie | Scripting Help | 2 | 16/06/2012 02:49 PM |
| Help with recording two npcs at once | marharth | Help Archive | 3 | 13/08/2010 03:14 AM |
| Recording NPCs animation with new version (0.3b) | Hernaner28 | Help Archive | 0 | 12/08/2010 01:17 AM |
| No NPCs | regdude | Server Support | 5 | 08/07/2010 05:54 PM |
| [HELP] Npcs | armyoftwo | Help Archive | 3 | 05/12/2009 08:43 AM |