[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
  • Spoiler anzeigen
    stock StartMotor(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0x9B0000FF, "Du sitzt in keinem Fahrzeug, um den Motor zu starten!");
    if(GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid, 0x9B0000FF, "Nur der Fahrer kann den Motor starten!");
    new car = GetPlayerVehicleID(playerid),m = GetVehicleModel(car);
    if(m == 509 || m == 481 || m == 510) return SendClientMessage(playerid, 0x9B0000FF, "Du sitzt auf einem Fahrrad, das hat keinen Motor!");
    else if (Motor[car] == false)
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = true;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen den Zündschlüssel, und schalten den Motor {36D61A}an!");
    return 1;
    }
    else
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = false;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen den Zündschlüssel, und schalten den Motor {E83A3D}aus!");
    return 1;
    }
    return 1;
    }

    Spoiler anzeigen
    stock LichtAn(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0x9B0000FF, "Du sitzt in keinem Fahrzeug, um das Licht einzuschalten!");
    if(GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid, 0x9B0000FF, "Nur der Fahrer kann das Licht einschalten!");
    new car = GetPlayerVehicleID(playerid),m = GetVehicleModel(car);
    printf("playerid: %d / Vehicle: %d / Model: %d", playerid, car, m);
    if(m == 417 || 425 || m == 447 || m == 464 || m == 465 || m == 469 || m == 487 || m == 488 || m == 497 || m == 501 || m == 548 || m == 563 || m == 430 || m == 446 || m == 452 || m == 453 || m == 454 || m == 472 || m == 473 || m == 484 || m == 493 || m == 595 ||
    m == 460 || m == 476 || m == 511 || m == 512 || m == 513 || m == 519 || m == 520 || m == 553 || m == 577 || m == 592 || m == 593) return SendClientMessage(playerid, 0x9B0000FF, "Du sitzt in einem Fahrzeug,Boot,Flugzeug, welches kein Licht hat!");
    if (Licht[car] == false)
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    Licht[car] = true;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen am Schalter, und schalten das Licht {36D61A}an!");
    return 1;
    }
    else
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    Licht[car] = false;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen am Schalter, und schalten das Licht {E83A3D}aus!");
    return 1;
    }
    return 1;
    }


    Versuche es so. Wenn es nicht geht, poste was beim Licht einschalten im Server Log steht.

  • Jeffry:
    Wie kann ich jetzt die Position immer und immer wieder aktualisieren, bis man den Timer killen lässt?



    Spoiler anzeigen
    ocmd:find(playerid,params[])
    {
    new pID, Float:Pos[3];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid, C_SSCANF, "Benutze: {FFFFFF}/find [Spieler-ID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,C_GREY,"** Der angegebende Spieler ist nicht Online.");
    if(pID == INVALID_PLAYER_ID)return SendClientMessage(playerid, C_GREY," * Du kannst dich nicht selbst finden");
    GetPlayerPos(pID, Pos[0], Pos[1], Pos[2]);
    SetPlayerCheckpoint(playerid, Pos[0], Pos[1], Pos[2], 2);
    SetTimerEx("FindPlayer",1000,true,"u",playerid);
    return 1;
    }

    Spoiler anzeigen
    forward FindPlayer(playerid);
    public FindPlayer(playerid)
    {
    return 1;
    }

  • SetTimerEx("FindPlayer",1000,true,"u",playerid);
    zu:
    findTimer[playerid] = SetTimerEx("FindPlayer",1000,true,"dd",playerid, pID);


    Und:
    forward FindPlayer(playerid, pID);
    public FindPlayer(playerid, pID)
    {
    return 1;
    }


    Dann kannst du direkt in diesem public den Checkpoint neu setzen.


    Unter den Includes:
    new findTimer[MAX_PLAYERS] = {-1,...}; //Setzt alle Werte auf -1


    So kannst du dann über
    KillTimer(findTimer[playerid]);
    findTimer[playerid] = -1;
    den Timer killen.

  • if(!IsNumeric(inputtext) || !strlen(inputtext)) return SendClientMessage(playerid, 0xFF0000FF, "Error: Nur Zahlen!");
    new pID = strval(inputtext);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFF0000FF, "Error: Spieler nicht online!");

  • warum?


    WaffeLagerInfo[gWaffenlager] = 15000;


    SQL
    error 029: invalid expression, assumed zerowarning 215: expression has no effect



    liegt zwar an denn + aber ich weiß sonst nicht wie ich es noch hinzufügen könnte.

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Eigentlich sollte bei der +15000 sein.


    enum WaffenLager
    {
    gWaffenlager[32],
    bWaffenlager[32],
    vWaffenlager[32]
    }
    new WaffeLagerInfo[WaffenLager];


    /EDIT


    und wieso gehen meine Speicher / Laden Funktion nicht?


    stock LoadWaffenlager()
    {
    WaffeLagerInfo[gWaffenlager] = mysql_GetInt("waffenlager", "GroveStreet");
    WaffeLagerInfo[gWaffenlager] = mysql_GetInt("waffenlager", "FrontYard");
    WaffeLagerInfo[vWaffenlager] = mysql_GetInt("waffenlager", "Vagos");
    return 1;
    }



    stock SaveWaffenlager()
    {
    mysql_SetInt("waffenlager", "GroveStreet", WaffeLagerInfo[gWaffenlager]]);
    mysql_SetInt("waffenlager", "FrontYard", WaffeLagerInfo[bWaffenlager]);
    mysql_SetInt("waffenlager", "Vagos", WaffeLagerInfo[vWaffenlager]);
    return 1;
    }


    und wie kann man fragen ob an einen LKW ein Trailer dran ist?

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

    Einmal editiert, zuletzt von [KoSoVa] ()

  • Nabend,
    wenn ich diese Abfrage in ein public packe unt darunter etwas abfragen will was in dieser Tabelle steht dürfte es doch so funktionieren oder?

    mysql_format(Handle,query,sizeof(query),"SELECT * FROM banneduser WHERE username='%e'",getPlayerName(playerid));
    mysql_pquery(Handle,query);
    SpielerInfo[playerid][pBanned] = cache_get_field_content_int(0,"IsBanned",Handle);

    Denn er gibt mir immer aus er findet das Feld nicht.

  • Versuche es so. Wenn es nicht geht, poste was beim Licht einschalten im Server Log steht.

    Hay Jeffry, klappt leider auch nicht, steht immer noch, das ich keinem Fahrzeug sitze, welches kein Licht hat ^^.
    Und der Motor wird auch gestartet, wenn ich "nur" die Taste drücke, eigentlich muss ich die Taste 3 sekunden halten! :huh:


    Das steht in der Log:

    Spoiler anzeigen
    [15:22:56] playerid: 0 / Vehicle: 1 / Model: 560
    [15:23:05] playerid: 0 / Vehicle: 1 / Model: 560
    [15:23:05] playerid: 0 / Vehicle: 1 / Model: 560
    [15:23:05] playerid: 0 / Vehicle: 1 / Model: 560
    [15:23:05] playerid: 0 / Vehicle: 1 / Model: 560
    [15:23:57] playerid: 0 / Vehicle: 1 / Model: 560


    //EditHabe es jetzt etwas anders gemacht, jetzt funktioniert das Licht zwar, aber leider startet der Motor nicht mehr, also es kommen keine Nachrichten, wieso das?


    Hier das Motor/Licht System, hat evtl. jemand ein paar Tipps, wie ich das noch besser und Resourcen schonender gestallten kann? :)


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_ANALOG_DOWN)
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
    SetTimerEx("@motor",3000,0,"i",playerid);
    }
    if(newkeys & KEY_ANALOG_UP)
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
    LichtAn(playerid);
    }
    return 1;
    }
    @motor(i);@motor(i) return StartMotor(i),m_p{i} = false;



    // ======================== Motor / Licht System ==================================== //
    stock StartMotor(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0x9B0000FF, "Du sitzt in keinem Fahrzeug, um den Motor zu starten!");
    if(GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid, 0x9B0000FF, "Nur der Fahrer kann den Motor starten!");
    new car = GetPlayerVehicleID(playerid);
    if(!CanMotorTurnOn(car))
    {
    return 1;
    }
    if (Motor[car] == false)
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = true;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen den Zündschlüssel, und schalten den Motor {36D61A}an!");
    return 1;
    }
    else
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = false;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen den Zündschlüssel, und schalten den Motor {E83A3D}aus!");
    return 1;
    }
    }


    stock LichtAn(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0x9B0000FF, "Du sitzt in keinem Fahrzeug, um das Licht einzuschalten!");
    if(GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid, 0x9B0000FF, "Nur der Fahrer kann das Licht einschalten!");
    new car = GetPlayerVehicleID(playerid);
    if(!CanLightsTurnOn(car))
    {
    return 1;
    }
    if (Licht[car] == false)
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    Licht[car] = true;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen am Schalter, und schalten das Licht {36D61A}an!");
    return 1;
    }
    else
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    Licht[car] = false;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen am Schalter, und schalten das Licht {E83A3D}aus!");
    return 1;
    }
    }


    stock CanLightsTurnOn(vid)
    {
    new m = GetVehicleModel(vid);
    if(m == 417 || 425 || m == 447 || m == 464 || m == 465 || m == 469 || m == 487 || m == 488 || m == 497 || m == 501 || m == 548 || m == 563 || m == 430 || m == 446 || m == 452 || m == 453 || m == 454 || m == 472 || m == 473 || m == 484 || m == 493 || m == 595 || m == 460 || m == 476 || m == 511 || m == 512 || m == 513 || m == 519 || m == 520 || m == 553 || m == 577 || m == 592 || m == 593)
    {
    SendClientMessage(playerid, 0x9B0000FF, "Du sitzt in einem Fahrzeug,Boot,Flugzeug, welches kein Licht hat!");
    return 1;
    }
    return 0;
    }


    stock CanMotorTurnOn(vid)
    {
    new m = GetVehicleModel(vid);
    if(m == 509 || m == 481 || m == 510)
    {
    SendClientMessage(playerid, 0x9B0000FF, "Du sitzt auf einem Fahrrad, das hat keinen Motor!");
    return 1;
    }
    return 0;
    }


    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

    Einmal editiert, zuletzt von Eddy ()

  • Was ist falsch?
    [20:13:41] [DEBUG] mysql_tquery - connection: 1, query: "INSERT INTO db_spielerfahrzeuge (`name`,`slot`,`modelid`,`x`,`y`", callback: "(null)", format: "(null)"
    [20:13:41] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [20:13:41] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''100.0' at line 1
    [20:13:41] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
    [20:13:41] [DEBUG] Calling callback "OnQueryError"..
    [20:15:52] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE db_spielerfahrzeuge SET modelid='506',x='1905.795288',y='", callback: "(null)", format: "(null)"


    vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][Tank] = FahrzeugInfoModel[GetVehicleModel(Pfahrzeug[slot][playerid][Vehicle])-400][ftank];
    format(query,sizeof(query),"INSERT INTO "#DATENBANK"_spielerfahrzeuge (`name`,`slot`,`modelid`,`x`,`y`,`z`,`a`,`interior`,`world`,`vehhp`,`nummernschild`,`towedreason`,`tank`) VALUES ('%s','%d','%d','%f','%f','%f','%f','%d','%d','1000.0','N/A','NONE','100.0')",
    Pfahrzeug[slot][playerid][Besitzer],slot,Pfahrzeug[slot][playerid][modelid],Pfahrzeug[slot][playerid][posx],Pfahrzeug[slot][playerid][posy],Pfahrzeug[slot][playerid][posz],Pfahrzeug[slot][playerid][posa],Pfahrzeug[slot][playerid][Interior],Pfahrzeug[slot][playerid][VirtualWorld]);

  • Beitrag von CaZe ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen