Szerző Téma: bemutatkozás lekérdezése  (Megtekintve 1285 alkalommal)

Nem elérhető sza23

  • 346
    • Profil megtekintése
bemutatkozás lekérdezése
« Dátum: 2016. Augusztus 08. - 12:35:27 »
0 Show voters
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.
« Utoljára szerkesztve: 2016. Augusztus 08. - 12:53:03 írta sza23 »

bemutatkozás lekérdezése
« Válasz #1 Dátum: 2016. Augusztus 08. - 16:15:56 »
+1 Show voters
Ezt a mysql-t nem annyira vágom mint az R39 eseket deee
ShowPlayerNameTagForPlayer nél karakter ID ket kell használni ez biztos.

bemutatkozás lekérdezése
« Válasz #2 Dátum: 2016. Augusztus 08. - 16:23:21 »
+1 Show voters
Melyik a 3718 és 3719-es sor?

bemutatkozás lekérdezése
« Válasz #3 Dátum: 2016. Augusztus 08. - 16:37:09 »
+1 Show voters
        ShowPlayerNameTagForPlayer(playerid, player, 1);
        ShowPlayerNameTagForPlayer(player, playerid, 1);

 
Tuti hogy ez
new player[200];  

 emiatt

Nem elérhető sza23

  • 346
    • Profil megtekintése
bemutatkozás lekérdezése
« Válasz #4 Dátum: 2016. Augusztus 08. - 17:50:42 »
0 Show voters
3718 ShowPlayerNameTagForPlayer(playerid, player, 1);
3719 ShowPlayerNameTagForPlayer(player, playerid, 1);

bemutatkozás lekérdezése
« Válasz #5 Dátum: 2016. Augusztus 08. - 18:30:16 »
+1 Show voters
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.

Nem elérhető sza23

  • 346
    • Profil megtekintése
bemutatkozás lekérdezése
« Válasz #6 Dátum: 2016. Augusztus 09. - 11:04:51 »
0 Show voters
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

bemutatkozás lekérdezése
« Válasz #7 Dátum: 2016. Augusztus 09. - 12:02:39 »
+1 Show voters
ne csodálkozz az OnPlayerUpdate iszonyat sokszor lefut. csinálj egy 1 másodperces timert és azzal jobb lesz.

Nem elérhető sza23

  • 346
    • Profil megtekintése
bemutatkozás lekérdezése
« Válasz #8 Dátum: 2016. Augusztus 09. - 12:19:14 »
0 Show voters
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?

bemutatkozás lekérdezése
« Válasz #9 Dátum: 2016. Augusztus 10. - 12:33:09 »
+1 Show voters
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;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal