• 06 Juin 2026, 19:01:22


Auteur Sujet: Timer Freeze ..[RESOLUE]  (Lu 2206 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Timer Freeze ..[RESOLUE]
« le: 05 Décembre 2010, 18:24:13 »
Salut a tous.

Alors voilà , j'ai fais une petite téléportation pour allez dans une prison , J'ai mis un Timer qui freeze le joueur le temps que tout les Object se charge (CreateDynamicObject)

Mais le soucis c'est que sa ne unfreeze pas le joueurs.. Comment faire ?

Voici le Code :
Code: (pawn) [Sélectionner]
else if(PlayerToPointStripped(1, playerid,2808.1201,2726.3457,11.0793, cx,cy,cz))
{ //Prison Sortit Court
GameTextForPlayer(playerid, "~w~Prison", 5000, 1);
SetPlayerInterior(playerid, 0);
TogglePlayerControllable(playerid,0);
  SetTimer("EnterPrisonTimer",2200,true);
GameTextForPlayer(playerid, "~y~Patientez. . .      ~r~ Chargements des objets...", 2000, 6);
SetPlayerPos(playerid,305.1666,204.8985,889.5491);
PlayerInfo[playerid][pInt] = 0;
}

« Modifié: 05 Décembre 2010, 20:53:43 par madinina972 »
Madinina972



Hors ligne Pixect

  • Verbal Criminal
  • *
  • Tueur en série
  • ser la fèt isi, tqvu
  • Messages: 219
    • Voir le profil
Re : Timer Freeze ..
« Réponse #1 le: 05 Décembre 2010, 18:36:10 »
Salut,

Insère ces lignes dans ton script :

Avant le OnGameModeInit:

Code: (PAWN) [Sélectionner]
<?php

forward EnterPrisonTimer
();

Puis insère, peu importe où dans le script, ceci:
Code: (PAWN) [Sélectionner]
<?php

public EnterPrisonTimer()
{
for(new 0MAX_PLAYERSi++)
{
TogglePlayerControllable(i1);
}
return 1;
}
Je me suis surement trompé.

++
Lloyd


Citation de: Stéphane ARLEN
« Défendre le c cédille majuscule n’est-il pas vain ? Ca m’isole, comme disent les fous. »

S'il vous plaît, passez par ici si vous avez le temps.

Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : Timer Freeze ..
« Réponse #2 le: 05 Décembre 2010, 18:37:30 »
Je n'ai pas tout compris ...   ;D
Madinina972



Hors ligne Pixect

  • Verbal Criminal
  • *
  • Tueur en série
  • ser la fèt isi, tqvu
  • Messages: 219
    • Voir le profil
Re : Timer Freeze ..
« Réponse #3 le: 05 Décembre 2010, 18:40:53 »
Salut,

Quand tu dis "Je n'ai pas tout compris", tu parles de placer le script ou son fonctionnement ? ^^
PS : le "<?php" sert juste à colorer le texte ^^"

++
Lloyd


Citation de: Stéphane ARLEN
« Défendre le c cédille majuscule n’est-il pas vain ? Ca m’isole, comme disent les fous. »

S'il vous plaît, passez par ici si vous avez le temps.

Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : Timer Freeze ..
« Réponse #4 le: 05 Décembre 2010, 18:44:01 »
J'avais déjà mis le Forward EntrerPrisonTimer(playerid);

Ensuite je ne sais pas ou placé le 2e bout de script que tu as mis ..
Madinina972



Hors ligne Pixect

  • Verbal Criminal
  • *
  • Tueur en série
  • ser la fèt isi, tqvu
  • Messages: 219
    • Voir le profil
Re : Timer Freeze ..
« Réponse #5 le: 05 Décembre 2010, 18:47:02 »
Salut,

Le public, tu peux le placer n'importe où dans le script.
Exemple :

Code: (PAWN) [Sélectionner]
<?php

public OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
return 1;
}

public 
EnterPrisonTimer()
{
// ...
}
Bien sur, tu n'es pas obligé de le placer après ce public, tu peux le placer après n'importe lequel.

++
Lloyd


Citation de: Stéphane ARLEN
« Défendre le c cédille majuscule n’est-il pas vain ? Ca m’isole, comme disent les fous. »

S'il vous plaît, passez par ici si vous avez le temps.

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Timer Freeze ..
« Réponse #6 le: 05 Décembre 2010, 18:54:06 »
Lloyd B., ton code va s'appliquer à tous les joueurs si madinina972 utilise ton code !

Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : Timer Freeze ..
« Réponse #7 le: 05 Décembre 2010, 18:54:24 »
Voilà Comment j'ai fais :

Code: (pawn) [Sélectionner]
else if(PlayerToPointStripped(1, playerid,2808.1201,2726.3457,11.0793, cx,cy,cz))
{ //Prison Sortit Court
GameTextForPlayer(playerid, "~w~Prison", 5000, 1);
SetPlayerInterior(playerid, 0);
TogglePlayerControllable(playerid,0);
  SetTimer("EnterPrisonTimer",2200,true);
GameTextForPlayer(playerid, "~y~Patientez. . .      ~r~ Chargements des objets...", 2000, 6);
SetPlayerPos(playerid,305.1666,204.8985,889.5491);
PlayerInfo[playerid][pInt] = 0;

public EnterPrisonTimer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
TogglePlayerControllable(i, 1);
}
return 1;
}

Puis au début de mon script avec les autres forward :
Code: (pawn) [Sélectionner]
forward EnterPrisonTimer();
 Je compile puis ça me sort 2 erreurs:

Code: (pawn) [Sélectionner]
C:\Users\Clément\Desktop\samp\gamemodes\larp.pwn(46401) : error 029: invalid expression, assumed zero
C:\Users\Clément\Desktop\samp\gamemodes\larp.pwn(46401) : error 004: function "EnterPrisonTimer" is not implemented

