GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: lilem le 22 Janvier 2008, 16:56:42

Titre: Voiture résérvé Au admin
Posté par: lilem le 22 Janvier 2008, 16:56:42
Salut, Sa fait un petit moment que je cherche ce FS il y et sur SFTDM
Titre: Re : Voiture résérvé Au admin
Posté par: UrbanGhetto le 22 Janvier 2008, 18:35:38
Facile,

Je te donne le code mais essaye de le comprendre au moins...

new AdminVehicle1; /* Tout en haut, Définition du premier véhicule admin */
new AdminVehicle2; /* Tout en haut, Définition du deuxième véhicule admin */

public OnGameModeInit(){
AdminVehicle1=AddStaticVehicle(ID,X,Y,Z,Couleur1,Couleur2); /* 1er Véhicule admin */
AdminVehicle2=AddStaticVehicle(ID,X,Y,Z,Couleur1,Couleur2); /* 2e Véhicule admin */
}

public OnPlayerEnterVehicle(playerid,vehicleid){
if(vehicleid==AdminVehicle1){ /* Si le joueur entre dans le premier véhicule admin */
/* Actions */
}
if(vehicleid==AdminVehicle2){ /* Si le joueur entre dans le deuxième véhicule admin */
/* Actions */
}
}

Si tu veux ajouter des véhicules il suffit de définir plus de véhicules en haut de ton script, Ajouter un véhicule avec AdminVehicleX== devant, Et le mettre dans OnPlayerEnterVehicle, (Tu peut aussi utiliser OnPlayerStatChange pour éxécuter les actions une fois que le joueur est DANS le véhicule...).
Titre: Re : Voiture résérvé Au admin
Posté par: marsu le 24 Janvier 2008, 13:24:10
J'ai essayer ton code mais il marche pas pour moi

ps : mon code

1.AdminVehicle1=AddStaticVehicle(545,2329.3374,-1253.2600,22.3334,264.0271,1,1); /* 1er Véhicule admin */
Titre: Re : Voiture résérvé Au admin
Posté par: [StAfF]MaN le 24 Janvier 2008, 14:16:06
il ne faut pas seulement mettre AdminVehicle1=AddStaticVehicle(545,2329.3374,-1253.2600,22.3334,264.0271,1,1); /* 1er Véhicule admin */

Au début de ton script dans <float> tu met ça

new AdminVehicle1; // Tout en haut, Définition du premier véhicule admin
new AdminVehicle2; //Tout en haut, Définition du deuxième véhicule admin

etc..., pour tout les véhicules que tu veu mettre admin

Ensuite dans ton public GameModeInit tu met "AdminVehicle1=" devant le(s) véhicule(s) que tu veu mettre admin par exemple

AdminVehicle1=AddStaticVehicle(411,-1986.9916,271.2776,35.2723,63.3029,6,0); (pour une infernusqui se trouve au wang)

