• 03 Mai 2024, 21:12:55


Auteur Sujet: Deux problèmes assez important  (Lu 1841 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Deux problèmes assez important
« le: 22 Décembre 2012, 16:30:00 »
Bonjour voilà cela faisait longtemps que je n'avais pas poster ici, et donc là j'ai deux gros problème.
Le 1er : Dini fout des "ÿ" à la 1ère ligne de chaque fichier qu'il crée/modifie et donc c'est assez entravant pour les statistiques, j'ai cherché toute trace de "ÿ" dans mon gm et dans dini.inc, nada, niet.
J'ai aussi ré-installer dini, toujours le même problème

Le deuxième problème :
J'ai crée une commande /report. Elle fonctionne parfaitement mais j'ai le message de commande éronée classique, j'ai cherché partout, aucune trâce de return 0; .

if(strcmp(cmd,"/report",true)==0)
{
tmp=strtok(cmdtext, idx);
new reason[128];
reason=strrest(cmdtext, idx);
if(strlen(tmp)==0||strlen(reason)==0) return SendClientMessage(playerid, ROUGE, "Usage : /report <ID> <RAISON>");
if(!IsPlayerConnected(strval(tmp))) return SendClientMessage(playerid, ROUGE, "Erreur : Le joueur n'est pas connecté");
new msg[128], reportmsg[128], jailmsg[128], name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
GetPlayerName(strval(tmp), name2, sizeof(name2));
format(msg, 128, "Vous avez bien reporté %s(%d) pour %s", name2, strval(tmp), reason);
SendClientMessage(playerid, VERT, msg);
if(strcmp(reason, "dm", true)!=0) format(reportmsg, 128, "[REPORT] %s(%d) à reporté %s(%d) pour : %s", name, playerid, name2, strval(tmp), reason);
if(strcmp(reason, "dm", true)==0) format(reportmsg, 128, "[REPORT] %s(%d) à reporté %s(%d) pour : DeathMatching", name, playerid, name2, strval(tmp));
{
    if(psInfo[playerid][strval(tmp)][CANREPORT]==1)
    {
        if(pJail[strval(tmp)]==1) {
        KillTimer(pJTimer[strval(tmp)]);
        pJailTime[strval(tmp)]=pJailTime[strval(tmp)]+psInfo[playerid][strval(tmp)][REPORTSECOND];
        format(jailmsg, 128, "%d secondes on été ajoutée a ta peine actuelle !", pJailTime[strval(tmp)]);
        pJTimer[strval(tmp)]=SetTimerEx("JAILTIMER", 1000, true, "i", strval(tmp)); }

        else {
        format(jailmsg, 128, "%s(%d) a été emprisonné pour DeathMatch", name2, strval(tmp));
pJailTime[strval(tmp)]=psInfo[playerid][strval(tmp)][REPORTSECOND];
pJail[strval(tmp)]=1;
pJTimer[strval(tmp)]=SetTimerEx("JAILTIMER", 1000, true, "i", strval(tmp));
new cellule = randomEx(1, 4);
    SetPlayerInterior(strval(tmp), 10);
    if(cellule==1) SetPlayerPos(strval(tmp), 227.6383, 109.0363, 999.0156);
    if(cellule==2)SetPlayerPos(strval(tmp), 223.3031, 108.6042, 999.0156);
    if(cellule==3) SetPlayerPos(strval(tmp), 219.8017, 108.6047, 999.0156);
    if(cellule==4) SetPlayerPos(strval(tmp), 215.4143, 108.4035, 999.0156); }
    SendClientMessageToAll(VERT, jailmsg);
    }
}
for(new i; i <= MAX_PLAYERS; i++) if(pAdminLevel[i]>0) SendClientMessage(i, VERT, reportmsg);
return 1;
}
Cela me fait aussi ça sur une commande ou il ya aussi une boucle pour vérifier si le joueur est administrateur...
if(strcmp(cmd,"/adchat",true)==0)
{
        if(pAdminLevel[playerid]<1) return SendClientMessage(playerid, ROUGE, "Erreur : Cette commande n'existe pas.");
    tmp=strrest(cmdtext, idx);
    if(strlen(tmp)==0) return SendClientMessage(playerid, ROUGE, "Usage : /adchat <MESSAGE>");
    new msg[128], name[MAX_PLAYER_NAME+1];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(msg, 128, "[ADMIN CHAT] %s(%d) : %s", name, playerid, tmp);
    for(new i; i <= MAX_PLAYERS; i++)
    {
        if(pAdminLevel[i]>0) SendClientMessage(i, BLEU, msg);
    }
    return 1;
}

Autre problème :

Je veux essayer d'utiliser le GetPlayerColor pour faire une commande qui permet de parler à la place d'un joueur, sauf que il y a un truc dans le format qui foire...
format(msg, 128,"{%06x}%s{ffffff}: %s", GetPlayerColor(strval(tmp)), name, text);Resultat en local :

En haut c'est moi qui parle, en bas c'est le SendClientMessage

Quelqu'un a une solution ?
« Modifié: 22 Décembre 2012, 19:37:31 par KonVict92x »

[/url]

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #1 le: 22 Décembre 2012, 19:54:53 »
Pour le deuxième problème tu as juste à faire ça
Code: (pawn) [Sélectionner]
format(msg, 128,"{%d}%s{ffffff}: %s", GetPlayerColor(strval(tmp)), name, text);



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Malak

  • *
  • Tueur
  • Messages: 68
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #2 le: 22 Décembre 2012, 20:12:16 »
Pour le /report je te conseil de bien indenté ton script et d'utiliser ReturnUser pour l'id du joueur que tu peut stocker dans une variable tel que giveplayerid ensuite tu doit avoir un deuxième strtok pour le texte.

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Re : Deux problèmes assez important
« Réponse #3 le: 23 Décembre 2012, 02:07:02 »
Pour le deuxième problème tu as juste à faire ça
Code: (pawn) [Sélectionner]
format(msg, 128,"{%d}%s{ffffff}: %s", GetPlayerColor(strval(tmp)), name, text);
Toujours le même problème...

[/url]

Hors ligne Malak

  • *
  • Tueur
  • Messages: 68
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #4 le: 23 Décembre 2012, 09:51:54 »
Je pense que tu est obliger d'utiliser le format HEX et non pas une décimale puisque que dans un code couleur tu à bien des chiffres mais aussi des lettres et je pense que tu ne peut pas utiliser strval pour formater ton ton code couleur en décimale et ensuite utiliser X essaye dans un premier temps de ne pas utiliser strval.

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #5 le: 23 Décembre 2012, 09:53:28 »
ah excuse moi, j'avais carrément compris autre chose, je suis désolé.

Utilise la fonction SendPlayerMessageToAll elle fait exactement ce que tu veux.


Code: (pawn) [Sélectionner]
SendPlayerMessageToAll(playerid, text);



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Re : Deux problèmes assez important
« Réponse #6 le: 28 Décembre 2012, 16:05:04 »
ah excuse moi, j'avais carrément compris autre chose, je suis désolé.

Utilise la fonction SendPlayerMessageToAll elle fait exactement ce que tu veux.


Code: (pawn) [Sélectionner]
SendPlayerMessageToAll(playerid, text);
Merci, ça marche parfaitement  :)