Donc je vais voir a la ligne 46401
et sa m'amène au public EnterPrisonTimer()
Madinina972



Hors ligne D0os-Nox

  • Connais toi - toi même
  • *
  • Tueur en série
  • Retourne toi, t'es déjà mort
  • Messages: 144
    • Voir le profil
    • :.. UG - Communauté d'entraide, de production vidéo games et multigaming ..:
Re : Timer Freeze ..
« Réponse #8 le: 05 Décembre 2010, 19:21:07 »
Bonjour, Juste pour dire au niveau de la déclaration de ton timer, les forward ne doit pas être obligatoirement mit en tête du script elle peut être mise sous cet forme :

forward EnterPrisonTimer(playerid);
public EnterPrisonTimer(playerid)
{

TogglePlayerControllable(playerid, 1);
return 1;
}

Sinon, reprend mes changement pour le timer ci-dessus !

EDIT : Tu pourrais nous montrer le reste de la commande :
else if(PlayerToPointStripped(1, playerid,2808.1201,2726.3457,11.0793, cx,cy,cz))
{ //Prison Sortit Court
GameTextForPlayer(playerid, "~w~Prison", 5000, 1);
SetPlayerInterior(playerid, 0);
TogglePlayerControllable(playerid,0);
  SetTimer("EnterPrisonTimer",2200,true);
GameTextForPlayer(playerid, "~y~Patientez. . .      ~r~ Chargements des objets...", 2000, 6);
SetPlayerPos(playerid,305.1666,204.8985,889.5491);
PlayerInfo[playerid][pInt] = 0;
}
:-X D0os-Nox  :closedeyes
« Modifié: 05 Décembre 2010, 19:23:41 par D0os-Nox »




Citer
La vrai paix n'existe pas, nous somme le reflet de l'ignorance d'un monde détruit par la guerre ![/glow]
Citer
Chaque jours, la haine nous renferme dans l'obscurité ![/glow]
(Citations par D0os)

Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : Timer Freeze ..
« Réponse #9 le: 05 Décembre 2010, 19:22:15 »
Ok je vais essayer . Merci

EDIT : Sa marche parfaitement , Merci de votre aide :D

EDIT 2 : Enfaite ce n'est pas une commande , juste une téléportation.

Code: (pawn) [Sélectionner]
else if(PlayerToPointStripped(1, playerid,2808.1201,2726.3457,11.0793, cx,cy,cz))
{ //Prison Sortit Court
GameTextForPlayer(playerid, "~w~Prison", 5000, 1);
SetPlayerInterior(playerid, 0);
TogglePlayerControllable(playerid,0);
  SetTimer("EnterPrisonTimer",2200,true);
GameTextForPlayer(playerid, "~y~Patientez. . .      ~r~ Chargements des objets...", 2000, 6);
SetPlayerPos(playerid,305.1666,204.8985,889.5491);
PlayerInfo[playerid][pInt] = 0;

}

A la fin du Script :

Code: (pawn) [Sélectionner]
forward EnterPrisonTimer(playerid);
public EnterPrisonTimer(playerid)
{
TogglePlayerControllable(playerid,1);
}

Double post
Il y a un petit soucis.

Quand je me connecte sur mon serveur , je commence a joué et la sa me freeze en 1fraction de seconde , puis sa m'unfreeze , D'où cela peut-ils venir

PS : c'est quand j'ai mis ton bout de code dOos-Nox que ça me la fais ..

Peut être que le timer se répète et ne s'arrête jamais ..
« Modifié: 05 Décembre 2010, 19:41:50 par madinina972 »
Madinina972



Hors ligne D0os-Nox

  • Connais toi - toi même
  • *
  • Tueur en série
  • Retourne toi, t'es déjà mort
  • Messages: 144
    • Voir le profil
    • :.. UG - Communauté d'entraide, de production vidéo games et multigaming ..:
Re : Timer Freeze ..
« Réponse #10 le: 05 Décembre 2010, 20:11:55 »
RE: Dans ce cas, retourne le :

forward EnterPrisonTimer(playerid);
public EnterPrisonTimer(playerid)
{
TogglePlayerControllable(playerid,1);
         return 1;
}




Citer
La vrai paix n'existe pas, nous somme le reflet de l'ignorance d'un monde détruit par la guerre ![/glow]
Citer
Chaque jours, la haine nous renferme dans l'obscurité ![/glow]
(Citations par D0os)

Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : Timer Freeze ..
« Réponse #11 le: 05 Décembre 2010, 20:21:59 »
Toujours pareil :( ...
Madinina972



Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Re : Timer Freeze ..
« Réponse #12 le: 05 Décembre 2010, 20:53:02 »
Salut,

RE: Dans ce cas, retourne le :

forward EnterPrisonTimer(playerid);
public EnterPrisonTimer(playerid)
{
TogglePlayerControllable(playerid,1);
         return 1;
}

j'aimerais bien qu'on m'explique en quoi ce return sevrait changer quelque chose à ce problème?

Regarde quand tu lance ton timer, s'il se répète, tu utilise bien SetTimerEX, ...?

++Sim++





Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : Timer Freeze ..[RESOLUE]
« Réponse #13 le: 05 Décembre 2010, 20:56:25 »
Merci Sim , mais DOos ma donné la solution

Il fallait que je règle mon Timer comme ceci:

       SetTimer("EnterPrisonTimer",2200,0);
      
Madinina972



Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Timer Freeze ..[RESOLUE]
« Réponse #14 le: 05 Décembre 2010, 21:01:47 »
Sim a raison tu doit utiliser SetTimerEx, en passant comme paramètre l'id de ton joueur ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog