• 10 Juillet 2025, 05:31:12


Auteur Sujet: [Topic de Jcvag44800]  (Lu 3646 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
[Topic de Jcvag44800]
« le: 26 Février 2011, 15:17:31 »
Salut tout le monde !

Voila, j'ouvre mon topic !

J'ai donc une première question

A quoi sert ces chiffres :

{1958.3783,1343.1572,15.3746},

Par exemple, j'ai tout ces chiffres :

new Float:gRandomPlayerSpawns[23][3] = {
{1958.3783,1343.1572,15.3746},
{2199.6531,1393.3678,10.8203},
{2483.5977,1222.0825,10.8203},
{2637.2712,1129.2743,11.1797},
{2000.0106,1521.1111,17.0625},
{2024.8190,1917.9425,12.3386},
{2261.9048,2035.9547,10.8203},
{2262.0986,2398.6572,10.8203},
{2244.2566,2523.7280,10.8203},
{2335.3228,2786.4478,10.8203},
{2150.0186,2734.2297,11.1763},
{2158.0811,2797.5488,10.8203},
{1969.8301,2722.8564,10.8203},
{1652.0555,2709.4072,10.8265},
{1564.0052,2756.9463,10.8203},
{1271.5452,2554.0227,10.8203},
{1441.5894,2567.9099,10.8203},
{1480.6473,2213.5718,11.0234},
{1400.5906,2225.6960,11.0234},
{1598.8419,2221.5676,11.0625},
{1318.7759,1251.3580,10.8203},
{1558.0731,1007.8292,10.8125},
//{-857.0551,1536.6832,22.5870},   Out of Town Spawns
//{817.3494,856.5039,12.7891},
//{116.9315,1110.1823,13.6094},
//{-18.8529,1176.0159,19.5634},
//{-315.0575,1774.0636,43.6406},
{1705.2347,1025.6808,10.8203}
};

Voila, je n'ai jamais trop compris à quoi ça servais

Merci de m’éclaircir dessus s'il vous plait


Hors ligne MK

  • *
  • Gangster
  • Messages: 1845
    • Voir le profil
Re : [Topic de Jcvag44800]
« Réponse #1 le: 26 Février 2011, 15:24:46 »
Les coordonnées de position  X, Y, Z

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : [Topic de Jcvag44800]
« Réponse #2 le: 26 Février 2011, 15:34:31 »
Oui merci , mais

Enfin je voulais dire, pourquoi entre accolade ? et dans un new ??


Hors ligne Foo

  • *
  • Tueur en série
  • Messages: 249
    • Voir le profil
    • Une Seconde Chance RolePlay (En Création)
Re : [Topic de Jcvag44800]
« Réponse #3 le: 26 Février 2011, 15:38:27 »
Ba logiquement, c'est les positions aléatoires ("random") ou tes joueurs vont spawn

Ne pas me MP a propos de mon GM.


Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : [Topic de Jcvag44800]
« Réponse #4 le: 26 Février 2011, 16:03:13 »
Oui mais pourquoi plusieurs pos  ???


Hors ligne Lucifer

  • *
  • Tueur en série
  • Messages: 199
    • Voir le profil
    • Midtown States Role Play
Re : [Topic de Jcvag44800]
« Réponse #5 le: 26 Février 2011, 16:15:58 »
Elles sont entre { } car ce sont des valeurs d'un tableau qui est déclarer ici :

new Float:gRandomPlayerSpawns[23][3]
Avec le nombre 23 étant le nombre de cellules du tableau.

Ce sont des positions aléatoires où va spawn ton joueur.

En espérant t'avoir aidé  ;)

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : [Topic de Jcvag44800]
« Réponse #6 le: 26 Février 2011, 16:55:17 »
Ah d'accord merci !

C'est donc , par exemple

Je clique sur spawn, je vais spawn à la pos 1
Et si je reclique sur spawm, je vais spaw à la pos 2 ??


Hors ligne Lucifer

  • *
  • Tueur en série
  • Messages: 199
    • Voir le profil
    • Midtown States Role Play
Re : [Topic de Jcvag44800]
« Réponse #7 le: 26 Février 2011, 17:00:34 »
De rien ! ;)

