GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: figther2500 le 13 Mars 2014, 16:24:42

Titre: Demande tuto timer [Pawn]
Posté par: figther2500 le 13 Mars 2014, 16:24:42
Bonjours / bonsoir


Je voudrais crée une commande /coincer qui permettrais de Tp un joueur quelque part si il est coincé mais pour qu'il n'y est pas d'abus je voudrais mettre un timer

Ce qui est de tp ou de crée la commande je sais faire mais pour mettre un timer je ne vois pas du tous

Sa serais sympas si quelqu'un peut peut m'éxpliqué ou me donné un tuto qui explique bien.


Merci.
Titre: Re : Demande tuto timer [Pawn]
Posté par: Xolokos le 13 Mars 2014, 17:33:01
Code: (PAWN) [Sélectionner]

forward TPBlocked(playerid);
public TPBlocked(playerid)
{
 SetPlayerPos(....);
}

SetTimerEx("TPBlocked", 25000, false, "d", playerid);


C'est ici (http://wiki.sa-mp.com/wiki/SetTimerEx) pour le tutoriel SetTimerEx en EN.
Titre: Re : Demande tuto timer [Pawn]
Posté par: figther2500 le 14 Mars 2014, 17:34:24
Salut, j'ai regardé en entier le wiki, y'aurais moyen qu'on me fait juste un exemple avec une commande quelconque car j'apprends quand j'ai un exemple,


merci.
Titre: Re : Demande tuto timer [Pawn]
Posté par: Kiloutre le 14 Mars 2014, 20:44:11
C'est ici (http://wiki.sa-mp.com/wiki/SetTimerEx_FR) pour la page de SetTimerEx en français
http://wiki.sa-mp.com/wiki/SetTimer_FR (http://wiki.sa-mp.com/wiki/SetTimer_FR) pour la page de SetTimer en français (SetTimer est moins complet que SetTimerEx)

C'est pas vraiment très compliqué à effectuer, le wiki fournit énormément de détails, on peut pas en rajouter plus
Titre: Re : Demande tuto timer [Pawn]
Posté par: Xartrick le 18 Mars 2014, 18:26:08
Dans ce cas précis, si on y réfléchi bien, l'utilisation d'un timer est inutile.

En effet, il est possible d'utiliser uniquement une variable (un tableau en réalité pour couvrir tous les joueurs) et une condition pour éviter un abus de ce genre.


Code: (pawn) [Sélectionner]
#define UNSTUCK_TIMEOUT 60

new LastUnstuck[MAX_PLAYERS] = {0, };

Code: (pawn) [Sélectionner]
// Si l'heure actuel est plus grande que l'heure de la dernière
// commande plus le temps limite...
if (gettime() >= (LastUnstuck[playerid] + UNSTUCK_TIMEOUT)) {
// Téléportation...

// On met dans notre variable l'heure actuelle.
LastUnstuck[playerid] = gettime();
}