• 07 Juin 2026, 03:49:06


Auteur Sujet: timer prison  (Lu 2726 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne yah00078

  • *
  • Tueur en série
  • Messages: 163
    • Voir le profil
    • Radio locale F2xradio
timer prison
« le: 09 Octobre 2007, 19:03:06 »
Bonjour a tous joueur et scripteur , j'ai un pti probleme...
Je voudrais pourvoir choisir le temps d'emprisonement des comdamané en tapant par exemple /ajail "nombre de minutes"
je ne sais scripter que la prion simple
aider moi svp
Merci a vous tous :)
Quand on veux , on peut !

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : timer prison
« Réponse #1 le: 09 Octobre 2007, 20:40:14 »
Au pire, tu téléporte le player une foi que tu pense qu'il a fait assé de temps de prison ^^ comme sa il reste autant de temps que tu veu ^^ ;) (si en plus tu le freez c'est le comble  :laugh )
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : timer prison
« Réponse #2 le: 09 Octobre 2007, 22:38:20 »
Ce n'est pas très difficile.
Tout d'abord, il faut que tu récupères l'id du joueur et le nombre qui se trouvent derrière ta commande (et on va dire que ce nombre est en secondes).
Ensuite, tu lances un timer qui se chargera de faire sortir le joueur de prison.

Pour l'extraction des paramètres, il faut que tu utilises la fonction strtok (si tu ne l'as pas déjà dans ton script, prends la dans le fichier LVDN.PWN fourni avec le serveur).

Voici un façon de faire :
http://pastebin.gtaonline.fr/pastebin.php?show=105

++
Syg
Courtesy of GtaManiac

Hors ligne yah00078

  • *
  • Tueur en série
  • Messages: 163
    • Voir le profil
    • Radio locale F2xradio
Re : timer prison
« Réponse #3 le: 12 Octobre 2007, 21:47:24 »
Merci sa marche :)
Merci a tous et a toi syg
Quand on veux , on peut !

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : timer prison
« Réponse #4 le: 20 Janvier 2008, 21:19:28 »
Salut ^^ Je vien te demander de l'aide syg, ou autres personnes qui pourraient me répondre :p

Voila j'ais fais des cmds admin et je voudrais que quand un joueur non admin fase la cmd qu'il soit envoyé en prison.

Donc j'ais fait ça :

