GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ShaDowxx™ le 24 Décembre 2010, 14:30:35

Titre: Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 24 Décembre 2010, 14:30:35
Bonjour, voilà, je m'explique : en se moment, je fais des DM mais il n'y a pas moyen de trouver un code qui permet de choisir une un spawn au choix dans mon tableau :

Code: (pawn) [Sélectionner]

<?php

//====================Les DM====================================================
new Float:dm1[5][5] = {
{-
1288.3530,2516.2642,87.1486},
{-
1308.3904,2514.4939,87.0790},
{-
1329.6014,2525.6045,87.1134},
{-
1316.7584,2541.0601,87.7422},
{-
1305.2456,2546.1252,90.3281},



Jusque là, il y a déjà une première erreur :

Code: (pawn) [Sélectionner]

<?php

C
:\Users\Julien\Downloads\Serveur RC6\gamemodes\SF-LVTDM.pwn(73) : error 001expected token";"but found "-identifier-"

//Voici mon code à la ligne 73 :

main()
{
print("\n----------------------------------");
print(" ******************** ");
print(" ******************** ");
print("----------------------------------\n");
}
#endif


Et moi dans cette histoire je veut savoir comment je peut faire mon propre DM sur mon GameMode et si possible savoir choisir les spawns disponible sur mon tableau.

Titre: Re : Code + Erreur avec un DM.
Posté par: cristab le 24 Décembre 2010, 14:38:22
new Float:dm1[5][3] = {
{-1288.3530,2516.2642,87.1486},
{-1308.3904,2514.4939,87.0790},
{-1329.6014,2525.6045,87.1134},
{-1316.7584,2541.0601,87.7422},
{-1305.2456,2546.1252,90.3281}
};
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 24 Décembre 2010, 14:41:08
Merci du code mais je veut savoir comment tu as trouvé le : [3]
Titre: Re : Code + Erreur avec un DM.
Posté par: cristab le 24 Décembre 2010, 14:43:40
ben pour une position tu doit avoir X Y Z donc 3 et tu as 5 position donc [5][3] mais ton erreure etait surtout ton tableau qui etait pas fermer
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 24 Décembre 2010, 14:46:01
D'accord.

Mais tu connait la commande pour mettre en relation deux commandes : celle pour rentré : (/dm1) et celle pour sortir (/dmq) ?
Titre: Re : Code + Erreur avec un DM.
Posté par: cristab le 24 Décembre 2010, 14:48:49
rien de complexe ce genre de commande
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 24 Décembre 2010, 14:50:18
J'ai pas d'idée c'est pour renvoyer le joueur qui va quitté le dm a son spawn
Titre: Re : Code + Erreur avec un DM.
Posté par: cristab le 24 Décembre 2010, 14:58:55
utilise PlayerSpawn(playerid); un truc du genre
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 24 Décembre 2010, 15:05:46
Donc Dizzy t'a raison ?

Et je met le même code pour les deux commandes ?
Titre: Re : Code + Erreur avec un DM.
Posté par: cristab le 24 Décembre 2010, 15:06:36
Merci Dizzy ^^

Non juste pour le /dmquit
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 24 Décembre 2010, 15:16:35
D'accord c'est logique ^^

Sinon /dmq sera configurer pour tout les dm ?
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 24 Décembre 2010, 16:58:46
J'ai pas tout compris
Titre: Re : Code + Erreur avec un DM.
Posté par: Xartrick le 24 Décembre 2010, 18:13:52
Le système est de tourner (mettre) une valeur qui sera vrai si le joueur est dans un deathmatch et faux s'il n'est pas dans un deathmatch.
Ensuite, selon cette valeur, tu pourra activé ou non ta commande pour quitter un deathmatch.
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 25 Décembre 2010, 09:34:30
Ou là, je me suis perdu ... Bref en gros moi je veut du simple car vous m'embrouiller.

en gros :

Code: (pawn) [Sélectionner]

if (strcmp("/dm1", cmdtext, true) == 0)
{
            GivePlayerWeapon(playerid,26,5000);
    ResetPlayerWeapons(playerid);
            //La ici, il me faut le code pour mettre en relation le tableau
    return 1;
}


Code: (pawn) [Sélectionner]

if (strcmp("/dmq", cmdtext, true) == 0)
{
            SpawnPlayer(playerid);
    ResetPlayerWeapons(playerid);
            return 1;
        }



Comme ça non ?
Titre: Re : Code + Erreur avec un DM.
Posté par: Xartrick le 25 Décembre 2010, 11:58:41
new IsInDM[MAX_PLAYERS] = 0;

if(strcmp("/dm1", cmdtext, true) == 0)
{
if(IsInDM[playerid] == 1)
{
SendClientMessage(playerid, 0xFFFFFF, "Vous êtes déjà dans un DM. Veuillez utiliser la commande /dmq pour quitter le DM !");
return 1;
}

IsInDM[playerid] = 0;

ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 26, 5000);

return 1;
}

