GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: BuBuNo le 01 Septembre 2009, 20:15:07

Titre: un script qui permet de ne pas sortir du DM
Posté par: BuBuNo le 01 Septembre 2009, 20:15:07
Salut all,
Donc voila je cherche un code qui fait que quand on meur a /dm on est respawner au /dm et non pas autre part. et aussi qu'il y est une commande /quitte qui enleve toutes les armes et le respawn a l'endroit ou il etait avant de faire /dm.
Donc voila j'esper que vous pourrez m'aider
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: Ssk le 01 Septembre 2009, 20:40:58
La meilleur réponse: Un tableau global suffit =)
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: BuBuNo le 01 Septembre 2009, 20:46:41
 :blink désoler masi j'ai aps tres bien compris
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: Ssk le 01 Septembre 2009, 22:03:19
new DM[MAX_PLAYERS];


avec cette variable tu peut le faire
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: ghm94 le 02 Septembre 2009, 08:19:47
par exemple au début du script :
new dm[MAX_PLAYERS] = 0;
ensuite quand le joueur rentre dans le DM la premiere fois :
dm[playerid] = 1;
Et puis lorsque le joueur spawn tu regarde à combien est la variable 'dm', si elle est a 1 tu le remet au DM.

Et aussi dans le OnPlayerDisconnect n'oublie pas de remettre la variable à 0.

++
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: BuBuNo le 02 Septembre 2009, 12:32:15
OUH LA c'est chaud ton truc  ;D
mais je ne comprens pas ou je le place : dm[playerid] = 1;
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: cristab le 02 Septembre 2009, 12:57:26
bon on resume

on declare la variable en haut du script

DM[MAX_PLAYERS];

dans le onplayerconnect

DM[playerid] = 0;

dans ta commande pour aller au dm
ajoute

DM[playerid] = 1;

dans le onplayerspawm

rajoute ceci

if(DM[playerid] == 1)
{
    //ta position
} else
{    //ton code normale
}
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: BuBuNo le 02 Septembre 2009, 14:17:34
Alors voila j'ai mis comme sa :
En haut :
#include core
#include float

#define couleur_orange 0xFF8000FF
#define couleur_jaune 0xFFFF00FF
#define couleur_rouge 0xFF3E3EFF
#define couleur_bleu 0x0080C0FF
#define couleur_brun 0x886762FF
#define CreateObject CreateStreamObject
#define DestroyObject DestroyStreamObject

#if defined FILTERSCRIPT
DM[MAX_PLAYERS];


#else

main()
{
print("\n----------------------------------");
print(" Xtreme Stunting By Team XST ");
print("----------------------------------\n");
}

Dans on playerconnect :
public OnPlayerConnect(playerid)
{
DM[playerid] = 0;
return 1;
}

