GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: John_Montavedro le 03 Juillet 2010, 16:26:03

Titre: Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 16:26:03
1ère : Avec MTA san andreas race, peut on mettre autre chose que des motos en tant que véhicule? si oui comment, s'il vous plait. Merci

2ème : Je ne trouve pas de tutoriel expliquant comment faire des commandes de spawn (exemple : /gotosf -> pour aller à San Fierro ; /gotols -> pour aller à Los Santos ; /gotolv -> pour aller à Las Venturas) si une personne peut m'aider sa serai bien, merci :)
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 16:34:16
tant que tu reste connecté, :D peux tu me dire comment connaitre tel ou tel position? y'a t'il un logiciel?

Double post
Et aussi, c'est ou que l'on met les commandes de téléportation?
Titre: Re : Deux questions :s
Posté par: MK le 03 Juillet 2010, 16:47:53
Citer
1ère : Avec MTA san andreas race, peut on mettre autre chose que des motos en tant que véhicule? si oui comment, s'il vous plait. Merci
Race setting -> set starting vehicule. un truc comme ca :)
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 16:57:58
Petit problème, voici ce que j'ai fais :

public OnPlayerText(playerid, text[])
{
     if(strcmp(cmdtext,"/lv",true) == 0) // si la commande tapée est /lv
           { // on ouvre un accolade pour dire qu'on commence une commande
           SetPlayerPos(playerid,2032.0090,1342.8932,10.8203,272.3594,0,0,0,0,0,0); // On téléporte le joueur à la position que tu veux , tu devra remplacer le X , le Y et le Z
           return 1;
           } // on la fermer pour dire que le code est terminé.
return 1;
}

Et l'erreur :


C:DOCUME~1MEYERS~1BureauSE2978~1GAMEMO~1STUNTJ~1.PWN(119) : error 017: undefined symbol "cmdtext"
C:DOCUME~1MEYERS~1BureauSE2978~1GAMEMO~1STUNTJ~1.PWN(121) : warning 202: number of arguments does not match definition
C:DOCUME~1MEYERS~1BureauSE2978~1GAMEMO~1STUNTJ~1.PWN(121) : warning 202: number of arguments does not match definition
C:DOCUME~1MEYERS~1BureauSE2978~1GAMEMO~1STUNTJ~1.PWN(121) : warning 202: number of arguments does not match definition
C:DOCUME~1MEYERS~1BureauSE2978~1GAMEMO~1STUNTJ~1.PWN(121) : warning 202: number of arguments does not match definition
C:DOCUME~1MEYERS~1BureauSE2978~1GAMEMO~1STUNTJ~1.PWN(121) : warning 202: number of arguments does not match definition
C:DOCUME~1MEYERS~1BureauSE2978~1GAMEMO~1STUNTJ~1.PWN(121) : warning 202: number of arguments does not match definition
C:DOCUME~1MEYERS~1BureauSE2978~1GAMEMO~1STUNTJ~1.PWN(121) : warning 202: number of arguments does not match definition
C:DOCUME~1MEYERS~1BureauSE2978~1GAMEMO~1STUNTJ~1.PWN(124) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Peux tu m'aider s'il te plait?

Double post
Citer
1ère : Avec MTA san andreas race, peut on mettre autre chose que des motos en tant que véhicule? si oui comment, s'il vous plait. Merci
Race setting -> set starting vehicule. un truc comme ca :)

Merci ;)
Titre: Re : Deux questions :s
Posté par: MK le 03 Juillet 2010, 17:05:55
Normal..
en haut de ton script

On créer la fonction TeleporterJoueur.
On y récupère la position, l'angle du véhicules et du joueurs s'il est dans un véhicule.
Sinon, on récupère la position du joueur.
Code: ("code par syg") [Sélectionner]
TeleporterJoueur (playerid, Float:X, Float:Y, Float:Z, Float:Angle)
{
   new vehicleid;
   if (IsPlayerInAnyVehicle (playerid)
   {
      vehicleid = GetPlayerVehicleId (playerid); //on récupère l'id du véhicule.
      SetPlayerPos (playerid, X, Y, Z); //position
      SetVehiclePos (vehicleid, X, Y, Z); //position véhicule
      SetVehicleZAngle (vehicleid, Angle); //angle véhicule
      PutPlayerInVehicle (playerid, vehicleid, 0);
      SetCameraBehindPlayer (playerid);
   }
   else
   {
      SetPlayerPos (playerid, X, Y, Z); //position
      SetCameraBehindPlayer (playerid);
   }
}

et dans OnPlayerCommandText
Code: ("Code par syg") [Sélectionner]
if (strcmp ("/mlv", cmdtext, true) == 0)
{
   TeleporterJoueur (playerid, 5.0(X), 6.0(Y), 7.0(Z), 8.0(Angle)); //on se sert de la fonction créer pour téléporter le joueur
}

Je trouve cela vraiment pratique à utiliser.
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 17:09:31
J'ai trouvé, c'est bon merci ;)

