[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo, ich habe ein kleines problem wen ich die mats unten abgebe in der Garage (LSPD)
    sieht das so aus obwohl es nur 50.000 Stück waren und 7 Stück drinne waren.

    Du nimmst beim unload den int Wert x 50 und 50.000 x 50 sind nunmal 2.500.000


  • Ich habe eine frage....


    Wen ich jetzt /unload mache und reinmache obwohl das limit bei 250k sind kann man nochmal unload machen dann sind es 300000?
    wie mache ich am besten wen er keine Mats geladen hat das er die nicht abladen kann?

  • Etwas x 1 nehmen ist dasselbe als wenn die Zahl garnicht mal genommen wird. Einfach dort garnichts berechnen, sondern int einfach so stehen lassen.

    wie mache ich am besten wen er keine Prods hat das er nichts abladen kann?



  • wie mache ich am besten wen er keine Prods hat das er nichts abladen kann?


    if(Vehicle[GetPlayerVehicleID(playerid)][vehProds] <= 0)return SendClientMessage(playerid, -1, "Keine Produkte");


    Und wenn du abfragen willst ob genug drin sind bzw. es nicht überfüllt werden soll
    if(Frak[1][frakEisen] + int > 250000)return SendClientMessage(playerid, -1, "Das Lager ist bei diesem Int-Wert voll");


    Davor noch abfragen, ob der Spieler sich in einem Fahrzeug befindet.

  • Guten Morgen, bin gerade dabei einen ban zu machen


    ocmd:ban(playerid,params[])//Funktioniert noch nicht!
    {
    if(!IsPlayerGM(playerid,2)) return 1;
    new pID,Grund[64],string1[128],string2[128];
    if(sscanf(params,"us[128]",pID,Grund))return SendClientMessage(playerid,FARBE_ROT,"INFO: /ban [Playerid] [Grund]");
    if (pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,FARBE_ROT,"Diese Spieler (ID) existiert nicht.");
    if (pID == playerid)return SendClientMessage(playerid,FARBE_ROT,"Du kannst dich nicht selber Bannen!");
    format(string1,sizeof(string1),"Du wurdest von %s vom Server gebannt.Grund: %s.",getPlayerName(playerid),Grund);
    SendClientMessage(pID,FARBE_ROT,string1);
    format(string2,sizeof(string2),"Sollte dieser Ban unberechtigt sein, stelle bitte einen Antrag auf Entbannung im Forum!");
    SendClientMessage(pID,FARBE_ROT,string2);
    SetTimerEx("pBan",500,false,"i",pID);
    return 1;
    }


    public pBan(playerid)
    {
    new pID = SetPVarInt(pID,"Gebannt",1);
    sInfo[playerid][Gebannt]=pID;
    SetPVarInt(pID,"Gebannt",1);
    Kick(pID);
    return 1;
    }


    Stimmt das soweit? Wo frage ich am besten ab ob ein spieler gebannt ist?

  • Du musst nicht 2 Strings erstellen einer reicht, die Variable ob der Spieler gebannt ist solltest du zur Sicherheit vor den Kick Timer setzen.
    Den ban kannst du unter OnPlayerConnect oder in deiner Benutzer Lade Funktion Abfragen, wichtig ist das du die Daten Speicherst per MySQL oder Ini.



    ocmd:ban(playerid, params[])
    {
    new pID, Grund[64], String[128];

    if(!IsPlayerGM(playerid,2))return 1;
    if(sscanf(params, "us[64]", pID, Grund))return SendClientMessage(playerid, FARBE_ROT, "INFO: /ban [Playerid] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, FARBE_ROT, "Diese Spieler ist nicht online.");
    if(pID == playerid)return SendClientMessage(playerid, FARBE_ROT, "Du kannst dich nicht selber Bannen!");


    format(String, sizeof(String),"Du wurdest von %s vom Server gebannt.Grund: %s.", getPlayerName(playerid), Grund);
    SendClientMessage(pID, FARBE_ROT, String);


    format(String, sizeof(String),"Sollte dieser Ban unberechtigt sein, stelle bitte einen Antrag auf Entbannung im Forum!");
    SendClientMessage(pID, FARBE_ROT, String);


    SetPVarInt(pID, "Gebannt", 1);
    sInfo[playerid][Gebannt] = pID;


    SetTimerEx("KickTimer", 500, false, "i", pID);
    return 1;
    }


    public KickTimer(playerid)
    {
    Kick(pID);
    return 1;
    }


    sry wenn ich die Variable "sInfo[playerid][Gebannt]" falsch zugeordnet habe ich weis nicht genau wofür diese steht.


    @xPatrick

  • @Dr. Frauenarzt

    Du gibst 1. keine Meldung aus wenn er nicht an dem Punkt ist und 2. überprüfst du ob er NICHT im Fahrzeug 428 sitzt und nur dann gehst du wieter. Wenn er drinnen sitzt passiert gar nichts. Du müsstest also am Punkt stehen und nicht in dem Fahrzeug 428 sitzen damit da etwas passiert.


    Ändere if(GetVehicleModel(vehicleid) != 428) zu if(GetVehicleModel(vehicleid) == 428) und füge nach den beiden if-Schleifen am besten noch ein else ein in dem du Ausgibst das sich der Spieler nicht am richtigen Punkt bzw nicht im richtigen Fahrzeug befindet.


    Des weiteren solltest du if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "** Du befindest dich in keinem Lieferwagen."); schon viel früher verwenden. Am besten noch vor new vehicleid = GetPlayerVehicleID(playerid);


  • wen ich jetzt


    if(GetVehicleModel(vehicleid) == 428) return SendClientMessage(playerid, COLOR_GREY, "Du bist in Keinem Transporter");
    mache obwohl ich drinne bin gehts nicht?


    kommt trd das ich in keinem Transporter bin?




  • Hallo,


    Ich hab ein Problem wen ich jetzt beim Fahrzeug


    if(GetVehicleModel(vehicleid) == 428)


    /load eingebe gibt er mir was aus aber wen ich jetzt bei den unteren 2 was eingebe funktioniert das nicht warum?