• 05 Juin 2026, 23:09:28


Auteur Sujet: Problème sur mon script  (Lu 2017 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne HeyC

  • *
  • Bandit
  • Messages: 331
    • Voir le profil
Problème sur mon script
« le: 29 Octobre 2008, 20:59:04 »
Salut, j'ai eu l'idée de créer un script pour que les membres du staff (se qui ont fait /rcon login ...) se fase téléporté par un chekpoint & les autres personnes (non-staff) qui vont dans le chekpoint meurt.
Script :
Code: (pawn) [Sélectionner]
#include <a_samp>
#include <core>
#include <float>

new Check;

#if defined FILTERSCRIPT

#endif

public OnPlayerSpawn(playerid)
{
Check = SetPlayerCheckpoint(playerid, -2007.09,219.86,100, 3);
return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
if(Check)
{
if(IsPlayerAdmin(playerid))
{
SetPlayerPos(playerid, -750.80, 491.00, 1371.70);
GameTextForPlayer(playerid,"Bienvenue a l'endroit secret du staff",2000,5);
}
else
{
SetPlayerHealth(playerid, 0);
GameTextForPlayer(playerid,"Tu n'as pas droit de venir ici.",2000,5);
}
}
return 1;
}
Il n'y a pas d'erreur. Mais quand je me met dans le checkpoint, ça fait rien.
Pouvez vous m'aidez ?

PS : La téléportation s'est pour allez A Liberty City, Au bar.

---------


Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Problème sur mon script
« Réponse #1 le: 29 Octobre 2008, 21:34:50 »
Un checkpoint n'a pas d'ID - se serait en effet inutile puisqu'il ne peut y en avoir qu'un sur la map - donc oublie ta condition if(Check), car elle retourne false (valeur de base d'une variable) et ça devrait être bon. :)

Hors ligne HeyC

  • *
  • Bandit
  • Messages: 331
    • Voir le profil
Re : Problème sur mon script
« Réponse #2 le: 29 Octobre 2008, 21:52:47 »
Je ne comprend pas  :-\
J'ai tirer :
-new Check;
-Check =
-If(Check)
Et toujours rien
« Modifié: 29 Octobre 2008, 21:57:36 par HeyC »

---------


Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Problème sur mon script
« Réponse #3 le: 29 Octobre 2008, 21:58:02 »
Code: (pawn) [Sélectionner]
new Check;La variable faut false (ou 0 si tu préfères).

Code: (pawn) [Sélectionner]
Check = SetPlayerCheckpoint(playerid, -2007.09,219.86,100, 3);La variable vaut toujours false, car la fonction SetPlayerCheckpoint() ne retourne rien.

Tu ne peut avoir qu'un seul checkpoint sur la carte, ta condition qui vérifie de quel checkpoint il s'agit (dans OnPlayerEnterCheckpoint()) est donc inutile et te conduit à l'erreur.

Hors ligne HeyC

  • *
  • Bandit
  • Messages: 331
    • Voir le profil
Re : Problème sur mon script
« Réponse #4 le: 29 Octobre 2008, 22:00:29 »
Vu que j'ai que un checkpoint, alors je peut tirer tout les "Check" ...
Mais toujours rien

Comment je vais faire sans le OnPlayerEnterCheckpoint ?

---------


Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Problème sur mon script
« Réponse #5 le: 29 Octobre 2008, 22:03:07 »
Ne retires pas le OnPlayerEnterCheckpoint() en entier, juste la condition if(Check). :)

Hors ligne HeyC

  • *
  • Bandit
  • Messages: 331
    • Voir le profil
Re : Re : Problème sur mon script
« Réponse #6 le: 29 Octobre 2008, 22:04:18 »
Je vais voir ça.

EDIT : J'ai que tiré le if(Check), mais sa ne marche toujour pas. Et il me mette un Warning (symbol is assigned a value that is never used: "Check")
« Modifié: 29 Octobre 2008, 22:06:28 par HeyC »

---------


Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Problème sur mon script
« Réponse #7 le: 30 Octobre 2008, 03:17:50 »
salut,

es-ce que tu utilise un autre checkpoint sur ta map, si oui, tu ferais mais de faire un test IsPlayerInArea pour savoir dans quel checkpoint le joueur est entré (ce qui est la technique la plus simple)

good luck ;)

