[FilterScript] RyDeR`s Object Streamer [v0.1b]
#1

Foreword

Yes, yet another PAWN based streamer!
I've written a streamer before which was actually a big fail. It was based on the basic streaming algorithm and also had a lot of bugs. This one is completely different (see all features below).

Features
  • Completely reworked the streamer.
  • Changed streaming algorithm: look for objects in environment of player, get all possible closest objects (using QuickSort (-> very fast)), and only create and delete if need.
  • Supports virtuals worlds.
  • Supports interior ID's.
  • Supports streaming objects for one specific player.
  • Supports draw distance.
  • Very realistic object moving syncronisation and position updating.
  • Never objects missing problem.
  • Fast and flexible streaming (no delay).
  • .amx is more little compared to (some) other streamers (almost %50 reduced).
  • And lots of more...
Streamer Settings

You should customize these before using the streamer:
pawn Код:
#if defined MAX_PLAYERS
    #undef MAX_PLAYERS
   
    #if !defined MAX_PLAYERS
        #define MAX_PLAYERS \
            (200)
    #endif
#endif

#if defined MAX_OBJECTS
    #undef MAX_OBJECTS
   
    #if !defined MAX_OBJECTS
        #define MAX_OBJECTS \
            (400)
    #endif
#endif

#if !defined MAX_STREAMED_OBJECTS
    #define MAX_STREAMED_OBJECTS \
        (2000)
#endif

#if !defined MAX_STREAM_RADIUS
    #define MAX_STREAM_RADIUS \
        (300.0)
#endif

#if !defined STREAMER_UPDATE_INTERVAL
    #define STREAMER_UPDATE_INTERVAL \
        (800)
#endif
Streamer Settings

We have one callback which gets called when an object is done moving:
pawn Код:
forward OnStreamedObjectMoved(objectid);
Streamer Functions

pawn Код:
IsValidStreamedObject(objectid);
CreateStreamedObject(modelid, Float: x, Float: y, Float: z, Float: rx, Float: ry, Float: rz, virtualworld = -1, interior = -1, playerid = -1, Float: drawdistance = 0.0);
DestroyStreamedObject(objectid);
MoveStreamedObject(objectid, Float: x, Float: y, Float: z, Float: speed);
StopStreamedObject(objectid);
SetStreamedObjectPos(objectid, Float: x, Float: y, Float: z);
GetStreamedObjectPos(objectid, &Float: x, &Float: y, &Float: z);
SetStreamedObjectRot(objectid, Float: rx, Float: ry, Float: rz);
GetStreamedObjectRot(objectid, &Float: rx, &Float: ry, &Float: rz);
Notes
  • Parameters assigned -1 means for all. Example, for all virtual worlds. If you change that for example to 0, it will only show in virtual world 0.
  • If you have still an old version of my streamer, delete it and use this one.
  • Please report bugs in the comment section below.
Installation
  1. Download, extract and put them in the correct folder.
  2. Open rObjectStreamer.pwn, change the settings at the top and compile it.
  3. Open the scripts where you want to use this streamer in and include this at the top of your script using #include <rObjectStreamer>
  4. Write rObjectStreamer in server.cfg (Put this in the beginning of your filterscripts, otherwise it won't work like any other streamer)
Download

Mirror - Solidfiles (Last Update - 20/03/2011)

Changelog
  • Saturday 19 March 2011 (19/03/2011)
    • First public release.
  • Sunday 20 March 2011 (20/03/2011)
    • Fixed an exceeding array problem.
    • Everything recontrolled for bugs, and no found.
    • New setting added. (MAX_OBJECTS, now you can set amount of max objects appearable (NOTE: maximum is 400))
Reply
#2

A new release from you! Finally! It was about time you released something new and cool.

Good Job!
Reply
#3

nice
Reply
#4

As much as i love rivaling code, i think the day of using pawn streamers is over (with incognito's streamer being as advanced/faster as it is). I do think this will teach some people how streamers work though, so good job on that!
Reply
#5

Awesome !
Reply
#6

Lets see if this streamer really works
Reply
#7

@Kyosaur:
That's true however there are still people (I know) that are looking for a flawless working PAWN based streamer. Thanks.

@Anthony_prince:
Don't forget to post your feedback here.

And thanks for other feedback
Reply
#8

Quote:
Originally Posted by Kyosaur
Посмотреть сообщение
As much as i love rivaling code, i think the day of using pawn streamers is over (with incognito's streamer being as advanced/faster as it is). I do think this will teach some people how streamers work though, so good job on that!
I have run some real IG tests and F_Streamer by fallout was noticibly faster than Incognito's streamer with a few setting tweaks but still, its PAWN...

I want to try this streamer because you said it can stream objects for one specific player, and that sounds great
Reply
#9

Quote:
Originally Posted by Hal
Посмотреть сообщение
I have run some real IG tests and F_Streamer by fallout was noticibly faster than Incognito's streamer with a few setting tweaks but still, its PAWN...

I want to try this streamer because you said it can stream objects for one specific player, and that sounds great
I have to say, i REALLY dont believe F_streamer beat incognito's streamer at all. Not only is the incognito streamer written in C++, but it also includes an advanced zoning algorithm. For you to say a simple pawn streamer beat it, is like saying strcmp beats ycmd/zcmd. Its VERY hard to believe.

Mind if i see your test script? Also if you could post your results as well, that would be great.
Reply
#10

Nice, I Like the Streamer. Keep up the Good work!
Reply
#11

No benchmarks? Even though it'll probably still be slower than Incognito's streamer.
Reply
#12

Update 20/03/2011

I have found a bug which is completely fixed now. I did a double check for everything and confirmed that are no bugs left. Please just update to the last version if you downloaded the earlier version.
See changelog, download link and more info at the first page.

Have fun using this stable streamer.
____________________________________________

@Calg00ne:
No benchmarks needed, if you try this streamer out, you will feel it's performance.

@Kyosaur:
Agreed.

@Hal:
Actually, same as Kyosaur said. Also, if you test the streamer out, please let me know some feedback. Thanks.

Thanks for feedback.
Reply
#13

feeling != seeing accurate figures
Reply
#14

Awesome dude
Reply
#15

Quote:
Originally Posted by Kyosaur
Посмотреть сообщение
I have to say, i REALLY dont believe F_streamer beat incognito's streamer at all. Not only is the incognito streamer written in C++, but it also includes an advanced zoning algorithm. For you to say a simple pawn streamer beat it, is like saying strcmp beats ycmd/zcmd. Its VERY hard to believe.

Mind if i see your test script? Also if you could post your results as well, that would be great.
I'm not saying that it was faster in the script, but they loaded faster IG. Like i said, i tweaked some settings and those settings may not make the script faster, but im saying that they visually loaded faster for me. I know that Incognito's will handle a higher load and be faster and I bet if i tweak a few settings, it will perform better than F_Streamer.

And when i said
Quote:

tweaks but still, its PAWN...

I meant that it will not be as powerful BECAUSE it's pawn. Sorry if you misinterpreted that :P
Reply
#16

Best streamer.

I tested it. 5000 obj and 50+ ppl with no lags!
Gratz.
Reply
#17

How can I add streamer objects my gamemode?
Reply
#18

@TomTroX:
Glad to hear that! Thanks for you feedback.

@Das11:
What do you mean? Check the first page for the functions to add a streamed object.
Reply
#19

Quote:
Originally Posted by RyDeR`
View Post
Never objects missing problem.
Is this true? Cause even at Incognitos Plugin I have missing objects.
Reply
#20

good job i like it.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)