Hallo libe SAMP Com,
ich habe folgende Frage.
Und zwar wie kann ich in einen Dialog(DIALOG_STYLE_LIST) alle momentan aktiven Spieler anzeigen lassen(wie in dem Tab menü)?
Da ich für mein System das Tabmen nicht nutzen möchte/kann.
MFG
Ghost
Hallo libe SAMP Com,
ich habe folgende Frage.
Und zwar wie kann ich in einen Dialog(DIALOG_STYLE_LIST) alle momentan aktiven Spieler anzeigen lassen(wie in dem Tab menü)?
Da ich für mein System das Tabmen nicht nutzen möchte/kann.
MFG
Ghost
Schleife dann Namen in ein String schreiben
und dann immer alten String mit \n und Namen wieder schreiben
format(string, sizeof(string), "%s\n%s",string,namevomspieler);
Das dann als Input beim Dialog einfügen
new pName[ MAX_PLAYER_NAME ] , string[ MAX_PLAYER_NAME * 10 ]; // Größe für ca. 9 Spielernamen
for ( new player; player < MAX_PLAYERS; player++ ) {
if ( !IsPlayerConnected ( playerid ) )
continue;
GetPlayerName ( player , pName , MAX_PLAYER_NAME );
format ( string , sizeof string , "%s\n%s" , string , pName );
}
ShowPlayerDialog ( playerid , 1 , DIALOG_STYLE_LIST , "Alle online Spieler" , string );
bitte noch das
format ( string , sizeof string , "%s\n%s" , string , pName );
ersetzen mit
if(player == 0)
{
format(string, sizeof(string), "%s",pName);
}
else
{
format ( string , sizeof string , "%s\n%s" , string , pName );
}
Somit umgehst du das erste \n
und wenn ich dann einen Auswähle was muss ich da machen das ich den Typen übernehme?
benutz doch einfach die tabliste
OnPlayerClickPlayer
da ist dann clickedplayerid der angeklickte spieler.
ist viel einfacher
Lesen >.>
ZitatDa ich für mein System das Tabmen nicht nutzen möchte/kann.
ja leider kann ich das nicht nutzen da der Typ als 2tes ausgewählt werden muss.
1.Wie kann ich die
new pName[ MAX_PLAYER_NAME ] , string[ MAX_PLAYER_NAME * 10 ]; // Größe für ca. 9 Spielernamen
so einstellen das sie sich automatisch an die momentan connecteten User anpasst.
2. Wie kann das script dann erkennen welchen Typen ich gewählt habe?
MFG
Ghost
Hi,
2. Wie kann das script dann erkennen welchen Typen ich gewählt habe?
Du kannst eine neue Variable erstellen und diese bei OnDialogResponse auf "listitem" setzen.
Dann hat die Variable den Wert der ID des Spielers, auf den du geklickt hast.
Damit kannst du dann anschließend weiterarbeiten.
Gruß,
tonyalva
ZitatDann hat die Variable den Wert der ID des Spielers, auf den du geklickt hast.
Spieler 1, 2 und 3 verbinden. 2 Disconnected. Klickt man dann auf den dritten Spieler, würde der deiner Meinung nach die ID 2 bekommen
// Ganz oben
new PlayerDialogSelectBox[MAX_PLAYERS][MAX_PLAYRTS];
// Dort, wo der Dialog angezeigt werden soll
new counter = 0;
new pName[ MAX_PLAYER_NAME ], string[MAX_PLAYERS ^ 2];
format(string, MAX_PLAYERS ^ 2, "");
for ( new player; player < MAX_PLAYERS; player++ )
{
if ( !IsPlayerConnected ( player ) ) continue;
PlayerDialogSelectBox[playerid][counter] = player;
GetPlayerName ( player , pName , MAX_PLAYER_NAME );
format ( string , sizeof string , "%s\n%s" , string , pName );
}
ShowPlayerDialog ( playerid , 1 , DIALOG_STYLE_LIST , "Alle online Spieler" , string );
// OnDialogResponse
if(dialogid == 1)
{
if(!response) return true;
new victim = PlayerDialogSelectBox[playerid][listitem];
// in Victim ist nun die ID des angeklickten
}
Alles anzeigen
Musst ihn nur noch anpassen und du hast nichts gelernt davon
Tion