Dnas on payerspawm :
public OnPlayerSpawn(playerid)
{
if(DM[playerid] == 1)
{
203.442474, 1884.305298, 17.053812    //ta position
} else
{ if(strcmp(cmdtext, "/dm", true) == 0)
  {
  SetPlayerInterior(playerid,0);
  SetPlayerColor(playerid, 0xFFFFFF00);
GivePlayerWeapon(playerid, 31, 120);
GivePlayerWeapon(playerid, 32, 372);
GivePlayerWeapon(playerid, 23, 372);
GivePlayerWeapon(playerid, 17, 1);
    SetPlayerPos(playerid,203.442474, 1884.305298, 17.053812);
  GameTextForPlayer(playerid,"DeathMatch",500,1);
SendClientMessage(playerid, couleur_bleu,"Bienvenu(e) à DeathMatch");
  return 1;    //ton code normale
}
et voila ma commande :
if(strcmp(cmdtext, "/dm", true) == 0)
  {
  SetPlayerInterior(playerid,0);
  DM[playerid] = 1;
  SetPlayerColor(playerid, 0xFFFFFF00);
GivePlayerWeapon(playerid, 31, 120);
GivePlayerWeapon(playerid, 32, 372);
GivePlayerWeapon(playerid, 23, 372);
GivePlayerWeapon(playerid, 17, 1);
    SetPlayerPos(playerid,203.442474, 1884.305298, 17.053812);
  GameTextForPlayer(playerid,"DeathMatch",500,1);
SendClientMessage(playerid, couleur_bleu,"Bienvenu(e) à DeathMatch");
  return 1;
    }
Ensuite je compile et :wall
C:\DOCUME~1\BrunoLB\Bureau\ULTIMA~1\GAMEMO~1\xtrem.pwn(903) : error 017: undefined symbol "DM"
C:\DOCUME~1\BrunoLB\Bureau\ULTIMA~1\GAMEMO~1\xtrem.pwn(903) : warning 215: expression has no effect
C:\DOCUME~1\BrunoLB\Bureau\ULTIMA~1\GAMEMO~1\xtrem.pwn(903) : error 001: expected token: ";", but found "]"
C:\DOCUME~1\BrunoLB\Bureau\ULTIMA~1\GAMEMO~1\xtrem.pwn(903) : error 029: invalid expression, assumed zero
C:\DOCUME~1\BrunoLB\Bureau\ULTIMA~1\GAMEMO~1\xtrem.pwn(903) : fatal error 107: too many error messages on one line
et la ligne corespond a sa :
public OnPlayerConnect(playerid)
{
Ligne 903 : DM[playerid] = 0;
   return 1;
}
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: ghm94 le 02 Septembre 2009, 15:11:57
Ton OnPlayerSpawn doit ressembler à sa :
public OnPlayerSpawn(playerid)
{
   if(DM[playerid] == 1)
   {
      /* Tu téléporte le joueur dans le DM */
   }
   else
   {
      /* Tu met le joueur à l'endroit normal */
   }
   return 1;
}

Faut pas remettre la cmd dans OnPlayerSpawn.
++
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: BuBuNo le 02 Septembre 2009, 15:22:55
 :wall :wall :wall :wall :wall :wall non désoler j'ai encor la meme chose
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: ghm94 le 02 Septembre 2009, 15:37:11
montre moi ce que tu à changer.
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: BuBuNo le 02 Septembre 2009, 16:20:54
Bas !! regarde par toi meme voila mon GM : http://pastebin.com/d72ec67a2 (http://pastebin.com/d72ec67a2)
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: ghm94 le 02 Septembre 2009, 16:22:50
Ta des erreurs encore ?
Et ta même pas compléter ce que je t'ai donner...  :boulz
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: BuBuNo le 02 Septembre 2009, 16:37:16
 oups désoler mais je ne comprend en rien vos truc il y a plutot un truc du genre :

    SetPlayerKillPos(playerid,203.442474, 1884.305298, 17.053812);
 
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: ghm94 le 02 Septembre 2009, 16:41:05
Dans OnPlayerSpawn :
if(DM[playerid] == 1)
{
                SetPlayerInterior(playerid,0);
                SetPlayerColor(playerid, 0xFFFFFF00);
                GivePlayerWeapon(playerid, 31, 120);
                GivePlayerWeapon(playerid, 32, 372);
                GivePlayerWeapon(playerid, 23, 372);
                GivePlayerWeapon(playerid, 17, 1);
                SetPlayerPos(playerid,203.442474, 1884.305298, 17.053812);
}
else
{
/* ICI TU MET L'ENDROIT OU LE JOUEUR ATTERIT S'IL N'EST PAS EN DM */
}
Titre: Re : un script qui permet de ne pas sortir du DM
Posté par: S!m le 03 Septembre 2009, 01:32:48
Salut,

alors on recommence tout du début....

1. Déclaration de la variable (ou plutôt du tableau)

new DM[MAX_PLAYERS];je te conseille de placer cette variable au-dessus du #if defined FILTERSCRIPT
MAX_PLAYERS est le nombre de valeurs différentes que peut contenir la variable au même moment (1 valeur pour chaque joueur dans ce cas)

2. Callback OnPlayerConnect

DM[playerid] = 0;seul commentaire sur cette partie, indente ton code

3. Callback OnPlayerSpawn

je crois que tout à été dit....
mais néanmoins:

public OnPlayerSpawn(playerid)//lorsque le joueur apprait
{
   if(DM[playerid] == 1)//si le joueur est en combat
   {
      /* Tu téléporte le joueur dans le DM */
     //ps. tu aura donc un SetPlayerPos, SetPlayerInterior (ceux de ta commande en fait...), exactement comme ghm94 le dit
   }
   else
   {
      /* Tu met le joueur à l'endroit normal */
     //en gros c'est le code que contenait déjà ta callback qui va ici
   }
   return 1;
}

4. La commande

elle me semble correcte, mais encore une fois fais attention à ton indentation...

5. Bonne chance  ;)

++Sim++