Beiträge von DasNeo

    Klar, man kann alles ;)




    // Oben im Script:
    new gereinigt[MAX_PLAYERS];



    if(strcmp(cmd,"/reinigen") true ) == 0)
    {
    if(!WantedLevel[playerid] == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0,-2187.4885,696.0842,46.8824 ))
    {
    if(gereinigt[playerid] == 0)
    {
    WantedPoints[playerid] = 0;
    WantedLevel[playerid] = 0;
    SendClientMessage(playerid,Farbe,"Du reinigst deine Akte. Dies dauert eine Minute");
    TogglePlayerControllable(playerid, false);
    SetTimerEx("freezeTimer", 60000, false, "i", playerid);
    SetTimerEx("reinigenTimer", 3000000, false, "i", playerid);
    gereinigt[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, FARBE, "Du kannst deine Akte nur alle 30 Minuten reinigen!");
    }
    }
    else
    {
    SendClientMessage(playerid, FARBE, "Du bist nicht am richtigen Punkt.");
    }
    }
    }


    forward freezeTimer(playerid);
    public freezeTimer(playerid)
    {
    TogglePlayerControllable(playerid, true);
    SendClientMessage(playerid, FARBE,"Du hast deine Akte erfolgreich gereinigt.");
    return 1;
    }


    forward reinigenTimer(playerid);
    public reinigenTimer(playerid)
    {
    gereinigt[playerid] = 0;
    return 1;
    }


    So, wenn ich nichts vergessen habe, sollte das so gehen.


    Gruß,
    Neo. :)

    if(strcmp(cmd,"/reinigen") true ) == 0)
    {
    if(!WantedLevel[playerid] == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0,-2187.4885,696.0842,46.8824 ))
    {
    WantedPoints[playerid] = 0;
    WantedLevel[playerid] = 0;
    SendClientMessage(playerid,Farbe,"Du hast deine Akte gereinigt");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, FARBE, "Du bist nicht am richtigen Punkt.");
    }
    }
    }


    Gruß,
    Neo. :)

    Mahlzeit,


    aus irgendeinem Grund klappt da was nicht ganz.


    Hier der Code:


    Spoiler anzeigen
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new i=0; i<100; i++)
    {
    printf("i = %i", i);
    if(vehicleid == pdCar[i] && SpielerInfo[playerid][pFraktion] !=1)
    {
    TogglePlayerControllable(playerid,0);
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,Grau,"Du hast keine Autoschlüssel für dieses Dienst Fahrzeug");
    }
    else if(vehicleid == fbiCar[i] && SpielerInfo[playerid][pFraktion] !=2)
    {
    TogglePlayerControllable(playerid,0);
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,Grau,"Du hast keine Autoschlüssel für dieses Dienst Fahrzeug");
    }
    else if(vehicleid == buCar[i])
    {
    if(SpielerInfo[playerid][pFraktion] !=3)
    {
    TogglePlayerControllable(playerid,0);
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,Grau,"Du hast keine Autoschlüssel für dieses Dienst Fahrzeug");
    }
    }
    else if(vehicleid == gsCar[i] && SpielerInfo[playerid][pFraktion] !=4)
    {
    TogglePlayerControllable(playerid,0);
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,Grau,"Du hast keine Autoschlüssel für dieses Fahrzeug");
    }
    }
    return 1;
    }


    Problem an der Sache ist, dass die Schleife vorzeitig abbricht. In der Console steht immer nur "i = 0" und "i = 1". (Selbst wenn ich alles, bis auf das Print, auskommentiere..)


    Vielleicht weiß ja einer von euch, woran das liegt.


    Gruß,
    Neo. :)

    Na dann lass es einfach mal laufen.


    Sollte es nach 10-15 Minuten nicht fertig sein, hast du ein Problem.
    Meld' dich dann am besten einfach noch mal. :)



    Gruß,
    Neo. :)

    Passiert besonders oft bei großen Scripts. Wie lang ist dein Script denn?


    Im Normalfall lässt man den Compiler laufen, bis er fertig ist.
    Länger als 10 Minuten dauert das aber normalerweise nicht.


    Gruß,
    Neo. :)

    for(new i=-1; i < sizeof(dpCar); i++)
    {
    dpCar[i]=CreateVehicle(427,1544.8184,-1655.0813,6.0224,89.7934,0,1,-1);
    }


    Ganz einfach. :P


    Aber ist es nicht etwas doof alle Fahrzeuge davon auf die selbe Position zu setzen?

    Ich hab dir das ganze mal behoben.





    new frakeinladung[MAX_PLAYERS]; // ganz oben



    ocmd:invite(playerid,params[])
    {
    new pID2;
    new frakid = pInfo[playerid][fraktion];
    if(pInfo[playerid][fraktion] == 0) { return SendClientMessage(playerid, COLOR_GREY, "Du kannst als Zivilist niemanden inviten!"); }
    if(pInfo[playerid][leader] == 0) { return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Leader!"); }
    if(sscanf(params,"d", pID2)) { return SendClientMessage(playerid,0xAFAFAFAA,"Benutze: /invite [PlayerID]"); }
    if(!IsPlayerConnected(pID2)) return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist nicht Online!");
    if(pInfo[pID2][member] == 1) { return SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist bereits in einer Fraktion!"); }
    if(pInfo[pID2][leader] == 1) { return SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist als Leader in einer Fraktion!"); }
    if(frakeinladung[pID2] >= 0) { return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler hat bereits eine Einladung!"); }
    frakeinladung[pID2] = frakid;
    SendClientMessage(pID2, COLOR_BLUE, "Leader %s hat dir eine Fraktionseinladung angeboten.Mach /einladung annehmen um sie anzunehmen");
    return 1;
    }


    ocmd:einladung(playerid,params[])
    {
    new entscheidung[20];
    if(frakeinladung[playerid] == 0) { return SendClientMessage(playerid, COLOR_RED, "Du hast keine Fraktionseinladung!"); }
    if(sscanf(params, "s", entscheidung)) { return SendClientMessage(playerid, COLOR_GREY, "Benutze: /einladung [annehmen/ablehnen]"); }
    if(!strcmp(entscheidung, "annehmen"), true)
    {
    pInfo[playerid][fraktion] = frakid;
    pInfo[playerid][member] = 1;
    pInfo[playerid][frakrank] = 1;
    frakeinladung[playerid] = 0;
    SendClientMessage(playerid, COLOR_GREY, "Du hast die fraktionseinladung angenomen");
    }
    else if(!strcmp(entscheidung, "ablehnen", true))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast die Fraktionseinladung abgelehnt");
    frakeinladung[playerid] = 0;
    }
    else
    {
    return SendClientMessage(playerid, COLOR_GREY ,"Benutze: /einladung [annehmen/ablehnen]");
    }
    return 1;
    }




    Gruß,
    Neo. :)

    dini_Set(path, "key", "string"); // String setzen
    dini_Get(path, "key", "string"); // String getten


    SetPVarString(playerid, "Var", "string"); // String setten


    new getString[123];
    GetPVarString(playerid, "Var", getString, sizeof(getString)); // String getten


    Hoffe, dass das verständlich ist. :P


    Gruß,
    Neo. :)

    Okay, also wieso das nicht funktioniert, weiß ich nicht.
    Aber ich weiß, dass du bei dem Biz Fehler hast. Du hast nämlich etwas an der falschen Stelle.


    0|Der Staat|Lebensmittel Lager|No-one|X|Y|Z|X|Y|Z|Level|Preis|Eintrittspreis|Guthaben|Zustand (Auf/zu)|Interior|Produkte|Max. Produkte|Preis p. Produkt



    So sollte es sein.


    Vielleicht ist das ja der Grund, wieso es nicht geht. (?)


    Ich weiß aufjedenfall nicht mehr weiter - tut mir leid.


    Gruß,
    Neo. :)

    Gute Frage. Ich hätte jetzt gesagt, dass das die Rot. Koordinaten sind, würde aber auch nicht so viel Sinn machen.


    Probiere doch einfach mal die ersten drei aus.


    Ich bin mir zu 85% sicher.

    Häufig treten auch Bugs auf die sich darauf zurückführen lassen, dass der Scripter nicht die Dummheit oder die Hinterhältigkeit der User berücksichtigt hat.


    So baut der Scripter in einen Pay-Befehl keine Abfrage rein ob der User einen -Betrag angegeben hat. doch ohne eine solche abfrage ist es möglich mit hilfe des Paybefehl belibig Geld von Usern zu stehlen.

    Das... ist.. genial! :O


    Naja, oder der Scripter macht etwas rein, was mit anderen Funktionen nicht "kompatibel" ist.(Ist mir schon passiert. :( )