Après dans public OnPlayerEnterVehicle(playerid,vehicleid){

tu met ça

if(vehicleid==AdminVehicle1){
GameTextForPlayer(playerid,"blablabla",10000,3);
} //par exemple, après tu met ce que tu veu...

et ainsi de suite pour tout les véhicules que tu as choisi pour qu'ils soient exclusivement admin.

tu peu essayer ça

public OnPlayerEnterVehicle(playerid,vehicleid){
if(vehicleid==AdminVehicle1){
if(IsPlayerAdmin(playerid) == 1){
GameTextForPlayer(playerid,"~g~bonjour Admin.",10000,3); // 10000 pour 10 seconde texte affiché a l'écran
}else{
if(IsPlayerAdmin(playerid) == 0){
GameTextForPlayer(playerid,"~r~Tu n'est pas Admin",15000,3);
//tu peu rajouter une téléportation pour le player, comme ça il ne sera pas dans la voiture, ou alors tu le met en taule
}
}
}

Voila ^^
Titre: Re : Voiture résérvé Au admin
Posté par: UrbanGhetto le 24 Janvier 2008, 14:20:19
Vous pouvez arrêter de poster des codes dans l'air X_X, Utilisez la fonction Codes ou GeSHi du forum
Titre: Re : Voiture résérvé Au admin
Posté par: Syg le 24 Janvier 2008, 14:36:37
Voici une solution plus jolie pour le cas où on a beaucoup de véhicules admins :

new AdminVehicle1;
new AdminVehicle1;
..
public OnGameModeInit ()
{
   /* Code du début de la callback */
   ...

   /* Véhicules admins (ils doivent tous être déclarés ici entre AdminVehicle1= et AdminVehicle2=) */
   AdminVehicle1 = CreateVehicle (...); // Premier véhicule admin
   CreateVehicle (....); // Un autre véhicule admin
   CreateVehicle (....); // Puis un autre
   ...
   AdminVehicle2 = CreateVehicle (...); // Le dernier vehicule admin

   /* Le reste de la callback */
   ...
}

public OnPlayerEnterVehicle(playerid,vehicleid)
{
   /* Si c'est un véhicule admin */
   if (vehicleid>= AdminVehicle1 && vehicleid<=AdminVehicle2)
   {
      /* Actions */
   }
}

Ceci permet d'éviter que la callback OnPlayerEnterVehicle devienne énorme au fur et à mesure qu'on rajoute des véhicules admins.

++
Syg
Titre: Re : Voiture résérvé Au admin
Posté par: marsu le 24 Janvier 2008, 16:38:38
merci a [StAfF]mAn et Syg sa m'aide je vais essayer

est sinon celui qui est pas admin ne peut pas rentrer ?

Sa peut Marcher pour une gTeam ?
Titre: Re : Voiture résérvé Au admin
Posté par: marsu le 24 Janvier 2008, 16:48:28
Arf jarrive pas 2 choses

D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(109) : warning 225: unreachable code
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(832) : error 029: invalid expression, assumed zero
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(853) : error 030: compound statement not closed at the end of file (started at line 830)
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
Titre: Re : Voiture résérvé Au admin
Posté par: [StAfF]MaN le 24 Janvier 2008, 16:55:20
Et il y a quoi a ces lignes ?? (109) (832) (853)
Titre: Re : Voiture résérvé Au admin
Posté par: marsu le 24 Janvier 2008, 16:58:32
Maintenant c'est

D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(110) : warning 225: unreachable code
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(851) : error 030: compound statement not closed at the end of file (started at line 832)
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


1 Error.


Ligne 832 = if(vehicleid==AdminVehicle1){
Titre: Re : Voiture résérvé Au admin
Posté par: [StAfF]MaN le 24 Janvier 2008, 17:07:47
Tu peu pas nous filer les lignes qui sont mises entre parenthèse stp ^^ parce que sinon on peu pas t'aider :p !!

Allé, la ligne 110 et la ligne 853 pleas ^^

pour la 110 tu doit avoir une "{" en trop
Titre: Re : Voiture résérvé Au admin
Posté par: marsu le 24 Janvier 2008, 17:09:53
110 =    if(strcmp(dini_Get("Sad",PName),"ValidSad",true)==0)

851 = Ya rien

832 = if(vehicleid==AdminVehicle1){
Titre: Re : Voiture résérvé Au admin
Posté par: UrbanGhetto le 24 Janvier 2008, 17:18:18
Ben oui, Mets un { à la fin de if(strcmp(dini_Get("Sad",PName),"ValidSad",true)==0), if(strcmp(dini_Get("Sad",PName),"ValidSad",true)==0){
Titre: Re : Voiture résérvé Au admin
Posté par: marsu le 24 Janvier 2008, 17:32:05
Aie !

D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(110) : warning 225: unreachable code
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(114) : error 029: invalid expression, assumed zero
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(114) : warning 215: expression has no effect
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(114) : error 001: expected token: ";", but found "if"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(124) : error 029: invalid expression, assumed zero
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(124) : error 004: function "OnPlayerSpawn" is not implemented
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(129) : warning 225: unreachable code
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(129) : error 029: invalid expression, assumed zero
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(129) : error 004: function "OnPlayerCommandText" is not implemented
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(132) : warning 219: local variable "string" shadows a variable at a preceding level
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(144) : warning 219: local variable "PName" shadows a variable at a preceding level
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(145) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(150) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(181) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(214) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(241) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(268) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(295) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(322) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(429) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(457) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(486) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(512) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(527) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(542) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(573) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(628) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(647) : error 004: function "Sad_Yes" is not implemented
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(665) : error 017: undefined symbol "cmdtext"
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(684) : error 004: function "Sad_Yes" is not implemented
D:\PROGRA~1\ROCKST~1\GTASAN~1\FILTER~1\sad.pwn(702) : error 017: undefined symbol "cmdtext"

Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


26 Errors.



Fodrai plutot refaire la ligne 832 = if(vehicleid==AdminVehicle1){
Titre: Re : Voiture résérvé Au admin
Posté par: R@f le 24 Janvier 2008, 17:38:19
manque surment une accolade ;)

++
R@f
Titre: Re : Voiture résérvé Au admin
Posté par: marsu le 24 Janvier 2008, 17:44:15
Non toujour pareil :(
Titre: Re : Voiture résérvé Au admin
Posté par: UrbanGhetto le 24 Janvier 2008, 18:31:21
Tu sais ce que c'est au moins ?  ???
Titre: Re : Voiture résérvé Au admin
Posté par: marsu le 24 Janvier 2008, 19:26:07
Bas des espaces je crois ..
Titre: Re : Voiture résérvé Au admin
Posté par: NatiVe™ le 24 Janvier 2008, 20:18:02
Hey !

"{" > "}"

:D

NV.

Titre: Re : Voiture résérvé Au admin
Posté par: marsu le 24 Janvier 2008, 20:34:05
Merci jvé voir si sa marche
Titre: Re : Voiture résérvé Au admin
Posté par: ApocKalipsS le 27 Janvier 2008, 15:10:52
public OnPlayerEnterVehicle(playerid,vehicleid)
{

   if (vehicleid>= Policecar)
   {
SendClientMessage(playerid, COLOR_RED, "Ceci est une voiture d'exposition, tu ne peux pas monter dedans.");
RemovePlayerFromVehicle(playerid);
   }
}

Bonjour, voila mon script. Mon problème : je monte dans la voiture, il ya bien le message mais le joueur ne s'éjècte pas !
J'ai essayer ca :
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if (newstate == PLAYER_STATE_DRIVER)
{
if (IsPlayerInAnyVehicle(vehicleid))
{
SendClientMessage(playerid, COLOR_RED, "Tu n'as pas ton permis !");
RemovePlayerFromVehicle(playerid);
}


}
}

Mais il n'y a pas le "vehicleid" dans OnPlayerStateChange. Si vous savez comment le metre... Merci de me le dire  :D!
Titre: Re : Re : Voiture résérvé Au admin
Posté par: rivoal29 le 27 Janvier 2008, 15:33:11
Au début de ton script dans <float> tu met ça

Mais où tu voit ton F.L.O.A.T
sa commence a m'énerver ce float :spam :spam :spam
 :wall
 :wall
 :wall
Titre: Re : Voiture résérvé Au admin
Posté par: ApocKalipsS le 27 Janvier 2008, 15:35:58
0_o Un float ? Pour faire quoi 0_o ?
Titre: Re : Re : Re : Voiture résérvé Au admin
Posté par: rivoal29 le 27 Janvier 2008, 15:51:42
Je c pas où c'est ni qu'es que c'est float
Titre: Re : Voiture résérvé Au admin
Posté par: ApocKalipsS le 27 Janvier 2008, 15:52:52
Float c'est le truck qui à tous en haut de ton GM c'est (on va dire) là que tu met tes "new"....

Bon nan je crois pas que c'est ça... :blink
Titre: Re : Re : Voiture résérvé Au admin
Posté par: rivoal29 le 27 Janvier 2008, 15:53:52
Float c'est le truck qui à tous en haut de ton GM c'est (on va dire) là que tu met tes "new"....

Bon nan je crois pas que c'est ça... :blink

jen est pas moi  :wall :rules :spam :boulz
Titre: Re : Voiture résérvé Au admin
Posté par: ApocKalipsS le 27 Janvier 2008, 15:58:54
Bon enfete ca sert à rien ok ?

Pourquoi tu veux savoir ? Moi je sais pas et puis je m'en fiche
Titre: Re : Voiture résérvé Au admin
Posté par: [StAfF]MaN le 27 Janvier 2008, 16:34:26
En haut de ton script NORMALEMENT tu as ça :

//------------------------------------------------------------------------------

//

// San Fierro TDM. A Team Deathmtach script for SA-MP 0.1

//

//------------------------------------------------------------------------------



#include <a_samp>
#define MAX_STRING 256
enum SavePlayerPosEnum
{

    Float:LastX,

    Float:LastY,

    Float:LastZ

}
new SavePlayerPos[MAX_PLAYERS][SavePlayerPosEnum];
new Text:Speedometer[MAX_PLAYERS];
//new Text:staffteam;
#include <core>

#include <float>

#define CreatPickup
//Global stuff and defines for our gamemode

static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player

new gPlayerClass[MAX_PLAYERS];

//Color Defines

etc...

Si tu regarde dedans il y a un <a_samp> un <core> et un <float>, ils sont en bleu
Titre: Re : Voiture résérvé Au admin
Posté par: Syg le 28 Janvier 2008, 14:42:50
Pour répondre à Rivoal29 :
1) - Float est un tag qui permet de transformer un variable normalement entière en un nombre à virgule flottante (nombre décimal).
Exemple :
new X1; // Ceci est un nombre entier (sans virgule)
new Float:X2; // Ceci est un nombre décimal (avec virgule)
X1 = 17;
X2 = 54.66;

2) - #include <float> permet de donner au compilateur la déclaration de toutes les fonctions utilisées pour faire des calculs sur les floats (nombre décimaux).
Exemple de fonction déclarée dans float.inc : floatsqrt qui permet de calculer la racine carrée d'un nombre.

Pour LePro :
Il y a la fonction GetPlayerVehicleId pour trouver le vehicleid du véhicule dans lequel est le joueur. (mais je ne vois pas pourquoi tu as besoin du vehicleid)
Sinon, ton test IsPlayerInAnyVehicle n'est pas nécessaire car tu a déjà tester que le joueur est conducteur (et si il est conducteur, il est forcément dans un véhicule).
Soit :
public OnPlayerStateChange(playerid, newstate, oldstate)
{
   if (newstate == PLAYER_STATE_DRIVER)
   {
       if (/* Le joueur n'a pas son permis */) -> Test a écrire par toi-même, je ne connais pas les variables que tu utilises
      {
         SendClientMessage(playerid, COLOR_RED, "Tu n'as pas ton permis !");
         RemovePlayerFromVehicle(playerid);
      }
   }
}

++
Syg
Titre: Re : Voiture résérvé Au admin
Posté par: ApocKalipsS le 28 Janvier 2008, 16:59:43
Syg ==> moi je voudrais que si il monte dans le véhicule "Policecar" et il soit éjecter.
Titre: Re : Voiture résérvé Au admin
Posté par: UrbanGhetto le 28 Janvier 2008, 17:03:21
C'est assès facile...

Code: (cpp) [Sélectionner]
if(GetVehicleModel(vehicleid)== /*ID du Policecar*/){
RemovePlayerFromVehicle(playerid);
}
Titre: Re : Voiture résérvé Au admin
Posté par: ApocKalipsS le 28 Janvier 2008, 17:04:37
Oui mais pour le "vehiculeid" il va me mettre une erreur !
Titre: Re : Re : Voiture résérvé Au admin
Posté par: R@f le 28 Janvier 2008, 17:18:24
Oui mais pour le "vehiculeid" il va me mettre une erreur !
tu mets tout simplement
Code: (cpp) [Sélectionner]
new vehicleid;
++
R@f
Titre: Re : Voiture résérvé Au admin
Posté par: UrbanGhetto le 28 Janvier 2008, 17:30:01
Nan :

Code: (cpp) [Sélectionner]
new vehicleid=GetPlayerVehicleID(playerid);