[Plugin] YSF - kurta999's version

If you can change it in R12 then I will use this plugin. Do you have a list of memory hacking functions? Or a list of non memory hacking functions - whichever is shorter. Thanks
Reply

pawn Code:
CMD:shotme(playerid, params[])
{
    new playertwo;
    if(sscanf(params, "u", playertwo)) return SendClientMessage(playerid, 0xFF0000AA, "USAGE: /shotme <playertwo>");

    new Float:x, Float:y, Float:z;
    GetPlayerPos(playertwo, x, y, z);
    SendBulletData(playertwo, playerid, BULLET_HIT_TYPE_PLAYER, x, y, z, 0.0, 0.0, 0.0, 0.1, 0.1, 0.1);
    return 1;
}
Tested and works. If doesn't, then get the .dll which I uploaded here and it will. (This is beta of R12, still need to to some small things and will be released)
Reply

Quote:
Originally Posted by kurta999
View Post
Per-player gang zones are per-player, global for each player.
I don't want to highlight myself, but if you go back, you can see that I already update YSF to newer samp versions since 2011 (?). So don't worry Maybe a bit later, but I'll update this version for 0.3.7 too when released. This is my server core, I need this plugin too.
I'm considering using it. How often do OnPlayerEnterGangZone and OnPlayerLeaveGangZone update?
Reply

In every 5 server tick, you will able to change it in R12.
Reply

I use include versions R10, this does not solve the problem. If there is a newer version let me include a link to download.
Reply

Quote:
Originally Posted by kurta999
View Post
Tested and works. If doesn't, then get the .dll which I uploaded here and it will. (This is beta of R12, still need to to some small things and will be released)
Before that, I used the plugin YSF - kurta999 version R10, now I downloaded your dll YSF - kurta999 version R11


I received the following message in the log

Script[gamemodes/testgm.amx]: Run time error 19: "File or function is not found"
[sampgdk:error] Too many callback arguments (at most 32 allowed)
Reply

What about the callbacks?
Reply

Load YSF as last plugin & recompile every scripts which you use with latest YSF.inc
Reply

Oh, sorry

http://forum.sa-mp.com/showpost.php?...&postcount=807

Quote:
Originally Posted by BeckzyBoi
Посмотреть сообщение
What about the callbacks?
Everything is depends on memory hacking, except OnServerMessage which currently only work on windows but i'm working on fix it on linux.

But anyway don't afraid, I'm almost reversed every class from samp server and Kye doesn't made big changes in new version so easy to update.
Reply

Could we use PlayerGangZones for streaming purposes?
Reply

kurta999 thank you very much for the work done, I got in what very much needed my script. Now everything works fine.
Reply

Try to fix also ApplyAnimationForPlayer please!

EDIT: I found a mistake in git at SetVehicleSpawnInfo. CHECK_PARAMS(8, "IsVehicleDead"); should be CHECK_PARAMS(8, "SetVehicleSpawnInfo");

EDIT2: Also at SetPlayerRotationQuatForPlayer.
Reply

Thanks but these functions are experimentel, do not working now.
Reply

Sad...
Reply

Somebody can help me with linux compiling please?

My problem is with RakServer::Send hook.

https://github.com/kurta999/YSF/blob/YSF_/src/Hooks.cpp

Код:
./src/Hooks.cpp:60:14: error: expected ‘;’ at end of member declaration
  static bool __thiscall Send(void* ppRakServer, RakNet::BitStream* parameters, int priority, int reliability, unsigned orderingChannel, PlayerID playerId, bool broadcast);
              ^
./src/Hooks.cpp:60:170: error: ISO C++ forbids declaration of ‘Send’ with no type [-fpermissive]
  static bool __thiscall Send(void* ppRakServer, RakNet::BitStream* parameters, int priority, int reliability, unsigned orderingChannel, PlayerID playerId, bool broadcast);
                                                                                                                                                                          ^
./src/Hooks.cpp:478:17: error: expected initializer before ‘CHookRakServer’
 bool __thiscall CHookRakServer::Send(void* ppRakServer, RakNet::BitStream* parameters, int priority, int reliability, unsigned orderingChannel, PlayerID playerId, bool broadcast)
                 ^
./src/Hooks.cpp: In function ‘void InstallPostHooks()’:
./src/Hooks.cpp:981:75: error: invalid use of non-static member function ‘int CHookRakServer::Send(void*, RakNet::BitStream*, int, int, unsigned int, PlayerID, bool)’
  ((int*)(*(void**)pRakServer))[RAKNET_SEND_OFFSET] = (int)CHookRakServer::Send;
                                                                           ^
makefile:22: recipe for target 'YSF' failed
Quote:
Originally Posted by bogdyutzu
Посмотреть сообщение
Sad...
Maybe will work in R13.
Reply

Can you add a callback when a vehicle changed heath?
Reply

Solved, thank you.

Now I'm testing R12 at my live linux server, if it will work, I'll release it today.

Quote:
Originally Posted by bogdyutzu
Посмотреть сообщение
Can you add a callback when a vehicle changed heath?
You can do it in pawn.

E: Still problems with sync.
Reply

Kurta there is no point in a GetObjectType function.

Код:
if(pNetGame->pObjectPool->m_bObjectSlotState[objectid] && pNetGame->pObjectPool->m_bPlayerObjectSlotState[playerid][objectid])
+		ret = SELECT_OBJECT_PLAYER_OBJECT;
+	else
+		ret = SELECT_OBJECT_GLOBAL_OBJECT;
if objectid 1 is a player object its always gonna return a player object even if theres a global objectid 1..

What might be more fitting is a GetObjectTypes(objectid, &playerObject, &globalObject); to check if the objectid is in any of the 2 pools and pass the value by reference.
Reply

Fixed, thanks. Now it will work, tested.
Reply

You still misunderstood!

It's still not gonna function the correct way!

The correct name for your function is

'isObjectIDBeingUsed(playerid, objectid)' which is detecting if the 'object id' 0 - 1000 is being used in either the global objectid pool or the player object pool!

A GetObjectType function cannot function the way you created it, if objectid 1 is being used in both the global object pool and the player object pool it's gonna always return the global object id because that is the first check!

Код:
BYTE ret;
	if(pNetGame->pObjectPool->m_bObjectSlotState[objectid])
		ret = SELECT_OBJECT_GLOBAL_OBJECT;
	else if(pNetGame->pObjectPool->m_bPlayerObjectSlotState[playerid][objectid])
		ret = SELECT_OBJECT_PLAYER_OBJECT;
	else 
		ret = 0;
If you still don't understand, what native language do you speak? I'll get someone from my community to translate for you.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)