GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: SnicK - 2010. Április 05. - 16:16:59

Cím: Hiba
Írta: SnicK - 2010. Április 05. - 16:16:59

if(strcmp(cmd, \"/me\", true) == 0)
{
new   myName[MAX_PLAYER_NAME];
new message[256];
    if(IsPlayerConnected(playerid))
    {
   new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= \' \'))
   {
      idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
      result[idx - offset] = cmdtext[idx];
      idx++;
   }
   result[idx - offset] = EOS;
   if(!strlen(result))
   {
      SendClientMessage(playerid, COLOR_GRAD1, \"Használat: /me [Akció]\");
      return 1;
   }
   format(string, sizeof(string), \"* %s %s\", myName, message);
   ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
   printf(\"%s\", string);
}
return 1;
}

 
Gamestar RP Chat kódját behelyettesítettem a /me parancsba.
Az a gond hogy játék közben ennyit ír ki:
* csinál valamit.
A név sehol.
Mit rontok el?
Cím: Hiba
Írta: ZeRo - 2010. Április 05. - 16:18:44
Le kell kérned a játékos nevét( itt a myName karakterláncba ).
 

GetPlayerName( playerid, myName, sizeof myName );
Cím: Hiba
Írta: SnicK - 2010. Április 05. - 16:25:18
Most nem küldi el az üzenetet.
Cím: Hiba
Írta: Vampesz - 2010. Április 06. - 08:48:12
GetPlayerName( playerid, myName, sizeof(myName));

 
ezt nem így?:o

és ne message-t írj a formathoz hanem (result)ot ;)
Cím: Hiba
Írta: ZeRo - 2010. Április 06. - 11:18:47
Idézetet írta: Vampesz date=1270536492\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1252\" data-ipsquote-contentclass=\"forums_Topic

GetPlayerName( playerid, myName, sizeof(myName));

 
ezt nem így?:o

és ne message-t írj a formathoz hanem (result)ot ;)

 
A sizeof csak egy operátor, a zárójelezés ilyen esetekben elhagyható.
Cím: Hiba
Írta: szileni - 2010. Április 06. - 11:28:49
   if(strcmp(cmd, \"/me\", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
        if(gPlayerLogged[playerid] == 0)
        {
            SendClientMessage(playerid, COLOR_GREY, \"   Nem vagy bejelentkezve !\");
            return 1;
        }
   GetPlayerName(playerid, sendername, sizeof(sendername));
   new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= \' \'))
   {
      idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
      result[idx - offset] = cmdtext[idx];
      idx++;
   }
   result[idx - offset] = EOS;
   if(!strlen(result))
   {
      SendClientMessage(playerid, COLOR_GRAD2, \"USAGE: /me [action]\");
      return 1;
   }
   if(PlayerInfo[playerid][pMaskuse] == 1)
   {
       format(string, sizeof(string), \"* Ismeretlen %s\", result);
   }
   else
   {
      format(string, sizeof(string), \"* %s %s\", sendername, result);
   }
   ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
   printf(\"%s\", string);
}
return 1;
}

 
LARP-bol kimásoltam... Nézd meg a hibádat.
Cím: Hiba
Írta: Stray - 2010. Április 06. - 11:35:53
Talán..
 
    if(strcmp(cmd, \"/me\", true) == 0)
{
new   myName[MAX_PLAYER_NAME];
                GetPlayerName(playerid, myName, sizeof(myName));
new message[256];
    if(IsPlayerConnected(playerid))
    {
   new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= \' \'))
   {
      idx++;
   }
   new offset = idx;
   new result[64];
   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
   {
      result[idx - offset] = cmdtext[idx];
      idx++;
   }
   result[idx - offset] = EOS;
   if(!strlen(result))
   {
      SendClientMessage(playerid, COLOR_GRAD1, \"Használat: /me [Akció]\");
      return 1;
   }
   format(string, sizeof(string), \"* %s %s\", myName, message);
   ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
   printf(\"%s\", string);
}
return 1;
}
Cím: Hiba
Írta: szileni - 2010. Április 06. - 11:38:37
Másold ki amit mi beillesztettünk és jó lesz 100% :P
Cím: Hiba
Írta: Vampesz - 2010. Április 06. - 11:49:48
szileni a tied maszkkal eggyüt van :) mmint a tiedben akkor ismeretlen ha van maszkod :)



ha már kódokat adogatunk :D

 
if(strcmp(cmd, \"/me\", true) == 0)
{
if(IsPlayerConnected(playerid))
    {
       GetPlayerName(playerid, sendername, sizeof(sendername));
   new length = strlen(cmdtext);
   while ((idx < length) && (cmdtext[idx] <= \' \'))
   {
      idx++;
   }
   new offset = idx;
   new result[63];
   if(length > 63)
   {
       while ((idx < 63) && ((idx - offset) < (sizeof(result) - 1)))
      {
      result[idx - offset] = cmdtext[idx];
      idx++;
      }
             format(string, sizeof(string), \"* %s %s\", sendername, result);
      result[idx - offset] = EOS;
   }
   else
   {
      while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
      {
         result[idx - offset] = cmdtext[idx];
         idx++;
      }
      result[idx - offset] = EOS;
      format(string, sizeof(string), \"* %s %s\", sendername, result);
   }
   result[idx - offset] = EOS;
   if(!strlen(result))
   {
      SendClientMessage(playerid, COLOR_GRAD2, \"Használat: /me [action]\");
      return 1;
   }
   ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
   printf(\"%s\", string);
}
return 1;
}

 
Tessék :) 100%-osan muködik nállam :)


AM a tiédben a hiba:

a formatnál a message helyett kell result-t írni :)
Cím: Hiba
Írta: szileni - 2010. Április 06. - 18:46:28
Azt akartam írni  :D
Cím: Hiba
Írta: SnicK - 2010. Április 06. - 19:01:55
Már hamarabb megcsináltam mindegy köszi a segitséget mindenki.