2 kleine Befehle für editiertes GF

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 2 Befehle, die bei mir nicht so gehen, wie sie sollen
    Zum einen wäre das /nuke


    if(strcmp(cmd, "/nuke", true) == 0)
    {
    new boom[128];
    boom = strtok(cmdtext, idx);
    if(PlayerInfo[playerid][pAdmin] >= 1337)
    {
    if(!strlen(boom) || !isNumeric(boom))
    {
    return SendClientMessage(playerid,COLOR_GRAD2,"Verwendung: /nuke [playerID]");
    }
    else
    {
    new playa;
    new health;
    playa = ReturnUser(tmp);
    health = 0;
    if(IsPlayerConnected(playa))
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playa,Float:x,Float:y,Float:z);
    CreateExplosion(Float:x,Float:y,Float:z,0,50);
    ConsumingHP[playa] = 1; SetPlayerHealth(playa, health);
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Diesen Spieler gibt es nicht!");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    return 1;
    }
    Da soll der ausgewählte Spieler eben explodieren und dann sofort sterben (Wenn er nur explodiert überlebt er ja)


    Und dann /gravity
    Funktioniert an sich, aber man kann nur ganze Zahlen wählen
    0.008 z.b. wird zu 0


    if(strcmp(cmd,"/gravity",true)==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] < 1337)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dir ist es nicht erlaubt diesen Befehl zu benutzen!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /gravity [Zahl]");
    return 1;
    }
    new Float:gravity;
    gravity = strval(tmp);
    SetGravity(gravity);
    format(string, sizeof(string), "* Schwerkraft wurde zu %f geändert.",gravity);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    return 1;
    }


    Help pls :thumbup:

    4 Mal editiert, zuletzt von Meta ()

  • zum ersten das zweite hab ich nich ganz verstanden



    if(strcmp(cmd, "/nuke", true) == 0)
    {
    new boom[128];
    bom = strtok(cmdtext, idx);
    if(PlayerInfo[playerid][pAdmin] >= 1337)
    {
    if(!strlen(boom) || !isNumeric(boom))
    {
    return SendClientMessage(playerid,COLOR_GRAD2,"Verwendung: /nuke [playerID]");
    }
    else
    {
    new playa;
    new health;
    playa = ReturnUser(tmp);
    health = 0;
    if(IsPlayerConnected(playa))
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playa,Float:x,Float:y,Float:z);
    CreateExplosion(Float:x,Float:y,Float:z,0,50);
    ConsumingHP[playa] = 1; SetPlayerHealth(playa, health);
    SetPlayerHealth(playerid,0);
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Diesen Spieler gibt es nicht!");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    return 1;
    }

    RFT

  • CreatePickup(1212, 1, x45,y45,z45-0.5); <-- Probir das mahr so

  • @ Blitz:
    So war das doch vorher xD So gehts aber nicht
    -1 heißt in allen Virtuellen Welten


    @ Julian:
    Öhh, ja, aber ich hab immernoch das Problem, dass dransteht "Diesen Spieler gibt es nicht" Obwohl es mich gibt xD


    Für dich nochmal das 2.
    /gravity funktioniert eigentlich, aber man kann nur 0, 1, 2 usw machen
    Zahlen wie 0.008, 0.78 oder was auch immer gehen nicht
    bei 0.008 wird 0 benutzt, bei 1.2345... 1, also immer nur die Zahl vorm Komma =(
    also /gravity 0.008 = /gravity 0
    /gravity 0.12345 = /gravity 0


    Und genau das will ich weg haben
    Muss ich da was ähnliches wie strval machen, nur eben für Kommazahlen?

    2 Mal editiert, zuletzt von Meta ()

  • Das mit der Gravity denke ich, liegt daran:


    Du hast
    new Float:gravity;
    gravity = strval(tmp);



    Zwar ist "gravity" ein Floatwert,doch er macht bei "strval" folgendes:
    > strval can be used to convert a string to an integer. D.h. er macht einen Ganzzahlenwert, wie 1.


    Lösung:
    floatstr
    Convert a string to it's rightful float value.
    Bsp:
    new Float:fFloat = floatstr("124.34");

  • Wenn ich jetzt aber "new Float:fFloat = floatstr("124.34"); " mach, muss ich fFloat durch gravity erstetzen?
    Und was ist mit 124.34?
    Zeig mal pls wie ich das jetzt bilden muss xD

    ...
    new Float:gravity;
    gravity = strval(tmp);
    SetGravity(gravity);
    format(string, sizeof(string), "* Schwerkraft wurde zu %f geändert.",gravity);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    ...


    BTW: Das mit den Pickups hat sich erledigt :D

  • Das mit Gravity hat sich erledigt
    Jetzt fehlt nurnoch /nuke
    Kann da vllt auch jemand nen selbst erstellten Befehl machen?
    Weil meiner spackt irgendwie. Wenn ich online bin und "/nuke Meta" mach, kommt: "Verwendung: /nuke [SpielerID/TeildesNamens]"
    Wenn ich "/nuke 0" mach, kommt: "Dieser Spieler ist offline!"


    HELP!

    Einmal editiert, zuletzt von Meta ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Oh xD
    Ok, werd mal gucken


    EDIT:
    Jeah, es geht xD
    Also Danke an irgendjemanden, durch den ich drauf gekommen bin die 0.3 Includes zu benutzen xD
    Danke an KornChief für das /gravity Problem
    und Danke an StylerBoy für das mit /nuke


    :D

    Einmal editiert, zuletzt von Meta ()

  • Ok, hab nochmal nen Fehler xD
    /nuke geht zwar, aber es ist so:
    Einer Explodert - Alle sterben 8|
    Wasn das nu?


    if(strcmp(cmd, "/nuke", true) == 0)
    {
    new boom[128];
    boom = strtok(cmdtext, idx);
    if(PlayerInfo[playerid][pAdmin] >= 1337)
    {
    if(!strlen(boom))
    {
    return SendClientMessage(playerid,COLOR_GRAD2,"Verwendung: /nuke [playerID]");
    }
    else
    {
    new playa;
    playa = ReturnUser(boom);
    if(IsPlayerConnected(playa))
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playa,Float:x,Float:y,Float:z);
    CreateExplosion(Float:x,Float:y,Float:z,0,50);
    SetPlayerHealth(playa,0);


    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Diesen Spieler gibt es nicht!");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    return 1;
    }

  • Nönö, war alles richtig
    geht
    Ich hab nur bei ner Verknüpfung zur samp_server.exe den Pfad geändert, aber nicht den "Ausführen in" Pfad
    Daher wurde das andere Script geladen (das ältere, noch vom 0.2 Server)
    bla
    bli
    blubb
    Geht aber jetzt ^^