Beiträge von Akino Kiritani

    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig.");
    new pID,fID;
    new string[128],fraktid[30];
    if(sscanf(params,"ui",pID,fID)) return SendClientMessage(playerid,TURKIS,"/makeleader [ID/Teil des Namens] [Fraktion]");
    switch(fID)
    {
    case 0:{fraktid="Zivilist";}
    case 1:{fraktid="Los Santos Police Departments";}
    case 2:{fraktid="Ballas";}
    case 3:{fraktid="Medic";}
    }
    format(string,sizeof(string),"Du wurdest von %s zum Leader der Fraktion %s ernannt.",Spielername(playerid),fraktid);
    SendClientMessage(playerid,TURKIS,string);
    SetPVarInt(pID,"Fraktion",fID);
    return 1;
    }


    So sollte es gehn

    Weise den Chekpoints ne ID zu, prüfe ob der spieler in OnPlayerCheckPointEnter in dem Checkpoint ist, wenn ja erstellst du einfach den nächsten Checkpoint


    Hier mal ein veraltertest Beispiel aus einem Tutorial


    public abfahrpunkte() // ; <-- wahr fehler 1.
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(PlayerToPoint(1,i,262.9120,1153.5863,10.9575)) // Hier Fügt ihr die Coords von den Oben gesezten CP ein.
    {
    if(schulung[i] == 1)
    {
    SetPlayerCheckpoint(i,244.7255,1153.1910,11.9427, 5.0); // Hier den 2 Coord Punkt eintragen
    SendClientMessage(i, COLOR_YELLOW2, "1Checkpoint Erreicht weiter zum 2.");
    schulung[i] = 2;
    }
    }
    else if(PlayerToPoint(1,i,262.9120,1153.5863,10.9575)) // Hier Fügt ihr die Coords von den Oben gesezten 2 CP ein.
    {
    if(schulung[i] == 2) // Hier auch um 1 Erhöhen
    {
    SetPlayerCheckpoint(i,244.7255,1153.1910,11.9427, 5.0); // Hier den 3 Coord Punkt eintragen
    SendClientMessage(i, COLOR_YELLOW2, "1Checkpoint Erreicht weiter zum 2.");
    schulung[i] = 3; //hier auch um 1 Erhöhen
    }
    }

    Du kannst ja z.B. 500 Bots Connecten lassen, und die Bots die du nicht brauchst kicken -> die Bots die du brauchst ham dann eine hohe id -> keiner merkts oder man stellt die Slot anzahl so ein das es nicht auffällt

    Hast du auch oben
    new PlayerText3D:Wanted[MAX_PLAYERS];
    stehen?


    Und bei OnPlayerConnect
    for(new j=0; j<MAX_PLAYERS; j++)
    {
    Wanted[playerid] = CreatePlayer3DTextLabel(j," ",0xF6B400F6,30.0,40.0,50.0,50.0,playerid);
    }
    Das?


    Und bei OnPlayerDisconnect
    DeletePlayer3DTextLabel(playerid,Wanted[playerid]);
    stehen ?

    oben im script
    new PlayerText3D:Wanted[MAX_PLAYERS];
    bei OnPlayerConnect
    for(new j=0; j<MAX_PLAYERS; j++)
    {
    Wanted[playerid] = CreatePlayer3DTextLabel(j," ",0xF6B400F6,30.0,40.0,50.0,50.0,playerid);
    }
    deine funktion
    public WantedShow()
    {
    new j,i;
    new string[16];
    for(; j!=MAX_PLAYERS; j++)
    {
    if(IsACop(j))
    {
    i=0;
    for(; i!=MAX_PLAYERS; i++)
    {
    if(WantedLevel[i] > 0) // Standart Variable im Godfather
    {
    format(string, sizeof string, "Wantedlevel: %d",WantedLevel[i]);
    UpdatePlayer3DTextLabelText(j,Wanted2[i],0xF6B400F6,string);
    }
    }
    }
    }
    return 1;
    }


    ungetestet, das sollte auch dein Anzeige Problem beheben ;)


    //Edit
    bei OnPlayerDisconnect
    Sollte noch
    DeletePlayer3DTextLabel(playerid,Wanted[playerid]);
    stehen

    und wenn du aus
    for(new i = 0;i<MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i, "Notruf") == 1)
    {
    SetPVarInt(playerid, "Hilfe", i);
    return 1;
    }
    }
    das machst
    for(new i = 0;i<MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i, "Notruf") == 1)
    {
    SetPVarInt(playerid, "Hilfe", i);
    }
    }

    Manche Objecte buggen auch noch wenn man sie removed da sieht man dann folgendes wenn man direkt drauf guckt
    Einige Objekte haben noch ein LOS(so heitßt das glaub ich) Objekt. du musst dann beide entfernen.
    Am besten ist hat wenn du den Editor aum englischen Forum nimmst

    Du hattest die Klammern falsch gesetzt.
    Du hast


    die dialogid abgefragt
    {
    dann die response
    {
    was geschen lassen
    } klammer zu gemacht
    } wieder eine klammer zugemacht
    und dann die response hier abgefragt das gehört aber zu dialog id.
    wenn du das nicht speziell für die dialogid machst dann gilt das für alle Dialoge

    So sollte das hinhaun :)


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    Kick(playerid);
    SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen!");
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,ROT,"Das Passwort war nicht lang genug");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden, gib bitte das Passwort ein","Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }

    }
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    Kick(playerid);
    SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen!");
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,ROT,"Das Passwort war nicht lang genug");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    return 1;
    }


    Sorry für die einrückung

    Wie wohl?
    Ohne Schleife natürlich


    new IP[16];
    GetPlayerIp(playerid,IP, sizeof(IP));
    format(iplog, sizeof(iplog), "Spieler: %s betrat den Server. Mit der IP: %s",pName,IP);
    ADMChat(iplog,Admincmd);