if(strcmp("/dmq", cmdtext, true) == 0)
{
if(IsInDM[playerid] == 0)
{
SendClientMessage(playerid, 0xFFFFFF, "Vous n'êtes pas dans un DM  !");
return 1;
}

IsInDM[playerid] = 1;

ResetPlayerWeapons(playerid);
SpawnPlayer(playerid);

return 1;
}

Je pense que ceci sera mieux.

Je voudrais également te parler de ta logique, regarde ta commande /dm1, ne trouve-tu pas qu'il y a un problème ?
Tu donne une arme puis tu lui enlève toutes ses armes, comment vas-t-il jouer ?
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 25 Décembre 2010, 18:08:06
Oui mais je l'ai corriger sur mon DM  :lmfao

Double post
Pardon pour le double-post.

Le code marche que quand on fais > /kill pour /dmq. Moi je veut que sa marche directement. Pouvez-vous me dire comment je peut le corriger
Titre: Re : Code + Erreur avec un DM.
Posté par: Xartrick le 25 Décembre 2010, 18:45:23
Mon code est juste, cela doit venir de toi.
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 26 Décembre 2010, 10:14:00
Non s'est toi Xartrick, je fais le code mais sa marche pas, /dmq ne fonctionne pas :

Code: (pawn) [Sélectionner]
        if(strcmp("/dm1", cmdtext, true) == 0)
{
if(IsInDM[playerid] == 1)
{
SendClientMessage(playerid, 0xFFFFFF, "Vous êtes déjà dans un DM !");
return 1;
}

IsInDM[playerid] = 0;

ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 26, 5000);

return 1;
}

if(strcmp("/dmq", cmdtext, true) == 0)
{
if(IsInDM[playerid] == 0)
{
SendClientMessage(playerid, 0xFFFFFF, "Vous n'êtes pas dans un DM !");
return 1;
}

IsInDM[playerid] = 1;

ResetPlayerWeapons(playerid);
SpawnPlayer(playerid);

Pour l'image :

J'ai bien spawné dans mon dm, mais pour le quitter il n'y a pas moyen de faire /dmq. Sa justifie que je ne suis pas dans un DM

((Sinon comment on fait pour re-name un joueur dans un DM ?))
Titre: Re : Code + Erreur avec un DM.
Posté par: cristab le 26 Décembre 2010, 12:50:15
je pense que l'erreure qu'il a faite est pour que tu comprenne le code regarde bien

if(strcmp("/dm1", cmdtext, true) == 0)
{
if(IsInDM[playerid] == 1)//Si le joueur est dans le DM il ne peu pas retaper la commande
{
SendClientMessage(playerid, 0xFFFFFF, "Vous êtes déjà dans un DM !");
return 1;
}

IsInDM[playerid] = 0;//ici est la faute volontaire car elle doit etre a 1 est non a 0

ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 26, 5000);

return 1;
}

