Bah je t'explique tout :
Mon code ci-dessus sert à fixer un défaut des timers simples (SetTimerEx) : on peut pas passer de tableaux en paramètres. Du coup, j'ai étudié un peu l'assembly et j'ai vu que c'était possible en utilisant le #emit.
J'ai donc suivi (plus ou moins en adaptant) le code de ZeeX pour SendClientMessageFormatted afin de récupérer un nombre non fixe d'arguments dans une adresse mémoire (une variable qui comporte cette adresse mémoire quoi) et cette adresse mémoire comporte la "pile" de tout ce à quoi correspondent les arguments dans la fonction. Kilou a eu le même problème de compréhension, donc pour illustrer je te donne un petit exemple
new entier, Float:flottant, bool:boolean, tableau[10];
forward Fonction(entier, Float:flottant, bool:boolean, tableau[]);
public Fonction(entier, Float:flottant, bool:boolean, tableau[])
{
// Faire des choses random ici
}
SetTimerEx("Fonction", 1000, false, /* Le "format" des paramètres */"ifba", /* Ce à quoi ils correspondent dans le code */ entier, flottant, boolean, tableau);
Donc actuellement, ma variable "n" en mémoire vaut, pour cet exemple, les adresses mémoires de "entier", "flottant", "boolean" et "tableau". Comme la native actuelle de samp "SetTimerEx" ne permet pas de passer des tableaux, j'aimerais rendre ça possible mais actuellement je suis bloqué à un endroit :
Je suis parti sur un système utilisant une fonction intermediaire "CallTimer(timerid)" et cette fonction devait à son tour appeler la fonction que le timer devait appeler à l'origine via CallLocalFunction, qui autorise le passage de "string" en paramètre.
Sauf que j'ai aucun moyen de récupérer "n" une fois que ma fonction "CallTimer" a été appelée.
Et c'est ça que j'aimerais savoir, comment la récupérer ?