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: sza23 - 2016. Augusztus 08. - 12:35:27

Cím: bemutatkozás lekérdezése
Írta: sza23 - 2016. Augusztus 08. - 12:35:27
Sziasztok, valaki tudna nekem segíteni? Egy mysql bemutatkozásról lenne szó, eddig lementi a neveket, hogy ki - kit ismer, csak nem tudom spawnoláskor lekérdezni
 
stock Baratok(playerid)
{
//new i[256];
new player[200];   
format(query, sizeof(query), \"SELECT `kit` FROM `ismeri` WHERE `ki`=\'%s\'\", pName(playerid));
mysql_query(query);
mysql_store_result();
mysql_fetch_row(player);
ShowPlayerNameTagForPlayer(playerid, player, 1);
        ShowPlayerNameTagForPlayer(player, playerid, 1);
return 1;
}

 
Eddig tudtam megcsinálni, viszont ezeket az errorokat kapom:
 
D:\\Szerver\\gamemodes\\max.pwn(3718) : error 035: argument type mismatch (argument 2)
D:\\Szerver\\gamemodes\\max.pwn(3719) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
2 Errors.
Cím: bemutatkozás lekérdezése
Írta: Kyosuke_Hiroshi - 2016. Augusztus 08. - 16:15:56
Ezt a mysql-t nem annyira vágom mint az R39 eseket deee
ShowPlayerNameTagForPlayer nél karakter ID ket kell használni ez biztos.
Cím: bemutatkozás lekérdezése
Írta: zsoolt997 - 2016. Augusztus 08. - 16:23:21
Melyik a 3718 és 3719-es sor?
Cím: bemutatkozás lekérdezése
Írta: Kyosuke_Hiroshi - 2016. Augusztus 08. - 16:37:09
        ShowPlayerNameTagForPlayer(playerid, player, 1);
        ShowPlayerNameTagForPlayer(player, playerid, 1);

 
Tuti hogy ez
new player[200];  

 emiatt
Cím: bemutatkozás lekérdezése
Írta: sza23 - 2016. Augusztus 08. - 17:50:42
3718 ShowPlayerNameTagForPlayer(playerid, player, 1);
3719 ShowPlayerNameTagForPlayer(player, playerid, 1);
Cím: bemutatkozás lekérdezése
Írta: zsoolt997 - 2016. Augusztus 08. - 18:30:16
Akkor az a hiba, amit Kyosuke írt. A \"player\" változónak van hosszúsága, így karakterláncnak minősül, de a függvény intigert vár.
Cím: bemutatkozás lekérdezése
Írta: sza23 - 2016. Augusztus 09. - 11:04:51
Szóval a leirtak alapján próbáltam csinálni, amikor feljön a 2. játékos a szervere, a szerver kifagy, bővebben nem lehet semmit chatbe irni, és csak a műszerfal megy azis szaggatva.
 
#include <foreach>
OnPlayerUpdate(playerid)
{   
       foreach(Player, i)
{
        if(playerid != i && Baratok(playerid, i))
        {
                   if(IsPlayerConnected(i))
                   {
   ShowPlayerNameTagForPlayer(playerid, i, 1);
   ShowPlayerNameTagForPlayer(i, playerid, 1);
                    }
      }
}
}
 
stock Baratok(playerid, player)
{
new lekertadat[200];
format(query, sizeof(query), \"SELECT `kit` FROM `ismeri` WHERE `ki`=\'%s\'\", pName(playerid));
mysql_query(query);
mysql_store_result();
mysql_fetch_row(lekertadat);
       player = GetPlayerID(lekertadat);
return player;
}

 
Nem tudom, hogy jó-e a MySQL adat lekérdezés, ha valaki jobban érti, legyenszives irja le
Cím: bemutatkozás lekérdezése
Írta: Kyosuke_Hiroshi - 2016. Augusztus 09. - 12:02:39
ne csodálkozz az OnPlayerUpdate iszonyat sokszor lefut. csinálj egy 1 másodperces timert és azzal jobb lesz.
Cím: bemutatkozás lekérdezése
Írta: sza23 - 2016. Augusztus 09. - 12:19:14
Gondolkodtam ezen is, közben kipróbáltam onplayerconnect alatt, de nem működött, ott ha feljött a második player a szerver teljesen kifagyott
Tehát eddig jó ami megvan irva csak az elhelyezés rossz?
Cím: bemutatkozás lekérdezése
Írta: szilikee1998 - 2016. Augusztus 10. - 12:33:09
Tessék remélem így jó lesz
 

stock Baratok(playerid)
{
        //new i[256];
        new player[200];       
        format(query, sizeof(query), \"SELECT `kit` FROM `ismeri` WHERE `ki`=\'%s\'\", pName(playerid));
        mysql_query(query);
        mysql_store_result();
        mysql_fetch_row(player);
        ShowPlayerNameTagForPlayer(playerid, GetPlayerIdFromName(player), 1);
        ShowPlayerNameTagForPlayer(GetPlayerIdFromName(player), playerid, 1);
        return 1;
}
stock GetPlayerIdFromName(playername[])
{
  for(new i = 0; i <= MAX_PLAYERS; i++)
  {
    if(IsPlayerConnected(i))
    {
       new playername2[MAX_PLAYER_NAME];
         GetPlayerName(i, playername2, sizeof(playername2));
         if(strcmp(playername2, playername, true, strlen(playername)) == 0)
         {
        return i;
         }
      }
  }
  return INVALID_PLAYER_ID;
}