Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254724 Messages dans 14037 Fils de discussion- par 6622 Membres - Dernier membre: lauraline72

24 Mai 2012 à 01:28:27
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)Problème sur mon script
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Problème sur mon script  (Lu 539 fois)
0 Membres et 2 Invités sur ce fil de discussion.
HeyC
Hors ligne Hors ligne


Tueur en série
*

Messages: 273


HeyClem

« 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)
#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.
Journalisée


---------

Bayshore
Hors ligne Hors ligne


GTAOnline Addict
*

Messages: 898


« Répondre #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. Sourire
Journalisée
HeyC
Hors ligne Hors ligne


Tueur en série
*

Messages: 273


HeyClem

« Répondre #2 le: 29 Octobre 2008 à 21:52:47 »

Je ne comprend pas  Ind&eacute;cis
J'ai tirer :
-new Check;
-Check =
-If(Check)
Et toujours rien
« Dernière édition: 29 Octobre 2008 à 21:57:36 par HeyC » Journalisée


---------

Bayshore
Hors ligne Hors ligne


GTAOnline Addict
*

Messages: 898


« Répondre #3 le: 29 Octobre 2008 à 21:58:02 »

Code: (pawn)
new Check;
La variable faut false (ou 0 si tu préfères).

Code: (pawn)
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.
Journalisée
HeyC
Hors ligne Hors ligne


Tueur en série
*

Messages: 273


HeyClem

« Répondre #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 ?
Journalisée


---------

Bayshore
Hors ligne Hors ligne


GTAOnline Addict
*

Messages: 898


« Répondre #5 le: 29 Octobre 2008 à 22:03:07 »

Ne retires pas le OnPlayerEnterCheckpoint() en entier, juste la condition if(Check). Sourire
Journalisée
HeyC
Hors ligne Hors ligne


Tueur en série
*

Messages: 273


HeyClem

« Répondre #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")
« Dernière édition: 29 Octobre 2008 à 22:06:28 par HeyC » Journalisée


---------

S!m
Hors ligne Hors ligne


Moderateur
GTAOnline Fan Boy
*

Messages: 2260


« Répondre #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 Clin d'oeil

++Sim++
Journalisée





HeyC
Hors ligne Hors ligne


Tueur en série
*

Messages: 273


HeyClem

« Répondre #8 le: 30 Octobre 2008 à 06:43:04 »

non que un checkpoint
Journalisée


---------

Ssk
Développeur d'Open SA-MP
Hors ligne Hors ligne


Sous-admin
GTAOnline Legend
*

Open-SA-MP - Unlimited Experience

Messages: 3731


WWW



sasuke78200

« Répondre #9 le: 30 Octobre 2008 à 09:40:52 »

Code:
      #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 Sourire
Journalisée






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


Tueur en série
*

Messages: 273


HeyClem

« Répondre #10 le: 30 Octobre 2008 à 09:49:50 »

Ok. Je vais tester & j'éditerai mon post.

EDIT : Marche toujours pas  L&egrave;vres scell&eacute;es
« Dernière édition: 30 Octobre 2008 à 09:53:07 par HeyC » Journalisée


---------

Syg
Expert programmeur C/C++/PAWN
Hors ligne Hors ligne


Administrateur
GTAOnline Legend
*

The GTAOnline Jesus

Messages: 3760


« Répondre #11 le: 31 Octobre 2008 à 09:49:05 »

Ok, voici la solution :

Code:
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
Journalisée

Courtesy of GtaManiac
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #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 ^^
Journalisée

HeyC
Hors ligne Hors ligne


Tueur en série
*

Messages: 273


HeyClem

« Répondre #13 le: 31 Octobre 2008 à 10:42:22 »

MErci beaucoup, sa marche.
Journalisée


---------

Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.139 secondes avec 22 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact