Beiträge von M4rciii


    new newcar = GetPlayerVehicleID(playerid);
    new newcarstr[3];
    format(newcarstr,sizeof(newcarstr),"%d",newcar);
    new inistr = dini_Int("Autohaus.ini", newcarstr);


    newcar ist eben ein Integer(Ganzzahl) und kein String, was hier benötigt wird

    GetPlayerWantedLevel[playerid][pWanted]
    Es gibt die Funktion GetPlayerWantedLevel(playerid), aber was du da machst, weis ich nich. Probiers mal so:
    PlayerInfo[playerid][pWanted] = GetPlayerWantedLevel(playerid);
    dini_IntSet(fname,"Wanted",PlayerInfo[playerid][pWanted]);
    Oder so gehts auch:
    dini_IntSet(fname,"Wanted",GetPlayerWantedLevel(playerid));

    Jetzt hast du das Problem, das playerid benutzt wird, aber es nicht existiert.
    Falls du willst, das jeder das bekommen soll machs so:
    public SAPD()
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    GivePlayerMoney(i,1000);
    }
    }
    }
    Und falls es zum Beispiel verschiedene Gehälter sein sollen:
    public SAPD()
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop(i)) // wie du es eben definiert hast
    {
    GivePlayerMoney(i,1000);
    }
    if(IsAGroveMember(i)) // wie du es eben definiert hast
    {
    GivePlayerMoney(i,5000);
    }
    }
    }
    }

    Ja, die { wurde als falsch empfunden, weil keine Bedingung oder "Funktionskopf"(function header) davor steht.
    Und public SAPD(); es eben nicht ist, wegen dem ;
    Also mach einfach war er dir sagt, es ist richtig! :)

    if(strcmp(string,badname,true))
    An dieser Stelle überprüfst du, ob die Datei und der Name nicht übereinstimmen ????
    Mach daraus:
    if(!strcmp(string,PlayerName(playerid),true))

    ersetzte playerid durch i und bau PlayerToPoint ein:
    forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
    public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }

    Habs mir mal angeschaut.
    Die Zeile zu löschen würde zwar gehen, aber die Autos sind dann nur nach dem joinen des Besitzers immer da.
    Also wird das Auto dastehn, wenn der Besitzer seit dem letzen Restart online war. Aber wäre ne Lösung ;)

    Diese Warning kommt normalerweise, wenn zu dem was nach public kommt das forward fehlt. (Oder es eben falsch geschrieben wurde)
    Ober das hier ist richtig geschrieben...
    Das einzige ist vllt, dass du kein forward OnRconCommand(cmd[]); in deiner a_samp.inc hast, was aber Standard drinne ist.

    Also, du bausts so ein, wie ichs dir erkläre:


    bei den forwards:
    forward Areacheck();


    bei OnGameModeInit()
    SetTimer("AreaCheck",5000,1);


    Irgwo im Script:
    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return 1;
    return 0;
    }
    public Areacheck()
    {
    for(new i = 0; i<GetMaxPlayers(); i++)
    {
    if( IsPlayerConnected(i) && IsPlayerInArea(playerid, 1.Speichern-X , 1.Speichern-Y , 2.Speichern-X , 2.Speichern-Y ) )
    {
    new Float:phealth;
    GetPlayerHealth(playerid,phealth);
    SetPlayerHealth(playerid,health-3);
    }
    }
    }


    Hier der Syntax von IsPlayerInArea:
    IsPlayerInArea(playerid,minX,minY,maxX,maxY)
    Du musst 2mal Koordinaten speichern, einmal unten links und einmal oben rechts des Bereiches und benötigst die X und Y Werte. Wenn du die Koordinaten einfügst sollte es so aussehen:
    IsPlayerInArea(playerid, 1.Speichern-X , 1.Speichern-Y , 2.Speichern-X , 2.Speichern-Y )


    Also, hoffe es funktioniert bei dir ;)

    warning 217: loose indentation weist dich darauf hin, dass du es richtig einrücken musst.
    Schieb die Zeilen einfach auf gleiche Höhe wie die anderen.
    PS: Oben nochmals den Download geändert wegen dem SetPlayerInterior