Name herausfinden

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Servus allen zusammen,


    ich möchte gerne wissen wie ich hier bei dem Code, von
    pID_ip den Namen herausfinden kann ?



    //Maximale IP-Adressen
    new pID_ip[32+1], string[258];
    GetPlayerIp(playerid, pID_ip, 32);
    new num_players_on_ip = GetNumberOfPlayersOnThisIP(pID_ip);
    if(num_players_on_ip > 1)
    {
    format(string, sizeof(string), "Multiaccount: {ffff00} Spieler %s (ID: %d) und Spieler ID: %s verwenden die gleiche IP - Adresse.", SpielerName(playerid), playerid, SpielerName(//Hier kommt dan was rein ?));
    for(new admin = 0; admin < MAX_PLAYERS; admin++)
    {
    if(IsPlayerConnected(admin))
    {
    if(isPlayerAnAdmin(admin, 5))
    {
    SendClientMessage(admin, Leuchtrot, string);
    return 1;
    }
    }
    return 1;
    }
    }
    return 1;

  • Teste mal das hier könnte evtl klappen hab es aber nicht getestet
    stock GetNameFormIP(playerid,_IP[])
    {
    new IPName[MAX_PLAYER_NAME],IPUser[32];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerIp(i, IPUser, 32);
    if(!strcmp(_IP,IPUser,true))
    {
    if(playerid!=i)
    {
    GetPlayerName(i,IPName,MAX_PLAYER_NAME);
    }
    }
    }
    return IPName;
    }
    anwendung:
    GetNameFormIP(playerid,IP DES SPIELERS);

    All in all it's just another brick in the wall


  • Ich habe es jetz so probiert:



    ocmd:name(playerid, params[])
    {
    new pID_ip[32+1], string[258];
    GetPlayerIp(playerid, pID_ip, 32);
    format(string, sizeof(string), "Mein Name ist: %s ", GetNameFromIP(playerid, pID_ip));
    SendClientMessage(playerid, Gelb, string);
    return 1;
    }


    und deinem stock, jedoch gibt er mir nur aus

    SQL
    Dein Name ist:
  • Ich hab ihn dir nochmal umgeschrieben
    stock GetNameFormIP(playerid,_IP[])
    {
    new IPName[MAX_PLAYER_NAME],IPUser[32];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerIp(i, IPUser, 32);
    if(!strcmp(_IP,IPUser,true))
    {
    if(playerid!=i)
    {
    GetPlayerName(i,IPName,MAX_PLAYER_NAME);
    return IPName;
    }
    }
    }
    GetPlayerName(playerid,IPName,MAX_PLAYER_NAME);
    return IPName;
    }
    das meinte ich gerade
    if(playerid!=i)

    All in all it's just another brick in the wall

  • Srry aber ich versteh das nicht ganz. Könntest du mir den jetz genau sagen wie ich den Namen herausfinde bei meinem Command:

    ocmd:name(playerid, params[])
    {
    new pID_ip[32+1], string[258];
    GetPlayerIp(playerid, pID_ip, 32);
    format(string, sizeof(string), "Mein Name ist: %s ", GetNameFromIP(playerid, pID_ip));
    SendClientMessage(playerid, Gelb, string);
    return 1;
    }

  • Ich habe es jetz so:



    ocmd:name(playerid, params[])
    {
    new pID_ip[32+1], string[258];
    GetPlayerIp(playerid, pID_ip, 32);
    format(string, sizeof(string), "Mein Name ist: %s ", GetNameFromIP(playerid, pID_ip));
    SendClientMessage(playerid, Gelb, string);
    return 1;
    }


    mit diesem stock:



    stock GetNameFormIP(playerid,_IP[])
    {
    new IPName[MAX_PLAYER_NAME],IPUser[32];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerIp(i, IPUser, 32);
    if(!strcmp(_IP,IPUser,true))
    {
    if(playerid!=i)
    {
    GetPlayerName(i,IPName,MAX_PLAYER_NAME);
    return IPName;
    }
    }
    }
    GetPlayerName(playerid,IPName,MAX_PLAYER_NAME);
    return IPName;
    }





    und es geht nicht, er gibt mir immer noch nur

    SQL
    Dein Name ist:
  • So hab es mal selber durchgedacht und durchgetestet
    Wenn es dein name ist gibt er deinen Namen wieder
    ist er es nicht gibt er den namen des anderen Spielers her


    //Global
    new UserIP[MAX_PLAYERS][32],IPName[MAX_PLAYERS][MAX_PLAYER_NAME];
    //OnPlayerConnect
    new pID_ip[32],UserName[MAX_PLAYER_NAME];
    GetPlayerIp(playerid, pID_ip, 32);
    GetPlayerName(playerid, UserName, MAX_PLAYER_NAME);
    format(UserIP[playerid],32,"%s",pID_ip);
    format(IPName[playerid],MAX_PLAYER_NAME,"%s",UserName);
    //Funktion
    stock GetNameFormIP(playerid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(!strcmp(UserIP[playerid],UserIP[i]))return IPName[i];
    }
    return IPName[playerid];
    }
    Ich hab das für den test so gemacht:
    printf("IP Testname: %s",GetNameFormIP(playerid));
    herraus kam das

    Zitat

    [14:10:32] IP Testname: Train

    All in all it's just another brick in the wall

  • Vielen Dank für die Hilfe,


    jedoch wird bei meiner Abfrage die IP schon abgefragt nur der Name wird nicht herausgegeben:



    //Maximale IP-Adressen
    new pID_ip[32+1], string[258];
    GetPlayerIp(playerid, pID_ip, 32);
    new num_players_on_ip = GetNumberOfPlayersOnThisIP(pID_ip);
    if(num_players_on_ip > 1)
    {
    format(string, sizeof(string), "[Multiaccount]: {ffff00} Spieler %s (ID: %d) und Spieler %s (ID: %d) verwenden die gleiche IP - Adresse.", SpielerName(playerid), playerid);
    for(new admin = 0; admin < MAX_PLAYERS; admin++)
    {
    if(IsPlayerConnected(admin))
    {
    if(isPlayerAnAdmin(admin, 5))
    {
    SendClientMessage(admin, Leuchtrot, string);
    return 1;
    }
    }
    return 1;
    }
    }

  • format(string, sizeof(string), "[Multiaccount]: {ffff00} Spieler %s (ID: %d) und Spieler %s verwenden die gleiche IP - Adresse.", SpielerName(playerid), playerid, GetNameFormIP(playerid));


    Ich hab keine lust noch die ID zu holen^^
    Aber so würde/müsste er dir den 2. Namen angeben den er findet

    All in all it's just another brick in the wall