Je voyais pas çà comme sa moi xD.

En gros, il spawn au hasard quoi, j'avais au même endroit..sa change. Enfin je crois que c'est sa ^^

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : [Topic de Jcvag44800]
« Réponse #8 le: 26 Février 2011, 17:25:41 »
Oui, à mon avis tu as raison, je pensais un peut comme toi

Quelqu'un pour confirmer s'il vous plait ?


Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : [Topic de Jcvag44800]
« Réponse #9 le: 26 Février 2011, 19:17:35 »
Je vais expliqué avec des mots plus technique.

Ceci est un tableau, mais pas un simple tableau, un tableau multidimensionnel.
Ici, tu ne fais que déclarer le tableau, donc pas encore de notion de nombre aléatoire (qui ne sont pas réellement aléatoire).

Voici un exemple sous forme de code.


new TableauMultiDimensionnel[5][2] = {
{0, 1}, // 0
{2, 3}, // 1
{4, 5}, // 2
{6, 7}, // 3
{8, 9}  // 4
};

TableauMultiDimensionnel[0][0]; // = 0
TableauMultiDimensionnel[0][1]; // = 1

TableauMultiDimensionnel[1][0]; // = 2
TableauMultiDimensionnel[1][1]; // = 3

TableauMultiDimensionnel[2][0]; // = 4
TableauMultiDimensionnel[2][1]; // = 5

TableauMultiDimensionnel[3][0]; // = 6
TableauMultiDimensionnel[3][1]; // = 7

TableauMultiDimensionnel[4][0]; // = 8
TableauMultiDimensionnel[4][1]; // = 9

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : [Topic de Jcvag44800]
« Réponse #10 le: 01 Mars 2011, 19:36:43 »
Voila tout le monde,

J'ai voulu faire une commande de "makeadmin" en m'aidant du modèle d'une commande de LARP  :blink

La voici
    if(strcmp(cmdtext, "/makeadmin", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
        new tmp[256];
        new idx;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xC0C0C0FF, "{00FF00}USAGE: {C0C0C0}/makeadmin [playerid/Nom] [level]");
return 1;
}
para1 = ReturnUser(tmp);
new para1;
new level;


level = strval(tmp);
tmp = strtok(cmdtext, idx);
if(PlayerInfo[playerid][pAdminLevel] >= 5)
{
    if(IsPlayerConnected(para1))
    {
                   new giveplayer[MAX_PLAYER_NAME];
       new sendername[MAX_PLAYER_NAME];
       GetPlayerName(para1, giveplayer, sizeof(giveplayer));
       GetPlayerName(playerid, sendername, sizeof(sendername));
       PlayerInfo[para1][pAdminLevel] = level;
       printf("AdmCmd: %s a mis %s level %d admin.", sendername, giveplayer, level);
           new string[256];
             format(string, sizeof(string), "   Tu es maintenant level {00FF00}%d{FFFFFF} admin.", level);
       SendClientMessage(para1, 0xFFFFFFFF, string);
       format(string, sizeof(string), "   Vous avez mis {00FF00}%s{FFFFFF} level {00FF00}%d{FFFFFF} admin.", giveplayer,level);
       SendClientMessage(playerid, 0xFFFFFFFF, string);
}
}
else
{
SendClientMessage(playerid, 0xC0C0C0FF, "Vous n'êtes pas autorisé à utiliser cette commande !");
}
}
return 1;
}

J'ai n'ai aucune érreur & aucun warning,
Cependant ,
Quand je vais IG :

Quand je ne suis pas admin : Sa me dit bien que la commande n'est pas autorisé à bibi
Quand je suis admin : rien ne se passe  :'(

J'aurais penser à une érreur dans les strings ?

