Beiträge von SLaYz

    So hab dir das mal Gemacht, sollte auch Funktionieren. Beachte jedoch das du in den Codes einige Teile ändern musst, damit es Reibungslob bei dir Funktioniert.


    Oben definierst du im Script erstmal deine Fahrzeuge, und den Bool ob der Spieler am Liefern ist oder nicht und den Forward den wir zum Überprüfen des Fahrzeuges benötigen.


    Das schaut dann so aus.
    new TransCars[5],
    forward IsLieferCar(carid),
    bool:Liefert[MAX_PLAYERS];


    Dann gehst du unter OnGameModeInit und lässt dir deine Fahrzeuge laden.
    TransCars[0] = AddStaticVehicleEx(440,-540.000,-545.000,25.0000,180.0000,12,12,1500);
    TransCars[1] = AddStaticVehicleEx(440,-540.000,-545.000,25.0000,180.0000,12,12,1500);
    TransCars[2] = AddStaticVehicleEx(440,-530.0000,-545.0000,25.0000,180.0000,12,12,1500);
    TransCars[3] = AddStaticVehicleEx(440,-520.0000,-545.0000,25.0000,180.0000,12,12,1500);
    TransCars[4] = AddStaticVehicleEx(440,-500.0000,-545.0000,25.0000,180.0000,12,12,1500);


    Anschließend musst du nurnoch die Befehle erstellen, ich habe mal 2 Test-Befehle erstellt, die Farben die dort bei den SendClientMessage's benutzt worden sind musst du mit deinen Farben bearbeiten und die Texte ggf. Ändern!
    ocmd:liefern(playerid)
    {
    new carid = GetPlayerVehicleID(playerid);
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, Meldung_Orange, "Du musst in einem Fahrzeug sitzen.");
    if(!IsLieferCar(carid))return SendClientMessage(playerid, Meldung_Orange, "Du kannst keine Produkte laden, da du nicht in einem Lieferwagen bist.");
    if(Liefert[playerid])return SendClientMessage(playerid, Meldung_Orange, "Du bist bereits am Liefern.");
    else if(!Liefert[playerid])Liefert[playerid] = true; SendClientMessage(playerid, COLOR_WHITE, "Du hast nun 500 Produkte geladen, fahre zur Stromfabrik.");SetPlayerCheckpoint(playerid, 1114.0520,-1717.2704,13.1665, 3);
    return 1;
    }


    ocmd:abladen(playerid)
    {
    new carid = GetPlayerVehicleID(playerid);
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, Meldung_Orange, "Du musst in einem Fahrzeug sitzen.");
    if(!IsLieferCar(carid))return SendClientMessage(playerid, Meldung_Orange, "Du kannst keine Produkte laden, da du nicht in einem Lieferwagen bist.");
    if(!IsPlayerInRangeOfPoint(playerid, 3.0, 1114.0520,-1717.2704,13.1665))return SendClientMessage(playerid, COLOR_WHITE, "Du bist nicht am Strom Unternehmen.");
    if(!Liefert[playerid])return SendClientMessage(playerid, Meldung_Orange, "Du bist nicht am Liefern.");
    else if(Liefert[playerid]) Liefert[playerid] = false; SendClientMessage(playerid, COLOR_WHITE, "Du hast das Strom Unternehmen mit 500 Produkten beliefert, dafür erhältst du 500$.");
    return 1;
    }


    Und nun kommen wir zu dem Public der deine Fahrzeuge überprüft ob es ein Lieferwagen ist.
    public IsLieferCar(carid)
    {
    for(new i = 0; i < sizeof(TransCars); i++)
    {
    if(carid == TransCars[i])
    {
    return 1;
    }
    }
    return 0;
    }


    So, das wars! Ich hoffe ich konnte Dir etwas Helfen, benötigst du mehr Hilfe oder eine genauere Erklärung meines Codes muss du dich nur Melden.



    Mit freundlichen Grüßen
    SLaYz

    Versuchs mal so



    Ich glaube das sollte es sein was Du suchst^^


    So funktioniert der Befehl garnicht mehr. Ich werde nicht in Gefägnis gesteckt und bekomme auch falsche Nachrichten


    Alles klar, sorry hab noch einen kleinen Fehler meinerseits enteckt.


    Versuchs mal mit dem
    ocmd:arrest(playerid,params[])
    {
    new pID, Zeit,s[90],Float:Pos[3];
    if(!IsPlayerInRangeOfPoint(playerid,10,226.7997,112.3471,999.0156)return SendClientMessage(playerid,HELLBLAU,"Du bist nicht in der näher der Zellen");
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,WEIß,"Du bist kein angestellter der Polizei");
    if(DutyPD[playerid] == 0)return SendClientMessage(playerid,WEIß,"Du bist nicht im Dienst");
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    if(!IsPlayerInRangeOfPoint(pID,10,Pos[0],Pos[1],Pos[2]))return SendClientMessage(playerid,HELLBLAU,"Du kannst den Spieler nicht ins Gefängnis stecken da er nicht in deiner Nähe ist");
    if(sscanf(params,"ud",pID,Zeit))return SendClientMessage(playerid,HELLBLAU,"Benutze: /Arrest [PLAYERID] [ZEIT]");
    format(s,sizeof(s),"Du hast %s in das Gefängnis für %d Sekunden gesteckt.",sName(pID),Zeit);
    SendClientMessage(playerid,HELLBLAU,s);
    format(s,sizeof(s),"Du wurdest von %s in das Gefängnis für %d Sekunden gesteckt.",sName(playerid),Zeit);
    SendClientMessage(pID,GRAU,s);
    SetPlayerPos(pID,226.7997,112.3471,999.0156);
    return 1;
    }

    ocmd:arrest(playerid,params[])
    {
    new Float:x,Float:y,Float:z;
    new pID, Zeit;
    new s[128];
    if(!IsPlayerInRangeOfPoint(playerid,10,226.7997,112.3471,999.0156)return SendClientMessage(playerid,HELLBLAU,"Du bist nicht in der näher der Zellen");
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,WEIß,"Du bist kein angestellter der Polizei");
    if(DutyPD[playerid] == 0)return SendClientMessage(playerid,WEIß,"Du bist nicht im Dienst");
    GetPlayerPos(playerid,x,y,z);
    if(!IsPlayerInRangeOfPoint(pID,10,x,y,z))return SendClientMessage(playerid,HELLBLAU,"Du kannst den Spieler nicht ins Gefängnis stecken da er nicht in deiner Nähe ist");
    if(sscanf(params,"us",pID,Zeit))return SendClientMessage(playerid,HELLBLAU,"Benutze: /Arrest [PLAYERID] [ZEIT]");
    format(s,sizeof(s),"Du hast %s in das Gefängnis für %d Sekunden gesteckt.",sName(pID),Zeit);
    SendClientMessage(playerid,HELLBLAU,s);
    format(s,sizeof(s),"Du wurdest von %s in das Gefängnis für %d Sekunden gesteckt.",sName(playerid),Zeit);
    SendClientMessage(pID,GRAU,s);
    SetPlayerPos(pID,226.7997,112.3471,999.0156);
    return 1;
    }


    Du hast die Zeit in einem String gepackt was mir nicht sehr Sinnvoll erscheint, Nutze lieber einen Integer der Befehl sollte so nun Klappen wie Oben.


    Mit freundlichen Grüßen
    SLaYz

    Also wenn du es in PDO machen willst könnte es etwa so Aussehen




    * Der Code wurde getestet und Funktioniert ohne Probleme.

    Du schickst eine Query mit dem Namen ab z.B. mysql_query("SELECT * FROM Accounts WHERE Name='%s', inputtext)
    *Es ist nur ein Beispiel die Query sollte in einem Format geschrieben werden.


    Dann Speicherst du die Werte am besten in extra Variabelen und Editierst sie, anschließend Sendest du wieder eine Query zur Datenbank die die Daten die du Editiert hast wieder Speichert.