if(strcmp("/dmq", cmdtext, true) == 0)
{
if(IsInDM[playerid] == 0)//si le joueur n'est pas dans un DM donc la on peu voir que l'erreure volontaire etait faites pour que tu comprenne
{
SendClientMessage(playerid, 0xFFFFFF, "Vous n'êtes pas dans un DM !");
return 1;
}

IsInDM[playerid] = 1;//la seconde erreure elle doit etre passer a 0 est non a 1

ResetPlayerWeapons(playerid);
SpawnPlayer(playerid);
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 26 Décembre 2010, 13:37:35
Je comprends un peu mieux le bug du 0 et 1 qui causé tout ça.

Sinon

Comment on fait pour changer de pseudo à un joueur qui rejoint un DM
Titre: Re : Code + Erreur avec un DM.
Posté par: cristab le 26 Décembre 2010, 15:39:45
une petit recherche s'impose ;)
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 26 Décembre 2010, 16:22:16
*Julien part a la recherche du code*
Titre: Re : Code + Erreur avec un DM.
Posté par: Xartrick le 26 Décembre 2010, 19:14:14
Les pièges viennent des indicateurs ;).
Voici ce que cela te donnera quand tu auras trouvé les deux pièges.

PS: J'ai ajouté des messages d'informations mais c'est le même code !
Titre: Re : Code + Erreur avec un DM.
Posté par: Karting06 le 26 Décembre 2010, 22:02:22
Salut Julien :)
Je l'ai fait.

#include <a_samp>
#include <float>
new Float:Dm1[5][3] = { // TAbleau
{-1288.3530,2516.2642,87.1486},
{-1308.3904,2514.4939,87.0790},
{-1329.6014,2525.6045,87.1134},
{-1316.7584,2541.0601,87.7422},
{-1305.2456,2546.1252,90.3281}
};

new DM[MAX_PLAYERS]; // on défini
new PlayerName[MAX_PLAYER_NAME];
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA


public OnPlayerConnect(playerid)
{
DM[playerid] = 0;
return 1;
}

public OnPlayerSpawn(playerid)
{
if (DM[playerid] == 1) // si le joueur est au dm1 on le met à la pos
{
new rand = random(sizeof(Dm1));
SetPlayerPos(playerid, Dm1[rand][0], Dm1[rand][1], Dm1[rand][2]); // ton tableau
}
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/dm1", cmdtext, true, 10) == 0)
{
   if( DM[playerid] == 1)
   {
   SendClientMessage(playerid, COLOR_RED, "Vous êtes déjà en DM1 ! ");
   return 1;
   }
   if (DM[playerid] == 0)
   {
   new rand = random(sizeof(Dm1));
DM[playerid] = 1; // on le met dans le dm1
SetPlayerPos(playerid, Dm1[rand][0], Dm1[rand][1], Dm1[rand][2]); // ton tableau
new nom[128];
new msg[128];
GetPlayerName(playerid, nom, sizeof(nom));
format(nom, sizeof(nom), "%s a rejoint le DM 1 (/dm1)", nom, playerid);
SendClientMessageToAll(COLOR_GREEN, nom);
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(msg, sizeof(msg), "[DM1]%s", PlayerName);
SetPlayerName(playerid, msg);
return 1;
}
return 1;
}
if (strcmp("/dmq", cmdtext, true, 10) == 0)
{
   if (DM[playerid] == 0)
   {
SendClientMessage(playerid, COLOR_RED, "Vous pouvez utiliser cette commande que en DM !");
return 1;
}
if (DM[playerid] == 1)
{
new nom[128];
   DM[playerid] = 0; // on le met dans le jeu normal
SpawnPlayer(playerid); // on le fait respawn
SetPlayerName(playerid, PlayerName);
GetPlayerName(playerid, nom, sizeof(nom));
format(nom, sizeof(nom),"%s n'est plus en DM", nom, playerid);
SendClientMessageToAll(COLOR_GREEN, nom);
return 1;
}
return 1;
}
return 0;
}

A+
Karting06

