SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Plugin Development (https://forum.sa-mp.com/forumdisplay.php?f=18)
-   -   [Plugin] samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust! (https://forum.sa-mp.com/showthread.php?t=666687)

MouadJhon 22/05/2019 09:51 PM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
Looks Good

MisterTickle 23/05/2019 02:01 AM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
This doesn't seem to work for me for some reason. It breaks object and actor deleting and I'm unsure. I've converted all my timers over, but the error doesn't tel me the particular timer causing a problem.

[03:40:54] samp-precise-timers error: The amount of callback arguments passed (1) does not match the length of the list of types (4).
[03:40:54] [sampgdk:warning] Native function not found: DestroyPlayerObject
[03:40:55] [sampgdk:warning] Native function not found: DestroyActor
[03:40:57] [sampgdk:warning] Native function not found: StopPlayerObject

RogueDrifter 23/05/2019 02:22 AM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
Quote:

Originally Posted by nickdodd25 (Post 4099595)
Ah.... just tested it and you would be correct. I just get random chars instead of the string i passed. I thought the issue was similar to the empty string issue. Guess not. :picard:

Nope, i mean it is fixable by creating a variable string with an array holding max value of the parameters passed through the timer, something you would see in a script fixing the BanEx function, like so:
pawn Code:
#define MAX_BAN_REASON_LENGTH 120
#define KICKBAN_FIX_WAIT 250// In ms

static
    FIX_BanReason[MAX_PLAYERS][MAX_BAN_REASON_LENGTH ];

hook BanEx(playerid, const reason[])    
{
    if(playerid < 0 || playerid > MAX_PLAYERS) return 0;
    if(!IsPlayerConnected(playerid)) return 0;

    format(FIX_BanReason[playerid], MAX_BAN_REASON_LENGTH, "%s", reason);
    SetTimerEx("kickban_FIX", KICKBAN_FIX_WAIT, false, "i", playerid);
    return 1;
}

forward kickban_FIX(playerid);
public kickban_FIX(playerid)
{
    BanEx(playerid, FIX_BanReason[playerid]);
    return 1;
}

But then again I'm not sure if this guy's plugin fixes the issue or not so we await his reply.

Misiek 23/05/2019 09:46 AM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
Quote:

Originally Posted by RogueDrifter (Post 4099472)
I thought we were unable to pass strings through the settimer function, does that mean your plugin fixes it?

Yes. This plugin handles strings correctly (as noted on GitHub), no need to worry.

Quote:

Originally Posted by kocurek (Post 4099541)
great plugin!
but, will you add IsValidPreciseTimer and SetPreciseTimerInterval?

I will add SetPreciseTimerInterval.

IsValidTimer, however, is a little misleading in other plugins. They don't actually guarantee that the timer in a given slot is still the same timer as when assigned. For example:
Code:

new TimerVariable;
public OnGameModeInit() {
    TimerVariable = SetTimer("Timer1",3000,1);
}

public OnPlayerConnect(playerid) {
    TimerVariable = SetTimer("Timer2",1000,1); //timer id accidentally assigned to the same variable
}

public OnGameModeExit() {
    printf("TimerVariable's timer %d is valid, but points to a new timer: %d",TimerVariable, IsValidTimer(TimerVariable));
}

As you can see, TimerVariable is technically valid, but probably not what was intended, because it now points to a completely different timer.

A proper implementation would use versioned timer ids.

Quote:

Originally Posted by MisterTickle (Post 4099583)
Going to go ahead and implement this. Good job.

Thanks! Let me know how that goes!

Misiek 23/05/2019 09:51 AM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
Quote:

Originally Posted by MisterTickle (Post 4099616)
This doesn't seem to work for me for some reason. It breaks object and actor deleting and I'm unsure. I've converted all my timers over, but the error doesn't tel me the particular timer causing a problem.

[03:40:54] samp-precise-timers error: The amount of callback arguments passed (1) does not match the length of the list of types (4).
[03:40:54] [sampgdk:warning] Native function not found: DestroyPlayerObject
[03:40:55] [sampgdk:warning] Native function not found: DestroyActor
[03:40:57] [sampgdk:warning] Native function not found: StopPlayerObject

This plugin doesn't have much of a way to affect those functions - it doesn't hook anything, just adds new natives. It seems somewhere in your code you defined a timer with a wrong amount of argument letters. I'll add the name of the callback to the warning so you can know which one is being problematic.

Uberanwar 25/08/2019 12:40 PM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
I have this issue - [20:24:20] Loading plugin: samp-precise-timers.so
[20:24:20] Failed (/lib/libc.so.6: version `GLIBC_2.18' not found (required by plugins/samp-precise-timers.so))

I use CentOS 7.5

B3x7K 26/08/2019 11:04 AM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
Quote:

Originally Posted by Uberanwar (Post 4111228)
I have this issue - [20:24:20] Loading plugin: samp-precise-timers.so
[20:24:20] Failed (/lib/libc.so.6: version `GLIBC_2.18' not found (required by plugins/samp-precise-timers.so))

I use CentOS 7.5

Code:

yum install glibc-static

B3x7K 26/08/2019 11:07 AM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
Quote:

Originally Posted by Misiek (Post 4099648)
This plugin doesn't have much of a way to affect those functions - it doesn't hook anything, just adds new natives. It seems somewhere in your code you defined a timer with a wrong amount of argument letters. I'll add the name of the callback to the warning so you can know which one is being problematic.

I think maybe sampgdk rust made the error :\
But, i'm not sure though because i just guessing...

FelipeSantos 05/09/2019 05:44 AM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
Thank you!
I spent like 4 hours trying to make y_timers to work, but I was getting "heapspace too low [...]". I was looking for a plugin due to "CURRENTLY UNUSABLE" on SetTimerEx when using strings and arrays and a more accurate timer.
One more time, thank you for sharing it with us.

Uberanwar 06/09/2019 08:44 AM

Re: samp-precise-timers ⌚: A timer plugin written in the memory-safe Rust language. Check it out, you might like Rust!
 
Quote:

Originally Posted by B3x7K (Post 4111337)
Code:

yum install glibc-static

I still have the issue. [16:45:14] Failed (/lib/libc.so.6: version `GLIBC_2.18' not found (required by plugins/samp-precise-timers.so)). Can you make it compatible with GLIBC_2.17?


All times are GMT. The time now is 02:27 AM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.