Beiträge von Jeffry

    Strings mit Platzhaltern müssen immer formatiert werden.


    new str[32];
    format(str, sizeof(str), "Maskierter %d", random(100));
    MaskLabel[playerid] = Create3DTextLabel(str, 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);

    Versuche es mal andersherum, das wäre sowieso besser, auch wenn weitere Plätze dazu kommen, also so:
    if(dialogid == DIALOG_GARAGE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    // LSPD Hof
    if(!IsPlayerInRangeOfPoint(playerid, 6.0, 1572.7601, -1646.0165, 13.5639/* LSPD Hof */))
    {
    SetPlayerPos(playerid, 1572.7601, -1646.0165, 13.5639);
    CreateBox(playerid, "", "~w~Du ~g~bist~w~ nun am LSPD Hof.");
    }
    else SendClientMessage(playerid, COLOR_WHITE, "Du befindest dich {FF8484}bereits{FFFFFF} im LSPD Hof!");
    }
    if(listitem == 1)
    {
    // LSPD Heliplatz
    if(!IsPlayerInRangeOfPoint(playerid, 6.0, 1549.0814, -1673.4092, 44.8531/* LSPD Heliplatz */))
    {
    SetPlayerPos(playerid, 1549.0814, -1673.4092, 44.8531);
    CreateBox(playerid, "", "~w~Du ~g~bist~w~ nun am LSPD Heliplatz.");
    }
    else SendClientMessage(playerid, COLOR_WHITE, "Du befindest dich {FF8484}bereits{FFFFFF} im LSPD Heliplatz!");
    }
    if(listitem == 2)
    {
    // LSPD Präsidium
    if(!IsPlayerInRangeOfPoint(playerid, 6.0, 1560.5579, -1689.9689, 25.5188/* LSPD Interior */))
    {
    SetPlayerPos(playerid, 1560.5579, -1689.9689, 25.5188);
    CreateBox(playerid, "","~w~Du ~g~bist~w~ nun im LSPD Praesidium.");
    }
    else SendClientMessage(playerid, COLOR_WHITE, "Du befindest dich {FF8484}bereits{FFFFFF} im Präsidium!");
    }
    }
    else SendClientMessage(playerid, COLOR_WHITE, "{FF8484}Abgebrochen{FFFFFF}.");
    }

    Von selbst nicht, das musst du hinzufügen. Habe dir hier erklärt wie:

    Du musst die Skin ID (GetPlayerSkin) sowie den Name in dem undercover-Befehl in eine Spielervariable speichern, und beim zurücksetzen dem Spieler wieder geben (SetPlayerSkin / SetPlayerName).

    Versuche das mal umzusetzen.

    Kleiner Hinweis dazu noch:
    Es ist nicht zu empfehlen die Deklaration einer Variable innerhalb einer Schleife zu machen, das kann unter Umständen zu Fehlern im Programmablauf führen.
    Daher besser so:
    public beispieltimer(playerid)
    {
    new str[2];
    for(new i=1;i<5;i++)
    {
    format(str, sizeof(str), "%i", i);
    SendClientMessageToAll(COLOR_RED,str);
    }
    return 1;
    }

    und wen er aus swat rausgeht soll er wider sein Normalen namen bekommen und den skin was er hatte

    Du musst die Skin ID (GetPlayerSkin) sowie den Name in dem undercover-Befehl in eine Spielervariable speichern, und beim zurücksetzen dem Spieler wieder geben (SetPlayerSkin / SetPlayerName).




    wie lasse ich sein Namen Cangen auf Agent (randomzahl)


    new name[MAX_PLAYER_NAME], c;
    NOCHMAL_NAME:
    c++;
    if(c > 1000) return SendClientMessage(playerid, 0xFF0000FF, "Error: Nicht möglich.");
    format(name, MAX_PLAYER_NAME, "Agent_%d", random(100000));
    if(ReturnPlayerID(name) != INVALID_PLAYER_ID) goto NOCHMAL_NAME;
    SetPlayerName(playerid, name);

    giveplayerid = ReturnUser(tmp);
    zu:
    giveplayerid = ReturnUser(params);


    Dann entferne das "tmp" bei "new..." und setze vor die letzte Klammer-Zu am Ende des Befehls ein return 1 hin.

    if(!IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) || IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) || IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803)) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht am Punkt um Undercover zu gehen!");
    zu:
    if(!IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) && !IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) && !IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803)) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht am Punkt um Undercover zu gehen!");




    Wie kann ich machen wen der Spieler "/skin 0" eingibt sein Skin wider erhält?

    Du musst die Skin ID (GetPlayerSkin) in dem undercover-Befehl in eine Spielervariable speichern, und bei /skin 0 dem Spieler wieder geben.

    Hier ist eine 179 zu viel:
    IsPlayerInRangeOfPoint(playerid,4.0,322.2144,302.7917,999.1484,179)
    zu:
    IsPlayerInRangeOfPoint(playerid,4.0,322.2144,302.7917,999.1484)

    Das Problem ist die Länge der Zeile.
    Versuche es so:
    ocmd:heal(playerid)
    {
    if(IsPlayerInFrac(playerid,1) || IsPlayerInFrac(playerid,2) || IsPlayerInFrac(playerid,3))
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) || IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) || IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803))
    {
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    }
    }
    else if(IsPlayerInFrac(playerid,6) || IsPlayerInFrac(playerid,7) || IsPlayerInFrac(playerid,8) || IsPlayerInFrac(playerid,9) || IsPlayerInFrac(playerid,13) ||
    IsPlayerInFrac(playerid,14) || IsPlayerInFrac(playerid,18) || IsPlayerInFrac(playerid,23) || IsPlayerInFrac(playerid,24) || IsPlayerInFrac(playerid,4))
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,2324.4922,-1149.0463,1050.7101) || IsPlayerInRangeOfPoint(playerid,4.0,2807.6880,-1174.2935,1025.5703) ||
    IsPlayerInRangeOfPoint(playerid,4.0,318.6295,1115.3989,1083.8828) || IsPlayerInRangeOfPoint(playerid,4.0,2807.6880,-1174.2935,1025.5703) ||
    IsPlayerInRangeOfPoint(playerid,4.0,1494.4487,1304.0544,1093.2891) || IsPlayerInRangeOfPoint(playerid,4.0,140.3376,1366.1144,1083.4369) ||
    IsPlayerInRangeOfPoint(playerid,4.0,1261.3036,-785.4796,1091.9063) || IsPlayerInRangeOfPoint(playerid,4.0,-2636.7258,1402.9813,906.4609) ||
    IsPlayerInRangeOfPoint(playerid,4.0,-2636.7258,1402.9813,906.4609) || IsPlayerInRangeOfPoint(playerid,4.0,-308.4424,1538.4647,75.5625) ||
    IsPlayerInRangeOfPoint(playerid,4.0,2324.4922,-1149.0463,1050.7101) || IsPlayerInRangeOfPoint(playerid,4.0,322.2144,302.7917,999.1484,179))
    {
    SetPlayerHealth(playerid,100);
    }
    }
    return 1;
    }

    ocmd:heal(playerid)
    {
    if(IsPlayerInFrac(playerid,1) || IsPlayerInFrac(playerid,2) || IsPlayerInFrac(playerid,3))
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) || IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) || IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803))
    {
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    }
    }
    else if(IsPlayerInFrac(playerid,ANDERE_ID))
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,WOANDERS_KOORDINATEN))
    {
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    }
    }
    return 1;
    }

    Versuche es so:
    stock CreateMapIcon(markerid,Float:x,Float:y,Float:z,mapicon = MAPICON_GLOBAL){
    new valuemapicon;
    LOOP(MAX_MAPICONS,i){
    if(MapIconData[i][mapicon_id] != 0) continue; //Damit nur ein freier Index gefunden wird
    MapIconData[i][mapicon_id] = i + 1;
    MapIconData[i][mapicon_x] = x;
    MapIconData[i][mapicon_y] = y;
    MapIconData[i][mapicon_z] = z;
    MapIconData[i][mapicon_markerid] = markerid;
    MapIconData[i][mapicon_type] = mapicon;
    MapIconData[i][mapicon_timer] = SetTimerEx("UpdateMapIcon",20000,1,"i",i);
    valuemapicon = MapIconData[i][mapicon_id];
    break; //Beenden der Schleife, wenn ein freier Index gefunden wurde
    }
    return valuemapicon;
    }


    Function UpdateMapIcon(id){
    LOOP(MAX_PLAYERS,i){
    if(IsPlayerConnected(i)){
    SetPlayerMapIcon(i, id,MapIconData[id][mapicon_x], MapIconData[id][mapicon_y], MapIconData[id][mapicon_z], MapIconData[id][mapicon_markerid], 0, MapIconData[id][mapicon_type]); //Hier hattest du im Index 2x "i" anstatt "id"
    }
    }
    return 1;
    }

    ocmd:heal(playerid)
    {
    if(SpielerInfo[playerid][Gang] == GANG_MAFIA)
    {
    if(IsPlayerInRangeOfPoint(playerid,4.0,255.0789,77.4782,1003.6406) || IsPlayerInRangeOfPoint(playerid,4.0,197.8206,168.2515,1003.0234) || IsPlayerInRangeOfPoint(playerid,4.0,225.0941,121.8315,999.0803))
    {
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    }
    }
    return 1;
    }
    Die Variable in der Abfrage musst du natürlich entsprechend deinem System anpassen.

    ich bin dabei ein /lock befehl zu machen klappt soweit auch. Bisauf wenn ich nicht mehr im Radius von einem Fahrzeug bin gibt er mir eine Meldung Unknow Command

    Erstelle in deinem /pawno/ Ordner bitte eine Datei "pawn.cfg" und schreibe dort "-d3" rein (ohne Anführungszeichen).
    Dann öffne die /pawno/pawno.exe und öffne über "Öffnen" deinen Code und kompiliere ihn.


    Starte dann den Server wieder und reproduziere den Fehler. Poste die dann erscheinende Meldung nochmal, und, wenn du es siehst, die entsprechende Zeile Code dazu (bzw. ein paar Zeilen).