Beiträge von Akino Kiritani

    Es wird zwar funktionieren, nur werden die Admins mit der Mitteilung zugspammt.


    Ein Spieler betritt den Server und die Schleife geht alle 500 Spieler einmal durch liest einmal die IP von jedem Spieler aus und sendet sie dan Admins -> Code sowas von sinnlos

    CreateDynamicObject ist für den Plugin Streamer von Icognito gedacht.
    CreateObject ist eine Standart SAMP funktion.


    Wenn du CreateDynamicObject z.B. in einem Filterscript verwendest und es dann unloadest dann verschwinden die Objekte, bei CreatObject wiederrum nicht ;)

    new IP[16];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerIp(i,IP, sizeof(IP));
    format(iplog, sizeof(iplog), "Spieler: %s betrat den Server. Mit der IP: %s",pName,IP);
    ADMChat(iplog,Admincmd);
    }
    Ich weiß nicht genau was du vorhast denn der Code macht unter OnPlayerConnect einfach keinen Sinn

    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SetPlayerScore(playerid,dini_INT(Spielerdatei,"Level"));
    SendClientMessage(playerid,0x00FF00FF,"Erfolgreich eingeloggt.");
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Das Passwort war falsch.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib hier dein gewünschtes Passwort ein","Register","Abbrechen");
    }
    return 1;
    }
    so sollte es richtig sein ;)

    Weil Chatbubbles von jedem spieler gesehen werden können
    in dem Fall solltest du mit CreatePlayer3DText und UpdatePlayer3DText arbeiten.


    Soll heißen du erstellst die 3DTexte nur für bestimmte Spieler,in deinem Fall Cops, sodass für andere sie nicht sichbar sind ;)


    Du kannst im Prinzip den Code solassen nur muss du den 3DText noch erstellen und attachen.
    Updaten tust du ihn dann in der Schleife, statt dem SetPlayerChatBubble

    if(GetPVarInt(playerid, "Wanteds") >= 1 && GetPVarInt(playerid, "Wanteds") < 10) SetPlayerWantedLevel(playerid, 1);
    if(GetPVarInt(playerid, "Wanteds") >= 10 && GetPVarInt(playerid, "Wanteds") < 20) SetPlayerWantedLevel(playerid, 1);
    if(GetPVarInt(playerid, "Wanteds") >= 20 && GetPVarInt(playerid, "Wanteds") < 30) SetPlayerWantedLevel(playerid, 2);
    if(GetPVarInt(playerid, "Wanteds") >= 30 && GetPVarInt(playerid, "Wanteds") < 40) SetPlayerWantedLevel(playerid, 3);
    if(GetPVarInt(playerid, "Wanteds") >= 40 && GetPVarInt(playerid, "Wanteds") < 50) SetPlayerWantedLevel(playerid, 4);
    if(GetPVarInt(playerid, "Wanteds") >= 50 && GetPVarInt(playerid, "Wanteds") < 60) SetPlayerWantedLevel(playerid, 5);
    if(GetPVarInt(playerid, "Wanteds") == 60) SetPlayerWantedLevel(playerid, 6);


    dann probier ma so ;)

    ocmd:nschild(playerid,params[])
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
    {
    ShowPlayerDialog(playerid,DIALOG_NSCHILD,DIALOG_STYLE_INPUT,".:Nummernschild:.","Gebe ein was auf dem Nummernschild stehen soll","anfertigen","Abbrechen");
    }
    return 1;
    }


    if(dialogid==DIALOG_NSCHILD)
    {
    if(response==0)
    {
    return 1;
    }
    if(response==1)
    {
    Nummernschild(playerid,inputtext); //hier muss der eingegebene Text hin also inputtext
    return 1;
    }
    return 1;
    }


    so sollte das funktionieren ;)

    Setzt du den Timer in etwa so?


    SetTimer("wpanzeige",1000,true);
    wenn ja muss es so aussehen
    public wpanzeige()
    {
    for(new playerid;playerid!=MAX_PLAYERS;playerid++)
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPVarInt(playerid, "Wanteds") >= 1) SetPlayerWantedLevel(playerid, 1);
    else if(GetPVarInt(playerid, "Wanteds") >= 10) SetPlayerWantedLevel(playerid, 1);
    else if(GetPVarInt(playerid, "Wanteds") >= 20) SetPlayerWantedLevel(playerid, 2);
    else if(GetPVarInt(playerid, "Wanteds") >= 30) SetPlayerWantedLevel(playerid, 3);
    else if(GetPVarInt(playerid, "Wanteds") >= 40) SetPlayerWantedLevel(playerid, 4);
    else if(GetPVarInt(playerid, "Wanteds") >= 50) SetPlayerWantedLevel(playerid, 5);
    else if(GetPVarInt(playerid, "Wanteds") == 60) SetPlayerWantedLevel(playerid, 6);
    }
    }
    return 1;
    }

    dann halt so


    for(new i; i<MAX_PLAYERS; i++)
    {
    format(Wantedlistdatei, 64, "/Wantedlist/Wanted_Liste[%d].txt", i);
    if(!fexist(Wantedlistdatei)) dini_Create(Wantedlistdatei);
    dini_Set(Wantedlistdatei,"Name", SpielerName(pID));
    dini_SetInt(Wantedlistdatei,"WPS", GetPVarInt(pID, "Wanteds"));
    SetPVarInt(pID, "wl1", 1);
    break;
    }
    Ich weiß leider nicht genau was du willst^^

    mach die schleife mal so
    for(new i; i<MAX_PLAYERS; i++)
    {
    format(Wantedlistdatei, 64, "/Wantedlist/Wanted_Liste[%d].txt", i);
    if(!fexist(Wantedlistdatei))
    {
    dini_Create(Wantedlistdatei);
    dini_Set(Wantedlistdatei,"Name", SpielerName(pID));
    dini_SetInt(Wantedlistdatei,"WPS", GetPVarInt(pID, "Wanteds"));
    SetPVarInt(pID, "wl1", 1);
    break;
    }
    }

    @Dead es ist falsch, weil der Code nachdem der Spieler rausgeworfen wurde nicht mehr weiterlaufen würde, das wäre fatal wenn sich daunter noch wichtiger code befindet.
    Und außerdem muss am ende fast immer ein return stehen, außer in jeder abfrage kommt ein return vor, das der Code garnicht bis zum ende laufen kann/braucht

    Deadwalker doch nicht so >.>
    so
    new newcar = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(IsACopCar(newcar))
    {
    if(SpielerInfo[playerid][pTeam] != 1)
    {
    RemovePlayerFromVehicle(playerid);

    }
    }
    }
    return 1;