Double post
Par contre, pouvez vous me dire comment mettre un message par exemple (le client fait /lv et donc se téléporte à Las Ventruras, j'aimerai faire une phrase qui, quand le client fait /lv, déjà il se téléporte à Las Venturas et de plus, un message s'affiche "Tu t'es téléporté à Las Venturas". C'est possible?
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 17:22:54
Oki  :D Par contre, les véhicules je les met avec les CreateObject?
Titre: Re : Re : Deux questions :s
Posté par: MK le 03 Juillet 2010, 17:36:47
C'est vraiment se compliquer la vie pour un débutant , autant le faire directement dans la commande , ça va plus vite .
Et si à chaque téléportation il faut créer une fonction ...
non lol ^^
une fonction sert pour toute téléportation puisque la fonction sert à téléporter le joueur
Titre: Re : Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 18:06:45
Non non le post d'avant je parlais à MK , franchement la on veut bien t'aider mais à chaque ligne tu veux de l'aide ..
tu dois définire une couleur avec un #define tout en haut exemple " #define blanc CODEHEXADECIMAL .
Pour avoir le code des couleur prend ça :http://cristab.com/couleurpwn/ ( vive cristab  :lmao)
Ensuite tu utilise la fonction SendClientMessage
En clair sa va donner :
SendClientMessage(playerid,tacouleur,"Tu t'es téléporté à LV !");

EDIT : oui les voiture vont avec les objet  ;)

Merci ;) par contre pour le script "Tu t'es téléporté à LV!", ou mettre le sendclientmessage?
Titre: Re : Deux questions :s
Posté par: MK le 03 Juillet 2010, 18:08:19
ben dans ta commande de téléportation.  :P
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 18:31:36
J'aimerais que quand une personne se connecte sur le serveur, elle aie un eagle et un protège par balles, je fais comment déjà? Je sais que c'est avec sa pos de spawn apparement mais c'est tout :s
Titre: Re : Deux questions :s
Posté par: MK le 03 Juillet 2010, 18:32:33
AddPlayerClass?
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 18:38:29
Je tente l'intentable :D

Double post
Je suppose que c'est à la place des 0,0,0,0,0?
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 18:45:29
Oui :D désolé  :'(

Aufaite, tu devrais trop faire instituteur :o

Double post
Bon, pour le GM j'aurais besoin d'une commande qui quand on fait /armes, on ait un eagle, MP5, et grenade. J'ai commencé mais besoin de quelques chose. Voici ce que j'ai commencé :
if (strcmp(cmdtext,"/armes",true, 10) == 0)
{
    SetPlayer...

Pour les armes, il faut mettre quoi? SetPlayer...?
merci ;)
Titre: Re : Deux questions :s
Posté par: chneubeul le 03 Juillet 2010, 19:09:12
Tu ma dit de te le dire x'P
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 19:17:46
Petit problème : Quand je tapes /lv je me téléportes à Las Venturas,et sa m'affiche "Tu es à Las Venturas!"  là, tout va bien mais, quand je tape /armes, sa m'affiche "Tu as à Las Venturas + Tu as renouvellé ton stock d'armes"
Je fais comment mdr?

Script :
public OnPlayerCommandText(playerid, cmdtext[])
{
    SendClientMessage (playerid, COLOR_RED, "Tu es maintenant à Las Venturas!");
if (strcmp(cmdtext,"/lv",true, 10) == 0)// Commande téléportation LV
{
SetPlayerPos(playerid,2032.0090,1342.8932,10.8203); // Do something here
return 1;
}
SendClientMessage(playerid, COLOR_RED, "Tu as renouvellé ton stock d'armes!");
if (strcmp(cmdtext,"/armes",true, 10) == 0)
{
    GivePlayerWeapon(playerid,24,35);
    return 1;
}

return 1;
}
Titre: Re : Deux questions :s
Posté par: chneubeul le 03 Juillet 2010, 19:17:59
Mdr toujours en rogne !!

