• 22 Avril 2025, 19:53:03


Auteur Sujet: [Topic Général] Aide de Komolos  (Lu 1264 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Komolos

  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
[Topic Général] Aide de Komolos
« le: 28 Novembre 2010, 20:19:22 »
Bonsoir,

Aujourd'hui j'aimerai crée un public qui freeze est unfreeze, après X secondes, donc j'ai fait comme ça :



public Freeze()
{
    for(new i; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(gPlayerSpawned[i] == 1)
            {
                new nomjoueur[MAX_PLAYER_NAME];
                new string[256];
                GetPlayerName(i,nomjoueur,MAX_PLAYER_NAME);
            {
    {
                        SendClientMessage(i, COLOR_WHITE, "Vous avez était freeze");
                        TogglePlayerControllable(i, 0);
                        SetTimer("UnFreeze", 20000, 0);

                    }
             }
            }
        }
    }
    return 1;
}


Donc pour la fonction unfreeze on fait pareille et ça unfreeze, j'aimerai savoir si sais bien comme ça qui faut faire.

J'aimererai aussi comprendre quoi est la défirrence entre :

SetTimer

&

SetTimerEx


Voilà merci d'avance ^^

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : [Topic Général] Aide de Komolos
« Réponse #1 le: 28 Novembre 2010, 21:31:31 »
Salut :)

Tu t'y prend mal,
il faudrait plutôt quelque chose comme ceci.


public Freeze(playerid, time)
{
new string[128];
format(string, sizeof(string), "Vous avez était freeze pour %d secondes", time);
SendClientMessage(i, COLOR_WHITE, string);
    TogglePlayerControllable(i, 0);
    SetTimerEx("UnFreeze", time, 0, "i", playerid);
    return 1;
}

public UnFreeze(playerid)
{
TogglePlayerControllable(playerid, 1);
}


SetTimer et SetTimerEx, servent à la même chose : appeler une fonction MAIS l'un sans et l'autre avec des paramètres. Je m'explique si jamais tu veux appeler cette fonction

public Fonction(playerid)

Tu va devoir utiliser SetTimerEx

Au contraire si la fonction n'a aucun paramètre  exemple :

public Fonction()

Alors là c'est simple : SetTimer

A+ Sam.
« Modifié: 28 Novembre 2010, 21:34:17 par chneubeul »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : [Topic Général] Aide de Komolos
« Réponse #2 le: 28 Novembre 2010, 21:37:40 »
Je tiens également à dire que public est juste un type de fonction.
Donc, tu ne dois pas appeler ta fonction public.
Une fonction public est une fonction qui pourra se faire appeler par des fichiers externes.
Par exemple, si ta fonction Freeze est dans une include, si tu l'ajoute à ton script, tu pourras l'appeler.
Au contraire, si ta fonction est de type private, elle ne pourra être appelé seulement dans le fichier courant.

Il peut également exister des fonctions sans type !

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : [Topic Général] Aide de Komolos
« Réponse #3 le: 28 Novembre 2010, 21:48:54 »
Les fonctions public servent aussi à l'utilisation de Timer.

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : [Topic Général] Aide de Komolos
« Réponse #4 le: 28 Novembre 2010, 23:11:10 »
Un timer peut également être de type private !

Hors ligne Komolos

  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
Re : [Topic Général] Aide de Komolos
« Réponse #5 le: 02 Décembre 2010, 14:54:37 »
Ensuite je me suis fait un scripte pour savoir X détient l'ip X mais ça fait crash mon serveur si je le fait :

GetPlayerIp( giveplayerid,IP,sizeof(IP));
  format(string, sizeof(string), "Vous avez l'ip %s",IP);
SendClientMessage(playerid,COLOR_RED,string);


avec biensur le : new IP[256];

je me met dans OnPlayerConnect, puis si je me connecte ça me fait crash....
Je sais pas pourquoi.


J'ai aussi fait un petit TextDraw pour dire au ancien que un nouveau joueurs arrivent, mais il ne marche pas, j'ai l'est aussi mis dans OnPlayerConnect, sa marque à tout le monde :

if(PlayerInfo[playerid][pLevel] =< 2) // égal ou inférieure aux level 2
{
  new Text3D:NEW;
  NEW = Create3DTextLabel("[ATTENTION NOUVEAU JOUEUR !]",COLOR_RED,0,0,0,10,0,0);
  Attach3DTextLabelToPlayer(NEW,playerid,0,0,0.5);
}
« Modifié: 02 Décembre 2010, 15:06:42 par Komolos »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : [Topic Général] Aide de Komolos
« Réponse #6 le: 02 Décembre 2010, 15:05:52 »
<?php
new Ip[90];//preparons nous a l'ip V6 qui arrive dans 6 semaine a peu pret
GetPlayerIp(playerid,Ip,sizeof(Ip));
new 
string[128];
format(stringsizeof(string), "Vous avez l'ip %s",Ip);
SendClientMessage(playerid,COLOR_RED,string);
comme ceci aussi sa crash??

Ton erreure vient de la je pense
GetPlayerIp( giveplayerid,IP,sizeof(IP));
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Komolos

  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
Re : [Topic Général] Aide de Komolos
« Réponse #7 le: 02 Décembre 2010, 15:07:27 »
Je vais essayé Cristab.

Effectivement ça marche maintenant.

J'ai mis mon deuxième problème en haut.
« Modifié: 02 Décembre 2010, 15:14:31 par Komolos »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : [Topic Général] Aide de Komolos
« Réponse #8 le: 02 Décembre 2010, 15:22:21 »
j'aurais fait comme ceci dans le onplayerspawn

en ajoutant une nouvelle var
new FirstSpawn[MAX_PLAYERS];
dans le onplayerconnect
FirstSpawn[playerid]=0;
if(FirstSoawn[playerid]==0)
{
   if(PlayerInfo[playerid][pLevel] =< 2) // égal ou inférieure aux level 2
   {
      new Text3D:NEW[MAX_PLAYERS];
      NEW[playerid] = Create3DTextLabel("[ATTENTION NOUVEAU JOUEUR !]",COLOR_RED,0,0,0,10,0,0);
      Attach3DTextLabelToPlayer(NEW[playerid],playerid,0,0,0.5);
      FirstSpawn[playerid]=1;
   }
   else
   {
       FirstSpawn[playerid]=1;
   }
}
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Komolos

  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
Re : [Topic Général] Aide de Komolos
« Réponse #9 le: 02 Décembre 2010, 15:35:25 »
Okay merci.

ta fait une erreur mais j'ai corrigé ^^