else if(strcmp(cmdtext,"/vie", true)==0){
    if(IsPlayerAdmin(playerid) == 1){
    SetPlayerHealth(playerid, 100);
} else {
        cmd = strtok (cmdtext, idx);
new IdJoueur = strval (tmp);
    tmp = strtok (cmdtext, idx);
    if (strlen (tmp) != 0)
    GameTextForPlayer(playerid, "~r~Tu n'est pas admin !!",5000,6);
    SetPlayerInterior(playerid,3);
    SetPlayerPos(playerid,197.6661,173.8179,1003.0234);
    SetTimerEx(SortiePrison, 1000, 0, i, IdJoueur);
sur l'exemple que tu avais donner. Avec le public qu'il faut (je ne savais pas trop quoi mettre dedans alors j'ais juste mis le SetPlayerPos pour faire sortir le joueur :

public SortiePrison (IdJoueur)
{
  SetPlayerPos(IdJoueur,X,Y,Z); //je mettrais mes valeurs après
  return 1;
}

et j'ais 1 erreur :

C:\Documents and Settings\Charles-alexandre\Bureau\sa-mp 2.2 r2\gamemodes\truk.pwn(1994) : error 076: syntax error in the expression, or invalid function call
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Voila ^^ J'ais cherché un bout de temps, mais je ne vois pas trop comment faire alors je vous demande avant  qu'il n'y est trop d'erreurs  :laugh

A++
« Modifié: 20 Janvier 2008, 21:48:57 par [StAfF]mAn »
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : timer prison
« Réponse #5 le: 21 Janvier 2008, 12:08:49 »
Tu as oublié le guillemets "" dans l'appel à la fonction SetTimerEx :
SetTimerEx("SortiePrison", 1000, 0, "i", IdJoueur);
Deuxième chose, 1000 veut dire 1 seconde (1000 milliseondes), je ne pense pas que tu veuilles mettre quelqu'un en prison pendant 1 seconde.
Sinon, n'oublie pas d'initialiser les variables X, Y et Z sinon le joueur va retourner à la position 0,0,0 quand il sortira de prison.

++
Syg
Courtesy of GtaManiac

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : timer prison
« Réponse #6 le: 22 Janvier 2008, 00:51:16 »
Merci  beaucoup ^^ Il y a un autre prob maintenant, que je ne comprend pas...  :closedeyes

Voila j'ais ajouter tous ce qu'il fallais a mes commandes admins pour que les joueurs non admins qui la tapent soient envoiyés en taule, et il y a une commande, ainsi que les messages qui ne fonctionne plus.

La commande /god ne fonctionne plus :

}
else if(strcmp(cmdtext,"/god", true)==0){
    if(IsPlayerAdmin(playerid) == 1){
    SetPlayerHealth(playerid, 10000);
} else {
    if(IsPlayerAdmin(playerid) == 0){
    cmd = strtok (cmdtext, idx);
new IdJoueur = strval (tmp);
    tmp = strtok (cmdtext, idx);
    if (strlen (tmp) != 0)
    GameTextForPlayer(IdJoueur,"~r~Tu n'est pas admin !!T'es en prison pour 10 secondes",5000,6);
    SetPlayerInterior(IdJoueur,3);
    SetPlayerPos(IdJoueur,197.6661,173.8179,1003.0234);
    SetTimerEx("SortiePrison", 10000, 0, "i", IdJoueur);
}
}
}

Aucune erreur aucun warning.

Et les messages "GameTextForPlayer(IdJoueur,"~r~Tu n'est pas admin !!T'es en prison pour 10 secondes",5000,6);" ne fonctionne pas pour toutes les commandes
Je ne sais pas pourquoi...

Il faut pas que je les mettent dans des accolades
}
else
{
GameTextForPlayer(IdJoueur,"~r~Tu n'est pas admin !!T'es en prison pour 10 secondes",5000,6);
}  ??? ?
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne Malppower

  • Chef de la TEC
  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
    • Elevage des Sym'
Re : timer prison
« Réponse #7 le: 22 Janvier 2008, 07:12:10 »
c'est pas IdJoueur, c'est playerid

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : timer prison
« Réponse #8 le: 22 Janvier 2008, 15:43:27 »
ton code me semble assez bizzard ...
Pourquoi utiliser IDJoueur à la place de playerid ? La commande s'éxecute sur le joueur qui la tappe et pas sur un autre ;)
Pourquoi utiliser strtok ? Sa sert à récupérer une portion de chaine de caractères dans une chaine, par apport à un délimiteur ;)
Code: (cpp) [Sélectionner]
else if(strcmp(cmdtext,"/god", true)==0){
if(IsPlayerAdmin(playerid) == 1){
SetPlayerHealth(playerid, 10000);
} else {
GameTextForPlayer(playerid,"~r~Tu n'est pas admin !!T'es en prison pour 10 secondes",5000,6);
SetPlayerInterior(playerid,3);
SetPlayerPos(playerid,197.6661,173.8179,1003.0234);
SetTimerEx("SortiePrison", 10000, 0, "i", playerid);
}
return 1;
}
//----------------------------------------
public SortiePrison (playerid)
{
  SetPlayerPos(playerid,X,Y,Z); //je mettrais mes valeurs après
  return 1;
}
Voila le code d'après moi, je ne l'ai pas testé ni compilé, donc dit moi si sa marche ;)
++
R@f
« Modifié: 23 Janvier 2008, 14:12:20 par R@f »

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : timer prison
« Réponse #9 le: 23 Janvier 2008, 00:06:26 »
Merci R@f mais j'avais déja fais comme tu ma dit de faire et le résultat est le même... Ni texte qui s'affiche, ni cmd qui fonctionne, ni envoie en taule quand le player n'est pas admin...
kif kif...

Merci quand même, en plus c'est la seul commande qui ne veu plus fonctionner, toutes les autres fonctionnent, mais il y a le prob des textes qui ne s'affiches pas quand le player non admin tape une commande admin. Sinon il y a bien la tel derrière les barreaux ^^ et mon texte en sortie de taule :p

Faut que je trouve ce qui cloche, c'est énervant  :laugh
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : timer prison
« Réponse #10 le: 23 Janvier 2008, 14:13:08 »
ah la boulette que j'ai faite ... j'ai oublié le return 1  ::) code corrigé, testé et fonctionnant (voir mon post plus haut)

++
R@f

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : timer prison
« Réponse #11 le: 23 Janvier 2008, 14:23:28 »
Ok merci, mais le returne 1; n'était pas important car cette commande était a la suite d'autre commandes, et le return 1; était tout a la fin du public.

j'ai enlever les strok ainsi que

   cmd = strtok (cmdtext, idx);
   new IdJoueur = strval (tmp);
    tmp = strtok (cmdtext, idx);
    if (strlen (tmp) != 0)

Reste plus cas voir si ça marche ^^ mais je ne doute plus maintenant ^^ Merci a vous ^^ a++
« Modifié: 24 Janvier 2008, 00:03:17 par [StAfF]mAn »
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : timer prison
« Réponse #12 le: 24 Janvier 2008, 00:05:33 »
Sorry pour le double post... J'avais pas de bouton "modifier"  :blink

Bon bref  Du coup je refais un post..

En faite ça marche bien, mais la commande "god" ne veu pas du tout fonctionner... Ni la téléportation pour les non admins, ni la vie illimitée pour les admins :(

Je ne sias pas pourquoi ça fait ça, elle marchais niel avant... Et pourtant en modifiant la commande je n'est pas toucher a quoi que se soit qui aurrait pue faire disfonctionner la cmd...

^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : timer prison
« Réponse #13 le: 24 Janvier 2008, 17:09:22 »
Bon aller un petit triple post ^^ ......  ;D

Est ce quelqu'un peut m'aider ?? svp ??
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|