public OnPlayerCommandText(playerid, cmdtext[])
{
   
if (strcmp(cmdtext,"/lv",true, 10) == 0)// Commande téléportation LV
{
SetPlayerPos(playerid,2032.0090,1342.8932,10.8203); // Do something here
                 SendClientMessage (playerid, COLOR_RED, "Tu es maintenant à Las Venturas!");
return 1;
}

if (strcmp(cmdtext,"/armes",true, 10) == 0)
{
    GivePlayerWeapon(playerid,24,35);
            SendClientMessage(playerid, COLOR_RED, "Tu as renouvellé ton stock d'armes!");
    return 1;
}

return 1;
}

Comme ceci. Il faut te dire que les parenthèses c'est comme les chapitres dans un livre si tu veux mettre une histoire dans un chapitre il faut que le mettent dedans et non à coter :)
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 19:20:55
Bah sa m'affiche 2 erreur et sa dit "Loose indentation" pourtant j'ai copié/collé ton texte :s
Titre: Re : Deux questions :s
Posté par: chneubeul le 03 Juillet 2010, 19:22:55
D'ailleurs ta verification de commande n'est pas bonne
Rajoute ceci :

new cmd[128];
puis
cmd = strtok(cmdtext, idx);

et remplace la ligne qui verifie la commande par exemple :
if (strcmp(cmdtext,"/lv",true, 10) == 0)

par
if(strcmp(cmd, "/lv", true) == 0)


Rajoute ceci en bas de ton script

strtok(const string[], &index)
{
   new length = strlen(string);
   while ((index < length) && (string[index] <= ' '))
   {
      index++;
   }

   new offset = index;
   new result[20];
   while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
   {
      result[index - offset] = string[index];
      index++;
   }
   result[index - offset] = EOS;
   return result;
}
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 19:36:24
merci à vous deux ;)

Double post
j'ai rien mis en bas du script sa marche là :p
Titre: Re : Deux questions :s
Posté par: chneubeul le 03 Juillet 2010, 19:47:20
Ok John c'est que tu l'avais déjà, Dizzy, il ne comprendez pas. Mais si il fait pas ce que j'lui ai expliquez ses commandes n'irai pas...
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 20:01:42
J'aimerais mettre des véhicules avec MTA SA RACE mais je pense que cela n'est pas possible.. je me trompe?
Titre: Re : Deux questions :s
Posté par: Eloctro le 03 Juillet 2010, 20:28:37
Avant le race je vois pas de quoi tu parle ?

Sur Mta Race tu peut placer qu'un type de véhicule .
Parcontre sur Mta DM tu peut placer tout les models que tu veux mais il y a un inconvénient je ne crois pas qu'il y est un Convertisseur pour les véhicules .
Titre: Re : Deux questions :s
Posté par: chneubeul le 03 Juillet 2010, 20:33:53
Si coco :) Convert FFS/ (http://www.convertffs.com/)

Dizzy on est la pour apprendre certe, mais la c'pas de son niveau, si j'lui explique le fonctionnement, tu rentre dans l'histoire des byts, et j'suis sur qu'il ne comprendez pas +_+
Titre: Re : Deux questions :s
Posté par: John_Montavedro le 03 Juillet 2010, 21:12:57
Je recherche un MTA permettant de mapper et mettre sur un serveur samp (mapper et mettre des véhicules), si vous connaissez le lien de téléchargement, pouvez vous me le passer? svp merci;)
Titre: Re : Deux questions :s
Posté par: chneubeul le 03 Juillet 2010, 21:39:19
Prend MTA 1.0.4, disponible sur le site officiel de MTA. Pour les véhicules utilise samp debug au pire.
Titre: Re : Re : Deux questions :s
Posté par: MK le 03 Juillet 2010, 22:03:22
Avant le race je vois pas de quoi tu parle ?

Sur Mta Race tu peut placer qu'un type de véhicule .
Parcontre sur Mta DM tu peut placer tout les models que tu veux mais il y a un inconvénient je ne crois pas qu'il y est un Convertisseur pour les véhicules .
triple fail.
sur mta race on peut rajouter plusieurs véhicules.
il suffit de modifier le .map avec un éditeur de texte et changer l'id des spawn de véhicule
mais d'un certain point tu as raison, on ne peut le modifier a partir de l'éditeur