GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Showroom SA:MP => Discussion démarrée par: » Lukubi™ le 29 Novembre 2008, 04:53:01

Titre: [FS] M][T's AFK
Posté par: » Lukubi™ le 29 Novembre 2008, 04:53:01
C'est un FS d' AFK plutôt simple et tout aussi simple à utiliser

Installation (débutant) :

Citer
1. Télécharger le fichier (jusqu'ici tout le monde suit)
2. Placez le fichier "AFK.Amx" dans votre dossier "Filterscripts"
3. Ajouter AFK dans votre fichier "serveur.cfg" a la ligne "Filterscript ......."
4.Enjoy ;)

=======================================================================================


Les commandes :

Citer
/afk : partir du jeu durant un certain temps
/back : revenir dans le jeu

=======================================================================================


Téléchargements :

PWN - ICI (http://pastebin.gtaonline.fr/pastebin.php?show=524)
PWN + AMX - ICI (http://solidfiles.com/d/f9912363f6937d9ecf01f731fe35893d)

=======================================================================================


Crédits :

Clashthaï et Pink pour avoir tester ce FS sur le serveur de LoS

Vous avez le droit de publier ce FS sur d'autre forum mais pas de dire que c'est le votre

edit : mise en page

Titre: Re : [FS] M][T's AFK
Posté par: Nikko™ le 29 Novembre 2008, 10:24:25
mouai ...
meme si tout le monde (ou casi) sais faire ces commandes ... gg quand meme.

++
nikko
Titre: Re : [FS] M][T's AFK
Posté par: cristab le 29 Novembre 2008, 10:33:25
j'ai le meme chose sur mon GM un truc en plus un gametext qui est ecrit que tu es en pause pendant 1 seconde mais sympas de partager
Titre: Re : [FS] M][T's AFK
Posté par: Franky™ le 29 Novembre 2008, 11:23:15
C'est toujours bien de partagé des FS comme ça, mais si comme tu dit qu'il est symple, pour les debutants en pawn sa fait toujours plaisir.

++ Franky
Titre: Re : [FS] M][T's AFK
Posté par: » Lukubi™ le 29 Novembre 2008, 16:29:50
merci, si vous trouver le moindre bug faites le moi parvenir ici ou par PM
Titre: Re : [FS] M][T's AFK
Posté par: garderer le 29 Novembre 2008, 21:47:45
pas beasoin de testé il y'a un bug ou une faille si tu préfére
quand tu meurt tu fait /AFK
tu aura le pseudo ^^ et tu respawnera
Si tu veut le corrigé onplayerDeath tu met une varaible[playerid] = 1; et dans onplayerspawn variable[playerid] = 0;

Et qaund il faut la commande /afk il faut que la variable soit == a 0 doit
if(variable[playerid] == 0)
{
//ok
}
else
{
// vous ne pouvez pas éxécuté la commande.
}


ou simplement
if(variable[playerid] == 1)
{
// Vous ne pouvez pas éxécuté la commande pour le moment.
return 1;
}
Titre: Re : [FS] M][T's AFK
Posté par: R@f le 29 Novembre 2008, 21:56:54
pas mal le script mais une petite suggestion, récupère la pos du joueur quand il fait AFK et remet le joueur à la position où il a fait cette commande quand il fait /back ;)

++
R@f
Titre: Re : [FS] M][T's AFK
Posté par: » Lukubi™ le 29 Novembre 2008, 23:22:34
Ok merci je ferai sa dans la prochaine version ;)
Titre: Re : [FS] M][T's AFK
Posté par: Syg le 01 Décembre 2008, 12:08:10
Une erreur classique avec les tableaux que l'on ne voit pas quand on fait les tests avec un seul joueur (ID=0).
Tu fais
GetPlayerName(playerid, PlayerName2, sizeof(PlayerName2));Cette ligne est correcte mais elle ira toujours écrire dans le premier élément du tableau PlayerName2, donc l'élément correspondant au joueur 0.
Le ligne qui fonctionne est :
GetPlayerName(playerid, PlayerName2[playerid], sizeof(PlayerName2[playerid]));
Idem pour la commande /back, il faut remplacer
SetPlayerName(playerid,PlayerName2);par
SetPlayerName(playerid,PlayerName2[playerid]);
Et idem pour la variable Float:PlayerHealth qui devrait être un tableau.
new Float:PlayerHealth[MAX_PLAYERS];
GetPlayerHealth(playerid, PlayerHealth[playerid]); dans /afk
SetPlayerHealth(playerid, PlayerHealth[playerid]); dans /back

Autre erreur assez embêtante : le timer GodTimer
Ce timer est lancé sans paramètre donc il ne fonctionnera que pour le joueur 0 (encore une fois, quand on fait les tests avec un seul joueur tout marche correctement) ainsi, si le joueur 10 fait /afk, c'est le joueur 0 qui verra sa vie remise à 100% toute les secondes.
La solution :
- Démarrer le timer dans OnFilterScriptInit.
- L'arrêter dans OnFilterScriptExit
- Modifier la fonction du timer comme suit :
public GodUpdate ()
{
   for (new i=0 ; i<MAX_PLAYERS ; i++)
   {
      /* Si le joueur est connecté et en AFK */
      if (IsPlayerConnected (i) && InAfk[playerid]==1)
      {
         SetPlayerHealth(i, 100000);
      }
   }
   return 1;
}
Et bien sur, supprimer le KillTimer dans la commande /back

Sinon, coté suggestions, il serait bien de mettre un message d'erreur lorsque le joueur fait /afk et qu'il est déjà AFK ou /back alors qu'il n'est pas AFK. Il n'y a rien de plus déroutant qu'un commande qui n'affiche rien (on croit alors qu'on est parti en timeout).
Et il manque un SendClientMessageToAll après
format(msg,sizeof(msg)," %s Est revenu(e)", PlayerName(playerid));
++
Syg