-
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.
-
Ezt a mysql-t nem annyira vágom mint az R39 eseket deee
ShowPlayerNameTagForPlayer nél karakter ID ket kell használni ez biztos.
-
Melyik a 3718 és 3719-es sor?
-
ShowPlayerNameTagForPlayer(playerid, player, 1);
ShowPlayerNameTagForPlayer(player, playerid, 1);
Tuti hogy ez
new player[200];
emiatt
-
3718 ShowPlayerNameTagForPlayer(playerid, player, 1);
3719 ShowPlayerNameTagForPlayer(player, playerid, 1);
-
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.
-
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
-
ne csodálkozz az OnPlayerUpdate iszonyat sokszor lefut. csinálj egy 1 másodperces timert és azzal jobb lesz.
-
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?
-
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;
}