Me reste toujours un autre problème. J'ai le message "Uknown Command" si je tape une certaine commande alors que j'ai glissé un return 1; a la fin de la commande et que j'ai fait un message d'erreur personnalisé à la fin de ma callback OnPlayerCommandText...

Le pastebin :
http://pastebin.com/M79grHwa

[/url]

Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3550
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #7 le: 28 Décembre 2012, 17:16:50 »
à la fin de ta callback OnPlayerCommandText() tu es return 1 ou 0 ?


Adju ♥
(-_-)



Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Re : Deux problèmes assez important
« Réponse #8 le: 28 Décembre 2012, 17:48:23 »
à la fin de ta callback OnPlayerCommandText() tu es return 1 ou 0 ?
Return 1, je suis pas un débutant hein...
Et puis, si j'ai mit un return 1; dans ma commande, c'est pas sensé aller lire le code plus bas hein donc return 0 ou pas, ça ne change rien là...

[/url]

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #9 le: 28 Décembre 2012, 19:34:52 »
Tu fais appel à une fonction externe qui ne renvoi rien, peut-être ?
Tentes de déplacer ton retour de valeur de ligne en ligne en remontant. Comme ça, tu pourrais voir d'où ça vient. À part ça, je vois pas trop d'où ça peut venir.

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #10 le: 28 Décembre 2012, 21:20:53 »
Nope, aucune fonction externe utilisée.
J'ai mit mon return de plus en plus haut comme tu me le disais, mais j'ai eu un autre problème en faisant ça. J'ai un "Warning unreachable code" si je met le return sur certaine lignes...

http://pastebin.com/d0cgXqaF

[/url]

Hors ligne Alexandre_Leborgn

  • *
  • Criminel
  • Messages: 35
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #11 le: 05 Janvier 2013, 00:02:03 »
tu peux créer un message d'erreur personnalisé comme sa :

Code: (pawn) [Sélectionner]
(A LA FIN DE TA DERNIERE COMMANDE :
return 1;
}
  else
  {
      return SendClientMessage(playerid,-1,"{C60000}[Erreur]{D0D0D0} Cette commande n'existe pas. Tapez /aide pour voir la liste des commandes.");
  }
}

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #12 le: 05 Janvier 2013, 01:38:58 »
tu peux créer un message d'erreur personnalisé comme sa :

Code: (pawn) [Sélectionner]
(A LA FIN DE TA DERNIERE COMMANDE :
return 1;
}
  else
  {
      return SendClientMessage(playerid,-1,"{C60000}[Erreur]{D0D0D0} Cette commande n'existe pas. Tapez /aide pour voir la liste des commandes.");
  }
}
Tu n'as pas l'air d'avoir tout lu. Pour faire simple, j'ai déjà fait un message d'erreur personnalisé, j'ai remplace le return 0 par un return SendClientMessage (Qui au passage, retourne 1 et donc, pas le message Uknown Command) et malgré ça a la fin de ma commande, je recoit un "Server Uknown Command" sans même avoir mit de return 0 dans la commande. (Cela me le fait aussi sur une autre commande utilisant elle aussi, la boucle for)

[/url]

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Deux problèmes assez important
« Réponse #13 le: 05 Janvier 2013, 02:26:28 »
Essaye de ne pas mettre ton for a la fin de ta commande. J'ai déjà eu ce probleme et sa me la corriger bizarrement.
Toujours le même problème.

[/url]