[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
  • Hi,
    ich habe ein Problem und komme schon seit gestern nicht weiter .


    Und zwar will ich ein Filterscript erstellen wo ich /schutz schreibe dann kommen die Gefängnis - Gitter neben mir also
    Vorne Hinten Links und Rechts. Also wenn mich jetzt z.b. einer mit der Deagle abschießen will kann ich /schutz schreiben und die Gitter sind neben mir, vor und hinter.


    Ja jetzt möchte ich das ihr vllt machen könnt das der Gitter neben mir und vor, hinter mir ist.
    Hier ist der Script. Ja sicherlich ist da was falsch deswegen brauch ich eure hilfe.


    public OnPlayerCommandText(playerid, cmdtext[]){
    if (strcmp("/schutz", cmdtext, true, 10) == 0)
    {
    new Float:X, Float:Y, Float:Z;

    GetPlayerPos(playerid, X, Y, Z);
    AttachObjectToPlayer(o1, playerid, X, Y, Z, 0, 0, 0);
    AttachObjectToPlayer(o2, playerid, X, Y, Z, 0, 0, 0);
    AttachObjectToPlayer(o3, playerid, X, Y, Z, 0, 0, 0);
    AttachObjectToPlayer(o4, playerid, X, Y, Z, 0, 0, 0);


    o1 = CreateObject(2930, X+1, Y+1, Z+1, 0, 0, 150); // Vorne
    o2 = CreateObject(2930, X-1, Y+1, Z+1, 0, 0, 150); // Hiten
    o3 = CreateObject(2930, X-1, Y+1, Z+1, 0, 0, 0); // Links
    o4 = CreateObject(2930, X-1, Y+1, Z+1, 0, 0, 359.75); // Rechts
    return 1;
    }
    return 0; }
    Ja wie gesagt ich möchte das es neben mir ist und wenns jetzt Links ist das es auch in der Richtung ist.


    Und könntet ihr mir noch helfen also wenn ich lauf das es mit mir lauft also das es an mir hängt.
    Deswegen habe ich Attach gemacht.

    Veröffentlichte Scripts:


    HEODM Gamemode

  • Wie kann man einen Textdraw "Unterstreichen" ?

    Falls noch nicht gelöst:
    Mach einfach einen Unterstrich: _______


    Wie kann man ne Filterscript erstellen?^^

    Falls noch nicht gelöst:
    Alles so lassen wie es ist nur die defines oben entfernen und OnFilterScript benutzen für OnGameModeInit



    Falls noch nicht gelöst:
    New Float:Money; hast du es so gemacht?



  • das geht hier nicht so einfach da strok den string hier splittet.
    Daher musst du den string so gesehen insgesamt auseinandernehmen und nochmal zusammensetzen
    ich hab die variante , welche man vom gf kennt mal bissle um strukturiert.
    EOS bedeutet End of String falls dich das zusätzlich interessiert,



    if(!strcmp(cmd, "/say", true, 4))
    {
    if(strlen(cmd) > 6)return SendClientMessage(playerid,-1,"/say [text]2");
    new length = strlen(cmdtext);
    for(; idx < length; idx++)if(cmdtext[idx] <= ' ')break;
    new offset = idx, result[64],string[128];
    for(; (idx < length) && ((idx - offset) < (sizeof(result) - 1)); idx++)result[idx - offset] = cmdtext[idx];
    result[idx - offset] = EOS;
    format(string,128,"*Admin: %s",result);
    SendClientMessageToAll(-1,string);
    return 1;
    }


    die 4 habe ich extra stehen lassen das du da einen zusammenhang mit der 6 erkennen kannst.


    du kannst das ganze auch mit sscanf machen.


    if(!strcmp(cmdtext, "/say2", true, 5))
    {
    new tmp[128],string[144];
    if(sscanf(cmdtext[6],"s[128]",tmp))return SendClientMessage(playerid,-1,"/say [text]");
    format(string,144,"*Admin: %s",tmp);
    SendClientMessageToAll(-1,string);
    return 1;
    }


    aber letztendlich ist die beste Lösung sscanf und einen vernünftigen commandprozessor zu verwenden wie zcmd , ycmd oder was du hast bcmd.
    Da man ja auch Ressourcen schonen möchte.

  • 5 Errors:


    C:\Users\Lasse\Desktop\Selfmade1\gamemodes\selfmade.pwn(27973) : error 004: function "IsAFBIwagen" is not implemented
    C:\Users\Lasse\Desktop\Selfmade1\gamemodes\selfmade.pwn(27975) : error 028: invalid subscript (not an array or too many subscripts): "playerid"
    C:\Users\Lasse\Desktop\Selfmade1\gamemodes\selfmade.pwn(27975) : warning 215: expression has no effect
    C:\Users\Lasse\Desktop\Selfmade1\gamemodes\selfmade.pwn(27975) : error 001: expected token: ";", but found "]"
    C:\Users\Lasse\Desktop\Selfmade1\gamemodes\selfmade.pwn(27975) : error 029: invalid expression, assumed zero
    C:\Users\Lasse\Desktop\Selfmade1\gamemodes\selfmade.pwn(27975) : fatal error 107: too many error messages on one line


    Hier die Zeilen:


    if(IsAFBIwagen(newcar))
    {
    if (SpielerInfo[playerid][Member] == 17 || SpielerInfo[playerid[Leader] == 17)
    {
    }
    else
    {
    if (State == PLAYER_STATE_PASSENGER)
    {
    }
    else if(State == PLAYER_STATE_DRIVER)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_WHITE, " Du bist kein Mitglied des FBIs! ");
    return 1;
    }
    }
    }


    Was ist hier falsch? 8|