Merci à vous
PS : Mettez moi sur le chemin au lieu de me donner la réponse, sa m'aideras pour les autres commande  :cheers


Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [Topic de Jcvag44800]
« Réponse #11 le: 01 Mars 2011, 19:45:11 »
Salut,

Concernant ton tableau, quand tu dit au hasard, jamais au même endroit....
Au hasard oui, jamais au même endroit ... non.

Tu peut apparaitre plusieurs fois de suite au même endroit, puis apparaitre à d'autres positions... c'est ça du hasard.

En ce qui concerne le tableau, et non pas le hasard:
Chaque ligne correspond à une position. Donc, dans ton tableau, tu as 23 positions différentes où les joueurs peuvent apparaitre.

Ensuite, quand tu veut faire ton spawn aléatoire, tu vas choisir, au hasard, une de ces 23 positions. C'est là que le hasard intervient, via la fonction random(max).


Pour ta commande de makeadmin, le strtok cause problème, il commence là lecture au premier caractère et donc ne donne pas la bonne information. Tu devrais ajuster la valeur initiale de idx.
Il peut y avoir d'autres erreurs, mais celle ci empêche clairement ta commande de fonctionner.

++Sim++





Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : [Topic de Jcvag44800]
« Réponse #12 le: 01 Mars 2011, 20:12:01 »
Ok merci pour ta réponse Sim

Mais je ne comprend pas quand tu dit " Tu devrais ajuster la valeur initiale de idx. "
C'est à dire ? Faire comme ceci : new idx = 9;

Je ne sais pas vraiment ^^'

Merci .


Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Re : [Topic de Jcvag44800]
« Réponse #13 le: 01 Mars 2011, 21:43:20 »
Salut,

Ok merci pour ta réponse Sim

Mais je ne comprend pas quand tu dit " Tu devrais ajuster la valeur initiale de idx. "
C'est à dire ? Faire comme ceci : new idx = 9;

De rien.

Tout à fait, mais 9 n'est pas la bonne valeur. Sinon, tu peut toujours faire deux appel à strtok. Au moment de l'exécution ce sera un peu plus lent, mais vu la différence....

++Sim++





Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : [Topic de Jcvag44800]
« Réponse #14 le: 01 Mars 2011, 22:40:56 »
C'est bon j'ai réussi !

Merci encore Sim ;)

Et maintenant, je viens de faire une commande /mute, je prossédé comme ça :

if(strcmp(cmd, "/mute", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xC0C0C0FF, "USAGE: /mute [idjoueur]");
return 1;
}
new playa;
playa = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdminLevel] >= 1)
{
   if(IsPlayerConnected(playa))
   {
       if(playa != INVALID_PLAYER_ID)
       {
new giveplayer[MAX_PLAYERS];
new sendername[MAX_PLAYER_NAME];
   GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerInfo[playa][pMuted] == 0)
{
PlayerInfo[playa][pMuted] = 1;
printf("AdmCmd: %s a muté %s",sendername,  giveplayer);
new string[256];
format(string, sizeof(string), "AdmCmd: %s a été muté %s",giveplayer ,sendername);
ABroadCast(0xFF7575FF,string,1);
}
else
{
PlayerInfo[playa][pMuted] = 0;
printf("AdmCmd: %s démute %s",sendername,  giveplayer);
new string[256];
format(string, sizeof(string), "AdmCmd: %s a démuté %s",giveplayer ,sendername);
ABroadCast(0xFF7575FF,string,1);
}
}
}
}
else
{
SendClientMessage(playerid, 0xC0C0C0FF, "Tu n'es pas autorisé à utiliser cette commande !");
}
}
return 1;
}
public OnPlayerText(playerid, text[])
{
    new Muted[MAX_PLAYERS];
    if(Muted[playerid] == 1) return 0;
    return 1;
}

Et je peut toujours parler ...
La encore, pouvez vous me mettre sur le chemin svp ?
Merci
« Modifié: 01 Mars 2011, 23:03:41 par Jcvag44800 »