PS: Si c'est trop long, veuillez me le dire :)
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 27 Décembre 2010, 10:04:24
Euh ... Je veut juste le code pour changer de pseudo :)
Titre: Re : Code + Erreur avec un DM.
Posté par: Xartrick le 27 Décembre 2010, 10:07:20
Là, tu abuse, il t'a donné le code, tu as juste as extraire les lignes que tu recherche.
Sinon, à propos de ce code, n'oublie pas de vérifier si un petit malin vient avec le pseudo [DM1]Xartrick, cela t'évitera bien des soucis ;).
Titre: Re : Code + Erreur avec un DM.
Posté par: Karting06 le 27 Décembre 2010, 10:51:04
Mais j'ai un bug.
Quand y a deux joueurs en DM1 et le premier fait /dmq il prend le nom karting06 et moi quand je fais /dmq ça change plus. Quelqu'un peut m'aider?
Titre: Re : Code + Erreur avec un DM.
Posté par: Xartrick le 27 Décembre 2010, 10:53:31
Ajoute une entré playerid dans ton tableau PlayerName pour pouvoir stocker les pseudos de chaque joueur et non le pseudo d'un seul joueur.
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 27 Décembre 2010, 11:15:34
Voilà, je me suis perdu.
Titre: Re : Code + Erreur avec un DM.
Posté par: cristab le 27 Décembre 2010, 11:23:29
montre nous comment tu t'y es pris
Titre: Re : Code + Erreur avec un DM.
Posté par: Xartrick le 27 Décembre 2010, 11:25:24
Juste un petit indice, si tu as besoin d'aide, nous sommes là.

new PlayerName[playerid][MAX_PLAYER_NAME];
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 27 Décembre 2010, 12:07:30
Je m'y suis très mal pris :

Code: (pawn) [Sélectionner]

C:\Users\Julien\Downloads\serveur RC7\gamemodes\SF-LVTDM.pwn(52) : error 017: undefined symbol "playerid"
C:\Users\Julien\Downloads\serveur RC7\gamemodes\SF-LVTDM.pwn(553) : error 048: array dimensions do not match
C:\Users\Julien\Downloads\serveur RC7\gamemodes\SF-LVTDM.pwn(553) : warning 224: indeterminate array size in "sizeof" expression (symbol "")
C:\Users\Julien\Downloads\serveur RC7\gamemodes\SF-LVTDM.pwn(572) : error 048: array dimensions do not match
C:\Users\Julien\Downloads\serveur RC7\gamemodes\SF-LVTDM.pwn(774) : warning 203: symbol is never used: "IsInDM"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


3 Errors.

Titre: Re : Code + Erreur avec un DM.
Posté par: Karting06 le 27 Décembre 2010, 13:00:18
Je comprends pas ?!
il faut pas mettre [MAX_PLAYERS] au lieu de [playerid][MAX_PLAYER_NAME]
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 27 Décembre 2010, 13:04:54
Moi aussi :S, je vais essayé sans

Sa marche très bien ! j'ai juste cette erreur mais elle n'est pas trop grave :D

Kdo je vous la donne

Code: (pawn) [Sélectionner]
C:\Users\Julien\Downloads\serveur RC7\gamemodes\SF-LVTDM.pwn(774) : warning 203: symbol is never used: "IsInDM"


 :lmfao
Titre: Re : Code + Erreur avec un DM.
Posté par: Xartrick le 27 Décembre 2010, 21:44:51
Tu te base sur quoi maintenant pour savoir si un joueur est dans un deathmatch ?
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 28 Décembre 2010, 09:28:00
ça : new DM[MAX_PLAYERS];
Titre: Re : Code + Erreur avec un DM.
Posté par: Karting06 le 28 Décembre 2010, 21:29:31
Ca marche toujours pas le changement du nom :(
Quand tu es à deux ça bug :(
Titre: Re : Code + Erreur avec un DM.
Posté par: cristab le 28 Décembre 2010, 22:23:35
regarder sur mon fs de DM ^^
Titre: Re : Code + Erreur avec un DM.
Posté par: ShaDowxx™ le 29 Décembre 2010, 09:01:56
Le problème de DM est réglé. Merci de votre aide !