++Sim++





Hors ligne HeyC

  • *
  • Bandit
  • Messages: 331
    • Voir le profil
Re : Problème sur mon script
« Réponse #8 le: 30 Octobre 2008, 06:43:04 »
non que un checkpoint

---------


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Problème sur mon script
« Réponse #9 le: 30 Octobre 2008, 09:40:52 »
      #include <a_samp>
      #include <core>
      #include <float>
       
      new check[MAX_PLAYERS];

      #if defined FILTERSCRIPT

      #endif

       

      public OnPlayerSpawn(playerid)
      {
      SetPlayerCheckpoint(playerid, -2007.09,219.86,100, 3);
      check[playerid] = 1;
     return 1;
      }
       

      public OnPlayerEnterCheckpoint(playerid)
      {

      if(check[playerid] == 1)

      {

      if(IsPlayerAdmin(playerid))

      {

      SetPlayerPos(playerid, -750.80, 491.00, 1371.70);

      GameTextForPlayer(playerid,"Bienvenue a l'endroit secret du staff",2000,5);
      check[playierid] = 0;
      }
      else
      {
      SetPlayerHealth(playerid, 0);
      GameTextForPlayer(playerid,"Tu n'as pas droit de venir ici.",2000,5);
      check[playierid] = 0;   
   }
      }
      return 1;
      }

Cadeau je suis de bonne humeur :)



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

Hors ligne HeyC

  • *
  • Bandit
  • Messages: 331
    • Voir le profil
Re : Problème sur mon script
« Réponse #10 le: 30 Octobre 2008, 09:49:50 »
Ok. Je vais tester & j'éditerai mon post.

EDIT : Marche toujours pas  :-X
« Modifié: 30 Octobre 2008, 09:53:07 par HeyC »

---------


Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Problème sur mon script
« Réponse #11 le: 31 Octobre 2008, 09:49:05 »
Ok, voici la solution :

public OnPlayerSpawn(playerid)
{
   SetPlayerCheckpoint(playerid, -2007.09,219.86,27.0, 3.0);
   return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
   if(IsPlayerAdmin(playerid))
   {
      SetPlayerPos(playerid, -750.80, 491.00, 1371.70);
      GameTextForPlayer(playerid,"Bienvenue a l'endroit secret du staff",2000,5);
   }
   else
   {
      SetPlayerHealth(playerid, 0);
      GameTextForPlayer(playerid,"Tu n'as pas droit de venir ici.",2000,5);
   }
   return 1;
}

L'altitude à laquelle tu créais ton checkpoint n'était pas correcte (100.0 m). J'ai mis 27.0 à la place.
Et je n'ai pas trouvé ce 27.0 par hasard. Il suffit de faire un /save à l'endroit où l'on veut mettre le CP et de récupérer TOUTES les coordonnées.

Par contre, le SetPlayerPos à 1371 m d'altitude je ne pense pas que ce soit un endroit secret (c'est au dessus de la mer mais bon).
Et le SetPlayerHealth à 0 sur le checkpoint pour les autres joueurs est un peu violent à mon goût.

++
Syg
Courtesy of GtaManiac

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Problème sur mon script
« Réponse #12 le: 31 Octobre 2008, 10:11:55 »
uep c'est  vrai c'est un mechant se devrait le teleporter a son spawn moin violant je pense ^^
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 HeyC

  • *
  • Bandit
  • Messages: 331
    • Voir le profil
Re : Problème sur mon script
« Réponse #13 le: 31 Octobre 2008, 10:42:22 »
MErci beaucoup, sa marche.

---------