Beiträge von Addickted


    if
    {
    // Anweisung
    }


    Die Dinger nennen sich nicht ohne Grund Anweisungsblöcke. Die Klammern dieser müssen in einer Linie sein, ansonsten:


    I:\spiele\gta sa\only gamemode\gamemodes\newalr.pwn(720) : warning 217: loose indentation

    Was schreibst du eigentlich für einen Bullshit? Er fragte lediglich ob das möglich ist und ja klar ist es mit einem Speichersystem möglich. Frage beantwortet, wenn nicht dann würde ich sagen stellst du deine Frage spezifischer.

    Darfst ja auch nicht den Namen ( JobTimer ) doppelt vergeben.



    new tJobTimer[MAX_PLAYERS];
    tJobTimer[playerid] = SetTimerEx("JobTimer", 900000, true, "i", playerid);
    usw.


    Völlig verplant das der Timer auch so hieß. Aber danke fürs Augen öffnen, funktioniert nun wieder :D

    Dann mach vor die erste Abfrage


    Player[playerid][Fraktion] = dini_Int(deinevariable,"Fraktion");


    und bei der zweiten Abfrage


    Player[playerid][Wanteds] = dini_Int(deinevariable,"Wanteds");


    Damit würde er an der Stelle die Werte auslesen und dann sollte das ganze gehen. Vergiss aber nicht noch auf die Spielerdatei zuzugreifen

    Ich habe folgende Errors beim Compilieren


    C:\DOKUME~1\ADDICK~1\EIGENE~1\Dropbox\HELLSK~1\HELLSK~1\GAMEMO~1\HELLSK~1.PWN(1241) : error 076: syntax error in the expression, or invalid function call
    C:\DOKUME~1\ADDICK~1\EIGENE~1\Dropbox\HELLSK~1\HELLSK~1\GAMEMO~1\HELLSK~1.PWN(1255) : error 028: invalid subscript (not an array or too many subscripts): "JobTimer"
    C:\DOKUME~1\ADDICK~1\EIGENE~1\Dropbox\HELLSK~1\HELLSK~1\GAMEMO~1\HELLSK~1.PWN(1255) : warning 215: expression has no effect
    C:\DOKUME~1\ADDICK~1\EIGENE~1\Dropbox\HELLSK~1\HELLSK~1\GAMEMO~1\HELLSK~1.PWN(1255) : error 001: expected token: ";", but found "]"
    C:\DOKUME~1\ADDICK~1\EIGENE~1\Dropbox\HELLSK~1\HELLSK~1\GAMEMO~1\HELLSK~1.PWN(1255) : error 029: invalid expression, assumed zero
    C:\DOKUME~1\ADDICK~1\EIGENE~1\Dropbox\HELLSK~1\HELLSK~1\GAMEMO~1\HELLSK~1.PWN(1255) : fatal error 107: too many error messages on one line


    Dies betrifft folgende Zeile:
    JobTimer[playerid] = SetTimerEx("JobTimer", 900000, true, "i", playerid);


    Definiert ist dieser Global via
    new JobTimer[MAX_PLAYERS];


    Der Public dazu ist folgender:
    public JobTimer(playerid)
    {
    new save[64]; // Stock Zuweisung
    format(save,sizeof(save),"/Spieler/%s.ini",GetName(playerid));
    sInfo[playerid][job] = dini_Int(save,"job");
    if(sInfo[playerid][job] == 1)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast 370$ Lohn erhalten");
    GivePlayerMoney(playerid, 370);
    GameTextForPlayer(playerid,"~y~-~g~370$",6000,1);
    }
    if(sInfo[playerid][job] == 2)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast 340$ Lohn erhalten");
    GivePlayerMoney(playerid, 340);
    GameTextForPlayer(playerid,"~y~-~g~340$",6000,1);
    }
    if(sInfo[playerid][job] == 3)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast 200$ Lohn erhalten");
    GivePlayerMoney(playerid, 200);
    GameTextForPlayer(playerid,"~y~-~g~200$",6000,1);
    }
    if(sInfo[playerid][job] == 4)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast 180$ Lohn erhalten");
    GivePlayerMoney(playerid, 180);
    GameTextForPlayer(playerid,"~y~-~g~180$",6000,1);
    }
    }


    Bei dem Script handelt es sich um ein Selfmade.

    Warum sollte ich? Entspricht doch gar nicht meinen Vorstellungen.


    //E: Also ich habe mir einen Befehl erstellt um das VehicleModel abzufragen, die IDs stimmen mit dem aus dem Script überein. Der Spieler wird NICHT aus dem Zug geworfen. Jemand eine Idee? Bräuchte wirklich Hilfe, komme nicht auf die Lösung? :P

    Also ich sehe Commands die nicht da sind (ocmd_auf), falsche Einrückungen, Klammerfehler und nicht definierte Variabeln ;)

    Wie mein Vorgänger schon sagte mit der zweiten Abfrage gehts ab einfachsten. Willst du es Spezifischer schreiben, dann wähle die Funktion GetPlayerVehicleSeat


    Beispiel, du willst das nur Fahrer den Befehl ausführen können, dann würde das so z.B. gehen:


    new vehseat;


    vehseat = GetPlayerVehicleSeat(playerid);


    if(vehseat == 0)
    {


    }


    Das könntest du dann mit einfließen lassen. Hier die Funktion im Wiki: http://wiki.sa-mp.com/wiki/GetPlayerVehicleSeat

    Dann würde er ihn ja sofort aus dem Fahrzeug werfen, sofern er kein Ticket hat. Aber ich habe extra den Timer, damit man noch z.B. im Bus sich ein Ticket kaufen kann.
    Das muss an der ModelID der BrownStreak liegen, weil beim Bus klappt es astrein so wie es grad ist :)


    Ich weiss, war auch nur ein Boolean zum testen. Wird jetzt eh über Dini gespeichert :D Trotzdem danke.


    //E: Ich habe eine große Frage und zwar wird man nun nicht mehr aus dem Zug geworfen, wenn man kein Ticket hat. Beim Bus klappt das jedoch. Für die Brownstreak, habe ich die Modelid 538 verwendet.


    OnPlayerEnterVEhicle:
    if(GetVehicleModel(vehicleid) == 431 || GetVehicleModel(vehicleid) == 538)
    {
    sInfo[playerid][gotticket] = dini_Int(save,"gotticket");
    if(sInfo[playerid][gotticket] == 0)
    {
    SetTimerEx("TicketKaufen", 10000,false, "i", playerid);
    SendClientMessage(playerid,COLOR_RED,"Du musst dir erst ein Fahrticket der SATS für 5$ kaufen!");
    SendClientMessage(playerid,COLOR_RED,"Verwende dazu /ticketkaufen");
    }
    if(sInfo[playerid][gotticket] == 1)
    {
    dini_IntSet(save, "gotticket", 0);
    }
    }


    public TicketKaufen:
    public TicketKaufen(playerid)
    {
    new pName[MAX_PLAYER_NAME], save[62];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(save,sizeof(save),"/Spieler/%s.ini",pName);
    sInfo[playerid][gotticket] = dini_Int(save,"gotticket");
    if(sInfo[playerid][gotticket] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_RED,"Du benötigst ein gültiges Fahrticket zum Mitfahren");
    }
    }

    Ich habe mal eine Frage. Ich möchte gerne an mehreren Stellen in der Map Pickups (Herzen) aufstellen.


    Kann mir mal einer erklären wie das mit einem Array gehen würde?

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/drivein",cmdtext))
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,1214.0985,-904.3343,42.9216))
    {
    SendClientMessage(playerid,0xDCDCDCFF,"Danke für deine Bestellung. Du hast jetzt wieder volle Energie...");
    SetPlayerHealth(playerid,100);
    }
    return 1;
    }


    Du hast vergessen die Energie auf 100 zu stellen :)