Jump to content

Player name to ID


Recommended Posts

Geplaatst:

Hey,

ik heb (weer) een nieuwe vraag (misschien moet ik niet van die ingewikkelde dingen proberen :puh:)

maar nu de vraag:

ik heb in een variabel de naam van een player opgeslagen, want als je het id doet en die player gaat offline dan moet het er ook nog zijn :S,

maar nu wil ik dus vanuit de naam van de player het ID krijgen..

ik had al wat geprobeerd met een "for" loop, die ging tot MAX_PLAYERS, vervolgens keek hij of die player online was, als dat het geval was moest hij de namen vergelijken..

ik heb dit(bedacht):

PlayerNameToID(newname)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
	new NAME[256];
	if(IsPlayerConnected(i))
	{
		GetPlayerName(i, NAME, sizeof(NAME));
		if(newname == NAME) return i;
	}
}
return 0;
}

kan iemand mij verder helpen :S

Heel erg bedankt!!

Gr.

Geplaatst:

want als je het id doet en die player gaat offline dan moet het er ook nog zijn :S,

Dat snap ik niet ...

ik zal het dan maar even uitleggen,

er is een variabel "cager[MAX_VEHICLES][]" daarin word opgeslagen hoe de persoon heet voor een vehicle(de auto word niet gebruikt) want ik dacht, "je kan wel een player id doen, maar misschien gaat die persoon na een paar minuten weer weg, en dan moet de persoon nog wel "bestaan" ",,

maar ik wil die variabel gebruiken voor een command om de player, wiens naam in de variabel staat, geld tegeven en daar heb je het player id voor nodig.

dus samen gevat, hoe kun je van player naam naar player id (naam > id)? of is dit niet mogelijk?

hoop dat het zo beter is :S

Geplaatst: (bewerkt)

ik hheb in een variabel de naam van een player opgeslagen, want als je et id doet en die player gaat offline dan moet het er ook nog zijn :S,

Als de speler offline gaat heeft hij geen ID meer?!

PlayerNameToID(newname)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
	new NAME[256];
	if(IsPlayerConnected(i))
	{
		GetPlayerName(i, NAME, sizeof(NAME));
		if(newname == NAME) return i;
	}
}
return 0;
}

Je kunt geen array's checken op die manier, SA:MP heeft hiervoor een handige functie ingebouwd, genaamd strcmp.

PlayerNameToID(newname[])
{
for(new i=0; i<MAX_PLAYERS; i++)
{
	new NAME[MAX_PLAYER_NAME];
	if(IsPlayerConnected(i))
	{
		GetPlayerName(i, NAME, sizeof(NAME));
		if(!strcmp(newname,NAME,true)) return i;
	}
}
return 0;
}

Als je die functie gebruikt is de functiewaarde de waarde van het ID van de naam.

Bewerkt: door GTAguillaume
Geplaatst: (bewerkt)

ik hheb in een variabel de naam van een player opgeslagen, want als je et id doet en die player gaat offline dan moet het er ook nog zijn :S,

Als de speler offline gaat heeft hij geen ID meer?!

PlayerNameToID(newname)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
	new NAME[256];
	if(IsPlayerConnected(i))
	{
		GetPlayerName(i, NAME, sizeof(NAME));
		if(newname == NAME) return i;
	}
}
return 0;
}

Je kunt geen array's checken op die manier, SA:MP heeft hiervoor een handige functie ingebouwd, genaamd strcmp.

PlayerNameToID(newname[])
{
for(new i=0; i<MAX_PLAYERS; i++)
{
	new NAME[MAX_PLAYER_NAME];
	if(IsPlayerConnected(i))
	{
		GetPlayerName(i, NAME, sizeof(NAME));
		if(!strcmp(newname,NAME,true)) return i;
	}
}
return 0;
}

Als je die functie gebruikt is de functiewaarde de waarde van het ID van de naam.

hmm.. ik dacht al dat ik het vergelijken (strcmp) miste :D

ik zal het proberen en ik zet wel een edit neer als het (niet)werkt...

EDIT:

hey, het is niet gelukt, ik ga nog even kijken of ik nog iets kan veranderen,

maar misschien ziet iemand anders nog het probleem :S

EDIT2:

ik heb het al werkend, ik heb gewoon sscanf gebruikt om een player id uit een naam te halen

if(sscanf(cager[VehID], "u", OtherID)) return SendClientMessage(playerid, RED, "Wait until the player is online");

en het werkt dus ik ben er blij mee :puh:

Gr.

Bewerkt: door kwik360
Geplaatst:

Als ik het mij nog goed herinner moest het zo:

if(sscanf(cager[VehID], "u", OtherID)) return SendClientMessage(playerid, RED, "Usage /COMMAND [playerid]");
if(!IsPlayerConnected(OtherID))return SendClientMessahe(playerid, RED,"Player is not online");

Geplaatst:

Als ik het mij nog goed herinner moest het zo:

if(sscanf(cager[VehID], "u", OtherID)) return SendClientMessage(playerid, RED, "Usage /COMMAND [playerid]");
if(!IsPlayerConnected(OtherID))return SendClientMessahe(playerid, RED,"Player is not online");

hey, dit had ik al. maar alsnog bedankt voor de tijd die iedereen er in heeft gestoken!

Gr.

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...