kwik360 Geplaatst: 1 augustus 2010 Rapport Geplaatst: 1 augustus 2010 Hey, ik heb (weer) een nieuwe vraag (misschien moet ik niet van die ingewikkelde dingen proberen ) 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. Reageren
Big Boss Geplaatst: 1 augustus 2010 Rapport Geplaatst: 1 augustus 2010 want als je het id doet en die player gaat offline dan moet het er ook nog zijn :S, Dat snap ik niet ... Reageren
kwik360 Geplaatst: 1 augustus 2010 Auteur Rapport Geplaatst: 1 augustus 2010 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 Reageren
GTAguillaume Geplaatst: 1 augustus 2010 Rapport Geplaatst: 1 augustus 2010 (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: 1 augustus 2010 door GTAguillaume Reageren
kwik360 Geplaatst: 2 augustus 2010 Auteur Rapport Geplaatst: 2 augustus 2010 (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 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 Gr. Bewerkt: 2 augustus 2010 door kwik360 Reageren
GTAguillaume Geplaatst: 2 augustus 2010 Rapport Geplaatst: 2 augustus 2010 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"); Reageren
kwik360 Geplaatst: 3 augustus 2010 Auteur Rapport Geplaatst: 3 augustus 2010 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. Reageren
Recommended Posts
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.