[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

  • CMD:motor(playerid)
    {
    new string[96];
    if(!IsLoggedIn(playerid))return 1;
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Fahrzeug.");
    new vehicleid = GetPlayerVehicleID(playerid);
    if(pRefillVehicle[playerid] == 1)return SendClientMessage(playerid, COLOR_GREY, "Du kannst den Motor nicht anschalten während du das Fahrzeug tankst!");
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht der Fahrer.");
    if(IsAFahrrad(GetVehicleModel(vehicleid)))return SendClientMessage(playerid, COLOR_GREY, "Dieses Fahrrad hat keinen Motor!");
    if(Vehicle[vehicleid][vehFuel] <= 0.0)return SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug hat kein Benzin mehr!");
    if(Spieler[playerid][pAdminDuty] == 1){
    if(IsValidVehicle(vehicleid)){
    if(Vehicle[vehicleid][vehMotor] == false)
    {
    Vehicle[vehicleid][vehMotor] = true;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    Vehicle[vehicleid][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", vehicleid);
    format(string, sizeof(string), "%s betätigt die Zündung.", GetName(playerid));
    SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 12000);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du betätigst die Zündung.");
    return 1;
    }
    else if(Vehicle[vehicleid][vehMotor] == true)
    {
    Vehicle[vehicleid][vehMotor] = false;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du stellst den Motor ab."); // Hier das die Lichter mit ausgehn
    KillTimer(vehicleid);
    return 1;
    }
    }
    }



    Hey, wie mache ich das Motor & Licht ausgehn wen man /motor eingibt?




    CMD:licht(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Fahrzeug.");
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht der Fahrer.");
    if(IsAFahrrad(GetVehicleModel(vehicleid)))return SendClientMessage(playerid, COLOR_GREY, "Dieses Fahrrad hat kein Licht!");
    if(Vehicle[vehicleid][vehLicht] == false)
    {
    Vehicle[vehicleid][vehLicht] = true;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, engine, VEHICLE_PARAMS_ON, alarm, doors, bonnet, boot, objective);
    }
    else if(Vehicle[vehicleid][vehLicht] == true)
    {
    Vehicle[vehicleid][vehLicht] = false;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, engine, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
    }
    return 1;
    }


    Danke im vorraus!

  • In der if-Anweisung von deinem /motor Befehl wo du [vehMotor] == true fügst du einfach das ein:



    C
    Vehicle[vehicleid][vehLicht] = false;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, engine, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);

    :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • CMD:motor(playerid)
    {
    new string[96];
    if(!IsLoggedIn(playerid))return 1;
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Fahrzeug.");
    new vehicleid = GetPlayerVehicleID(playerid);
    if(pRefillVehicle[playerid] == 1)return SendClientMessage(playerid, COLOR_GREY, "Du kannst den Motor nicht anschalten während du das Fahrzeug tankst!");
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht der Fahrer.");
    if(IsAFahrrad(GetVehicleModel(vehicleid)))return SendClientMessage(playerid, COLOR_GREY, "Dieses Fahrrad hat keinen Motor!");
    if(Vehicle[vehicleid][vehFuel] <= 0.0)return SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug hat kein Benzin mehr!");
    if(Spieler[playerid][pAdminDuty] == 1){
    if(IsValidVehicle(vehicleid)){
    if(Vehicle[vehicleid][vehMotor] == false)
    {
    Vehicle[vehicleid][vehMotor] = true;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    Vehicle[vehicleid][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", vehicleid);
    format(string, sizeof(string), "%s betätigt die Zündung.", GetName(playerid));
    SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 12000);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du betätigst die Zündung.");
    return 1;
    }
    else if(Vehicle[vehicleid][vehMotor] == true)
    {
    Vehicle[vehicleid][vehMotor] = false;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    Vehicle[vehicleid][vehLicht] = false;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, engine, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du stellst den Motor ab.");
    KillTimer(vehicleid);
    return 1;
    }
    }


    }



    so meinst du ja? >:)


  • CMD:ausruesten(playerid)
    {
    new string[256], header[96];
    new gHouse = IsPlayerInGangHouse(playerid);
    new sHouse = IsPlayerInStaatHouse(playerid);
    if(gHouse == 0)return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Gang-House (Eingang).");
    if(gHouse > 0)
    {
    if(Frak[gHouse][frakType] == 2)
    {
    if(Spieler[playerid][pFraktion] == Frak[gHouse][frakIDx])
    {
    format(header, 96, "%d Mats, %dg Drogen", Frak[gHouse][frakEisen], Frak[gHouse][frakDrugs]);
    format(string, sizeof(string), "Baseballschläger 96$ (12 Mats)\nDeagle 400$ (50 Mats)\nShotgun 200$ (50 Mats)\nMP5 400$ (50 Mats)\nAK47 600$ (75 Mats)", (Frak[gHouse][frakEisenPreis]*50), (Frak[gHouse][frakEisenPreis]*90), (Frak[gHouse][frakEisenPreis]*150), (Frak[gHouse][frakEisenPreis]*80), (Frak[gHouse][frakEisenPreis]*75), (Frak[gHouse][frakEisenPreis]*5));
    ShowPlayerDialog(playerid, DIALOG_AUSRUESTEN, DIALOG_STYLE_LIST, header, string, "Kaufen", "Abbrechen");
    }
    }
    else if(Frak[gHouse][frakType] == 3)
    {
    if(Spieler[playerid][pFraktion] == Frak[gHouse][frakIDx])
    {
    format(header, 96, "Waffenmenü "COLOR_HEX_BLUE"[%d Materialien]", Frak[gHouse][frakEisen]);
    format(string, sizeof(string), "Desert Eagle (50 Materialien, $%d)\nM4 (90 Materialien, $%d)\nScharfschützengewehr (150 Materialien, $%d)\nSchrotflinte (80 Materialien, $%d)\nMP5 (75 Materialien, $%d)\nMesser (5 Materialien, $%d)", (Frak[gHouse][frakEisenPreis]*50), (Frak[gHouse][frakEisenPreis]*90), (Frak[gHouse][frakEisenPreis]*150), (Frak[gHouse][frakEisenPreis]*80), (Frak[gHouse][frakEisenPreis]*75), (Frak[gHouse][frakEisenPreis]*5));
    ShowPlayerDialog(playerid, DIALOG_AUSRUESTEN, DIALOG_STYLE_LIST, header, string, "Bauen", "Abbrechen");
    }
    }
    else if(Frak[gHouse][frakType] == 10)
    {
    if(Spieler[playerid][pFraktion] == Frak[gHouse][frakIDx])
    {
    format(header, 96, "Waffenmenü "COLOR_HEX_BLUE"[%d Materialien]", Frak[gHouse][frakEisen]);
    format(string, sizeof(string), "Desert Eagle (50 Materialien, $%d)\nM4 (90 Materialien, $%d)\nScharfschützengewehr (150 Materialien, $%d)\nSchrotflinte (80 Materialien, $%d)\nMP5 (75 Materialien, $%d)\nMesser (5 Materialien, $%d)", (Frak[gHouse][frakEisenPreis]*50), (Frak[gHouse][frakEisenPreis]*90), (Frak[gHouse][frakEisenPreis]*150), (Frak[gHouse][frakEisenPreis]*80), (Frak[gHouse][frakEisenPreis]*75), (Frak[gHouse][frakEisenPreis]*5));
    ShowPlayerDialog(playerid, DIALOG_AUSRUESTEN, DIALOG_STYLE_LIST, header, string, "Bauen", "Abbrechen");
    }
    }
    else if(Frak[sHouse][frakType] == 1) // IsPlayerInStaatHouse also LSPD
    {
    if(Spieler[playerid][pFraktion] == Frak[sHouse][frakIDx])
    {
    SetPlayerHealth(playerid, 100);
    SetPlayerArmour(playerid, 100);
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), "Schlagstock\nDesert Eagle\t (Ab Rang %d)\nShotgun\t (Ab Rang %d)\nMP5\t (Ab Rang %d)\nSniper\t (Ab Rang %d)\nSpray\t (Ab Rang %d)", Others[LSPDM4Rang], Others[LSPDAKRang], Others[LSPDShotRang], Others[LSPDMP5Rang], Others[LSPDRifleRang]);
    ShowPlayerDialog(playerid, DIALOG_LSPDEQUIP, DIALOG_STYLE_LIST, "Ausrüsten", DialogString, "Ausrüsten", "Abbrechen");
    }
    }
    }
    return 1;
    }




    stock IsPlayerInStaatHouse(playerid)
    {
    for(new i=1;i<MAX_FRACS;i++)
    {
    if(Frak[i][frakType] == 1)
    {
    if(IsPlayerInRangeOfPoint(playerid, 2.0, 255.0872,78.0861,1003.6406))
    {
    return i;
    }
    }
    }
    return 0;
    }



    Ich hab eine Frage wie ändere ich das das der Spieler sich bei den Punkt wo angegeben ist also:


    255.0872,78.0861,1003.6406


    ausrüsten kann muss ja bei


    else if(Frak[sHouse][frakType] == 1) // IsPlayerInStaatHouse also LSPD


    aber leider funktioniert das nicht wie kann ich das richtig machen ich komm auf mein Fehler nicht drauf das es einwandfrei funktioniert.
    heißt das obere stimmt schon wie es ist die können sich wo sie spawnen ausrüsten.
    aber das LSPD hat ein eigenen Punkt dafür wo sie sich ausrüsten können


    wie mache ich das anders ich komm echt nicht drauf oder wie es @hav0K~ gemeint hat :/ :(


    @Kaliber

  • Guten Abend,
    ich bin dabei ein "Dynamic ATM System" zu schreiben, das klappt auch eigentlich soweit super!
    Nur habe ich das Problem, das ich an diesem "ATM" erst benutzen kann, wenn der Server neugestartet wurde.


    Ich habe hier eine Funktion , die dies eigentlich machbar machen sollte.



    Laden aus der Datenbank: // Klappt perfekt!
    public OnLoadATMs()
    {
    new rows, id, atms;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "ID");

    if(id < 0 || id >= MAX_ATMS)continue;

    ATMInfo[id][aX] = cache_get_field_content_float(0, "aX", Handle);
    ATMInfo[id][aY] = cache_get_field_content_float(0, "aY", Handle);
    ATMInfo[id][aZ] = cache_get_field_content_float(0, "aZ", Handle);

    ATMInfo[id][aLoaded] = true;
    ATMInfo[id][Label] = CreateDynamic3DTextLabel("Geldautomat\n{FEFEFE}Drücke "#FARBE_ORANGE"'N'{FEFEFE}!", -1, ATMInfo[id][aA], ATMInfo[id][aY], ATMInfo[id][aZ], 10.0);
    ATMInfo[id][ATMObj] = CreateDynamicObject(2942, ATMInfo[id][aX], ATMInfo[id][aY], ATMInfo[id][aZ]-0.5, 0, 0, ATMInfo[id][aA]);
    atms++;
    if(atms == MAX_ATMS) return print("Es können keine weiteren Bankautoamten geladen werden, Limit (MAX_ATMS) erreicht.");
    }
    return 1;
    }


    Die Funktion um den ATM zu benutzen:
    stock IsATM(playerid)
    {
    new i=0;
    while(i != MAX_ATMS)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, ATMInfo[i][aX], ATMInfo[i][aY], ATMInfo[i][aZ]))
    {
    return i;
    }
    i++;
    }
    return -1;
    }


    Den ATM Benutzen:
    if(newkeys == KEY_NO) // *** Taste 'N'
    {
    if(IsATM(playerid))
    {
    if(sInfo[playerid][sKonto] == 1)
    {
    ShowPlayerDialog(playerid, DIALOG_BANK_PIN, DIALOG_STYLE_INPUT, ""#FARBE_WEISS"Konto Pin", ""#FARBE_WEISS"Bitte gebe dein Pin ein:", "Bestätigen", "Abbrechen");
    return 1;
    }
    }
    }


    Hoffe einer von euch weißt weiter, ich nähmlich nicht mehr.


    MfG.

  • Hey! Ich weiß nicht ob es daran liegt, aber Ersetz mal das:


    Durch das:



    Ich hoffe es klappt!


    Mit freundlichen Grüßen
    Paymon

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • was ist daran falsch ich sehe kein klammer fehler obwohl er es mir ausspuckt?


  • new ran = random(999999) + 1;
    new playerName[MAX_PLAYER_NAME+2], nPlate[32], cutName[24+2];
    GetPlayerName(playerid, playerName, sizeof(playerName));
    strmid(cutName, playerName, 0, 2, sizeof(cutName));
    format(nPlate, sizeof(nPlate), "%s %d", cutName, ran);



    Hey ich hab eine kleine Frage bei mir wird angezeigt als kennzeichen:


    Me 123456 < die Zahlen sind random.
    aber ich möchte das ME also das das E auch groß angezeigt wird.



    Vielen Dank im vorraus :)



  • Hey,


    habe ein Problem mit dem "Givemoney" Befehl und zwar kommt wenn ich diesen compile dieser Error.

    (123) : error 010: invalid function or declaration
    (126) : error 010: invalid function or declaration


    Es wäre nett, wenn ihr diesen Code editieren könntet & mir den kompletten Public Befehl zurückschicken könntet (so ist es einfacher einzufügen und es entstehen keine weiteren Probleme)


    mfg

  • es heisst cmdtext nicht cmd :)