[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
  • Versuchs mal so:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/sh", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid, 0xFF8000FF, "Hier steht dann dein Text");
    SetPlayerPos(playerid, 384.808624, 173.804992, 1008.382812);
    SetPlayerInterior(playerid, 3);
    return 1;
    }
    return 0;
    }

    • format und string entfernt, da in obigem Code unnötig
    • SetPlayerPos ergänzt

  • Danke, hat mir schon weitergeholfen, aber warum geht das nicht wenn ich den Befehl /sh eingebe? Ich möchte doch nur ein Stadthallen Interior. :( Sorry wenn ich mich so blöd anstelle.

  • Hey,
    habe mal nach langer Zeit wieder an meinem Script gearbeitet.. Jetzt habe ich das Problem, dass ich bei "/flock" ( Fraktionsfahrzeuge abschließen / aufschließen ), dass ich die Fahrzeuge nur aufschließen kann, aber nicht abschließen..


    Code.
    ocmd@3:flock,fclock,fcarlock(playerid,pa[])
    {
    new i,p;
    if(Spieler[playerid][Fraktion] <= 0)return SendClientMessage(playerid,Rot,"Du bist in keiner Fraktion!");

    new vehid = GetNearest_Vehicle(playerid,7);
    if(vehid != -1)
    {
    for(i = 0; i<sizeof(PresiVehs); i++)
    {
    if(Spieler[playerid][Fraktion] == 1)
    {
    if(FCarlock[vehid] == 1)
    {
    FCarlock[vehid] = 0;
    for(p = 0; p<MAX_PLAYERS; p++)SetVehicleParamsForPlayer(vehid,p,0,0);continue;
    }
    else if(FCarlock[vehid] == 0)
    {
    FCarlock[vehid] = 1;
    for(p = 0; p<MAX_PLAYERS; p++)SetVehicleParamsForPlayer(vehid,p,0,1);continue;

    }
    }
    }
    }
    return 1;
    }


    Was ist falsch beim Code?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • //edit: Habs geschafft trotzdem danke


    Hab noch ein Problem...
    new failme[300];
    #define SendFail(%0,%1,%2) format(failme,sizeof(failme),"{BB0000}[SAHG-Fehler]{FFFFFF}: %s",%1,%2),SendClientMessage(%0,0xFFFFFFFF,failme)


    Wenn ich jetzt nichts mitgeben will ist ja klar, dass es eine falsche Syntax ist.
    Wie kann ich das umgehen?


    L.G.

  • Gar nichts, das ist ja das Problem.

    Hmm, habs grad selbst aufm Homeserver getestet, und es ging.
    Hast du eventuell 2 "OnPlayerCommandText" publics?
    Teste es mal in einem leeren Script.
    Ersetze dann
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
    // Do something here
    return 1;
    }
    return 0;
    }durch
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/sh", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid, 0xFF8000FF, "Hier steht dann dein Text");
    SetPlayerPos(playerid, 384.808624, 173.804992, 1008.382812);
    SetPlayerInterior(playerid, 3);
    return 1;
    }
    return 0;
    }Dann sollte eigentlich alles gehen.

  • Martey


    Versuch es mal mit OCMD



    oben im script:
    #include <ocmd>
    Und ganz unten kannst du dann einen Befehl machen:


    ocmd:sh(playerid,params[])
    {
    SendClientMessage(playerid, 0xFF8000FF, "Du bist in die Stadthalle gegangen!");
    SetPlayerPos(playerid, 384.808624, 173.804992, 1008.382812);
    SetPlayerInterior(playerid, 3);
    return 1;
    }


    MFG

    Mit freundlichen Grüßen
    [color=#696969][i][b]Maxi
    [tabmenu]
    [tab='Signatur!']

    [tab='Mein Computer System']

    • Gehäuse Delux SH891 Midi-Tower (ATX) schwarz
    • Netzteil 650 Watt Corsair VS650
    • Festplatte 1000GB SATA III 7200upm
    • Mainboard AM3 Gigabyte GA-970A-UD3P (Chipsatz:AMD 970/SB950/ATX)
    • NVIDIA Geforce GTX 770 Gainward Phantom
    • 8192MB DDR3 Single Channel 1600MHz
    • Prozessor AM3+ (FX-Serie) AMD FX-8350 8x 4.0 GHz


    [tab='Meine Handys']

    • HTC ONE M8
    • Samsung S3 mini
    • Vll bald HTC ONE M7


    [tab='Mein Steam Account = 1']

  • Hey,
    habe mal nach langer Zeit wieder an meinem Script gearbeitet.. Jetzt habe ich das Problem, dass ich bei "/flock" ( Fraktionsfahrzeuge abschließen / aufschließen ), dass ich die Fahrzeuge nur aufschließen kann, aber nicht abschließen..


    Code.
    ocmd@3:flock,fclock,fcarlock(playerid,pa[])
    {
    new i,p;
    if(Spieler[playerid][Fraktion] <= 0)return SendClientMessage(playerid,Rot,"Du bist in keiner Fraktion!");

    new vehid = GetNearest_Vehicle(playerid,7);
    if(vehid != -1)
    {
    for(i = 0; i<sizeof(PresiVehs); i++)
    {
    if(Spieler[playerid][Fraktion] == 1)
    {
    if(FCarlock[vehid] == 1)
    {
    FCarlock[vehid] = 0;
    for(p = 0; p<MAX_PLAYERS; p++)SetVehicleParamsForPlayer(vehid,p,0,0);continue;
    }
    else if(FCarlock[vehid] == 0)
    {
    FCarlock[vehid] = 1;
    for(p = 0; p<MAX_PLAYERS; p++)SetVehicleParamsForPlayer(vehid,p,0,1);continue;

    }
    }
    }
    }
    return 1;
    }


    Was ist falsch beim Code?


    + Bekomme bei meinem Server immer folgendes:

    Zitat

    HSA ERROR: Entries set too low!


    Weiß einer warum das kommt?

  • Weiß einer warum das kommt?


    Versuchs mal so:


    ocmd@3:flock,fclock,fcarlock(playerid,pa[])
    {
    if(Spieler[playerid][Fraktion] <= 0)return SendClientMessage(playerid,Rot,"Du bist in keiner Fraktion!");
    new vehid = GetNearest_Vehicle(playerid,7);
    if(vehid == -1 || Spieler[playerid][Fraktion] != 1) return 1;
    if(FCarlock[vehid] == 1) {
    FCarlock[vehid] = 0;
    for(new p; p<MAX_PLAYERS; p++) if(IsPlayerConnected(p)) SetVehicleParamsForPlayer(vehid,p,0,0);
    } else if(!FCarlock[vehid]) {
    FCarlock[vehid] = 1;
    for(new p; p<MAX_PLAYERS; p++) if(IsPlayerConnected(p)) SetVehicleParamsForPlayer(vehid,p,0,1);
    }
    return 1;
    }


    //Edit: Wofür brauchste die Schleife mit der Variable i? macht doch keinen Sinn :D


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

    2 Mal editiert, zuletzt von Kaliber ()


  • Aber wie kann ich dann machen, dass Fraktion 1 nur Fahrzeuge von Fraktion 1 öffnen / schließen kann und Fraktion 2 genau so?


    PS: Klappt immer noch nicht, kann es immer noch nur aufschließen, aber nicht zuschließen


    Klappt jetzt doch ;)
    Danke dir!

    Mit freundlichen Grüßen
    ErikSon



    Scripte kleine Systeme auf Anfrage umsonst!
    Per PN könnt ihr mir gerne Scriptingfragen stellen.

    3 Mal editiert, zuletzt von ErikSon ()