• 04 Juin 2026, 06:10:10


Auteur Sujet: [RESOLU]Problème JAIL  (Lu 2603 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
[RESOLU]Problème JAIL
« le: 23 Août 2012, 22:32:49 »
Yop à tous, j'ai toujours encore un problème avec une commande ...Là voici :

Autre problème:

J'ai créer une commande /jail mais quand je tape /jail Kevin_Carter Test 1
je respawn directement devant le commico.
Voici le code :
CMD:jail(playerid, params[])
{
new pId;
new pName[MAX_PLAYER_NAME];
GetPlayerName(pId, pName, sizeof(pName));
new temps;
new message[120];
new raison[50];
if(!sscanf(params,"usi[200]", pId, raison,temps))
{
   if(pRang[playerid] == USER_ADMINISTRATOR || pRang[playerid] == USER_ADMINISTRATOR)
   {
       if(IsPlayerConnected(pId))
       {
           SetPlayerPos(pId, 2648.87383,78,1001);
format(message, sizeof(message), "[JAIL]%s a été jail %i minutes, pour : %s ", pName, temps, raison);
SendClientMessageToAll(orange, message);
SetTimer("jail", temps, false);
       }
       else SendClientMessage(playerid, gris,"Le joueur n'est pas connecté.");
   }
   else SendClientMessage(playerid, gris, "Vous devez être administrateur/modérateur de ce serveur.");
}
else SendClientMessage(playerid, orange,"USAGE:/jail <PlayerId/PlayerName> <Raison> <temps>");
return 1;
}

public jail(playerid)
{
SetPlayerPos(playerid, 1555.3046,-1675.9924,16.1953);
SendClientMessage(playerid, gris, "Temps de prison éffectué, soyez meilleur joueur dorénavant.");
return 1;
}
Merci d'avance
« Modifié: 24 Août 2012, 20:33:17 par Kevin_Carter »

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Problème JAIL
« Réponse #1 le: 24 Août 2012, 00:38:59 »
Salut.

A mon avis le problème vient du "Temps".
Si je ne dis pas de bêtise, le timer est fait en milliseconde donc lorsque tu met 1, il est normal que tu spawn directement au Commi.

Procède donc par test. Va dans le jeu et tape "/jail Kevin_Carter Test 10000".
Si cette fois si tu reste en prison, et que tu spawn quelques secondes plus tard au Commi, c'est que c'est la bonne valeur (celle à laquelle je pense). Si tu restes plus de deux minutes en prison, c'est qu'il faut baisser le temps. Et enfin, si tu spawn directement au commi comme maintenant c'est que le problème vient d'ailleurs.

Suite à cela tu pourras donc:
*Soit mettre en variable une variable du genre "Prison = temps * 60000", et ce serait "Prison" qui serait dans le SetTimer ce qui aura pour incidence de mettre le temps en Minute (on y reviendra surement plus tard ;) )
*Soit baisser le 10000 à 1000 et voir combien de temps tu restes en Prison (seulement si tu restes plus de 2 minutes en prison si tu tapes "/jail Kevin_Carter Test 10000" )
*Soit regarder ce qui peut te faire spawn directement au Commi (mais je pense que ce ne sera plus le cas ;) ).

Désolé si je ne suis pas très clair, mais pour l'instant ce qu'il faut que tu test c'est "/jail Kevin_Carter Test 10000" et que tu viennes nous faire un retour ;)
Merci à Colonel Marco pour la Signature

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Problème JAIL
« Réponse #2 le: 24 Août 2012, 00:57:38 »
Si diablo62 a raison, tu crée une nouvelle variable par exemple nommée temps2 et tu fait un X1000 .

Exemple :

temps2 = temps * 1000;
Je suis pas sur que c'est "*" pour multiplier mais c'est comme ca qu'on fait en java, et la c'est du java modifié alors...
Si jamais tu veux en apprendre plus sur les calculs dans SAMP je t'invite a lire CECI et regarder dans "Les Operateurs Arithmetique"

[/url]

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Re : Problème JAIL
« Réponse #3 le: 24 Août 2012, 01:03:52 »
temps2 = temps * 1000;Je suis pas sur que c'est "*" pour multiplier mais c'est comme ca qu'on fait en java, et la c'est du java modifié alors...

*Soit mettre en variable une variable du genre "Prison = temps * 60000", et ce serait "Prison" qui serait dans le SetTimer ce qui aura pour incidence de mettre le temps en Minute (on y reviendra surement plus tard ;) )

C'est un peu ce que j'ai dit  :P

Par contre, * correspond bien à Multiplier et si tu fait *1000 cela va mettre le temps de prison en Secondes. En multipliant par 60000 cela mettra le temps directement en minutes ;)
Merci à Colonel Marco pour la Signature

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Problème JAIL
« Réponse #4 le: 24 Août 2012, 01:24:27 »
Ah okay, excuse moi je n'avait pas vu  :angelnot

[/url]

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Problème JAIL
« Réponse #5 le: 24 Août 2012, 06:31:52 »
J'ai fais ce que tu m'as dis Diablo et je suis resté en taule pendant 10s et je voudrais savoir comment puis-je mettre le temps en minutes ?

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Problème JAIL
« Réponse #6 le: 24 Août 2012, 10:48:04 »
10s est bien le temps auquel je pensais  :D

Donc dans ta commande tu vas rajouter :

new Prison;  // A mettre au dessus de new pId

Prison = temps * 60000;  // Ca tu le met au dessus de SetPlayerPos

SetTimer("jail", Prison, false);  // Tu met ça à la place de SetTimer("jail", temps, false);


Ta commande était bonne, seulement un settimer est fait en milliseconde et toi tu as oublié de convertir le temps en Minutes ou même en secondes ce qui fait que le 1 n'était pas un nombre assez élevé ce qui te Tp directement au commi.
En ajoutant ce bout de code, cela va permettre au le chiffre que tu met dans la commande d'être directement en minutes.

Fais un test, dis nous si ça fonctionne, mais normalement il n'y aura pas de problème ;)
Merci à Colonel Marco pour la Signature

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Problème JAIL
« Réponse #7 le: 24 Août 2012, 13:10:57 »
Il y a un problème ...

Dans les paramètres je ne peux pas écrire une longue phrase pour la raison vous savez pourquoi ?
« Modifié: 24 Août 2012, 18:46:15 par Kevin_Carter »

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Problème JAIL
« Réponse #8 le: 24 Août 2012, 19:12:44 »
Sans doute parce qu'il se trouve au milieu dans ta commande /jail Kevin_Carter Test 1

Essaye de modifier ton code pour que le temps se trouve avant la raison (si je comprends bien le ZCMD, à la place de !sscanf(params,"usi[200]", pId, raison,temps), il faut mettre !sscanf(params,"uis[200]", pId, temps, raison) )

Test et fait nous un retour ;)
Merci à Colonel Marco pour la Signature

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Problème JAIL
« Réponse #9 le: 24 Août 2012, 20:32:51 »
 :dling ça fonctionne merci beaucoup chers amis ! ^^