Nützliche Codeschnipsel

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Kleine GetDistanceBetweenPlayers Funktion, die ich letztens für ein kleines Testscript geschrieben hab. :>
    Float:getDistanceBetweenPlayers(player1, player2);
    Float:getDistanceBetweenPlayers(player1, player2) {
    new Float:Pos[2][3];
    GetPlayerPos(player1, Pos[0][0], Pos[0][1], Pos[0][2]);
    GetPlayerPos(player2, Pos[1][0], Pos[1][1], Pos[1][2]);
    new Float:distance = floatsqroot(
    (Pos[0][0] - Pos[1][0]) * (Pos[0][0] - Pos[1][0]) +
    (Pos[0][1] - Pos[1][1]) * (Pos[0][1] - Pos[1][1]) +
    (Pos[0][2] - Pos[1][2]) * (Pos[0][2] - Pos[1][2])
    );
    return distance;
    }

  • dcmd_a(playerid,params[])return dcmd_admin(playerid,params);
    ist eine einfache Möglichkeint, bei dcmd einen Command doppelt zu vergeben.
    /a und /admin bewirken jetzt das gleiche.

  • stock kmh(Float:px,Float:py,Float:pz,Float:oldx,Float:oldy,Float:oldz)return floatround(floatsqroot(floatpower(floatabs(floatsub(px,oldx)),2)+floatpower(floatabs((floatsub(py,oldy)),2)+floatpower(floatabs(floatsub(pz,oldz)),2)))*11000/3200);
    Gibt die Geschwindigkeit zurück, px,py und pz sind die Positionen des Spielers, oldx, oldy und oldz die Positionen vor einer Sekunde. Ungetestet

  • ColorToHex(r,g,b,a)return((r & 0xff) << 24)| ((g & 0xff) << 16) | ((b & 0xff) << 8) | (a & 0xff);


    Wandelt Rot-Grün-Blau-Transparenz sprich RGBA Farbcode in Hex um...


    Anwendung...


    SendClientMessage(playerid,ColorToHex(255,0,0,210),"Rot mit Transparenz Grad");


    Viel Spaß :>

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • 2high4me :(
    kannst du auch HexToColor oder so, also dass dabei ein array rauskommt color[4] ?

  • new Float:zzP[MAX_PICKUPS][3];
    stock createPickupEx(zz1,zz2,zz3,zz4,zz5,zz6,zz7=-1)
    {
    new zz7=CreatePickup(zz1,zz2,zz3,zz4,zz5,zz6,zz7);
    zzP[zz7][0]=zz3;
    zzP[zz7][1]=zz4;
    zzP[zz7][2]=zz5;
    return zz7;
    }
    stock getPickupPos(zz1)return zzP[zz1];
    #define CreatePickup createPickupEx
    new Float:pickup_position[3]=getPickupPos(pickupid);

  • stock GivePlayerHealth(playerid, Float:health)
    {
    new Float:Current;
    GetPlayerHealth(playerid, Current);
    if((Current)+(health) > 100) return SetPlayerHealth(playerid, 100);
    SetPlayerHealth(playerid, ((Current)+(health)));
    return 1;
    }


    Funktion, um einen Spieler das Leben hinzuzufügen oder abzuziehen.
    Beispiel: "GivePlayerHealth(playerid, 25.0);

  • Anti Godmode


    forward CheckFuckinHealth();
    public CheckFuckinHealth()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue;
    new Float:health;
    GetPlayerHealth(i,health);
    SetPlayerHealth(i,health+1);
    if(health!=health+1)Kick(i); // Hack
    SetPlayerHealth(i,health-1);
    }
    return 1;
    }


    Unter OnGameModeInit


    Pawn-Quelltext
    SetTimer("CheckFuckinHealth",1000,1);


    Spieler kriegt einmal mehr Health , kann der nicht gesetzt werden wird es als Hack erkannt


    Vllt hilft es irgendwann jemanden oder so


    Aso und was mich noch nervt immer eine neue Variable für GetPlayerHealth zu erstellen...

    forward Float:GetPlayerHealthEx(playerid);
    Float:GetPlayerHealthEx(playerid)
    {
    new Float:hhx;
    GetPlayerHealth(playerid,hhx);
    return hhx;
    }


    For Example
    SetPlayerHealth(playerid,GetPlayerHealthEx(playerid)+0.15);

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


    Einmal editiert, zuletzt von BlackFoX ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hmm...ich glaub das funktioniert nicht ganz...
    Nach der Logik her, müsstest du das Health, nachdem du es um 1 erhöht hast, nochmal mit einer anderen Variablen "getten". Sonst macht es nähmlich bei einem Spieler mit 80 HP:
    if(80 != 81) Kick(i);


    Aso, kleiner Schreibfehler: Floath:


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • Definitionen...



    enum mover{
    object_model,
    Float:mX,
    Float:mY,
    Float:mZ,
    Float:rX,
    Float:rY,
    Float:rZ,
    Float:dX,
    Float:dY,
    Float:dZ,
    Float:distanz,
    Float:speedx,
    statex,
    obj_id}


    new objekte[][mover] = {
    {model,x,y,z,rx,ry,rz,move x,move y,move z,0,-1}
    };


    OnGameModeInit


    for(new i = 0;i<sizeof(objekte);i++)objekte[i][obj_id] = CreateObject(objekte[i][object_model],objekte[i][mX],objekte[i][mY],objekte[i][mZ],objekte[i][dX],objekte[i][dY],objekte[i][dZ]);


    Kommando

    if(!strcmp(cmdtext,"/move"))
    {
    for(new j = 0;j<sizeof(objekte);j++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,objekte[j][distanz],objekte[j][mX],objekte[j][mY],objekte[j][mZ]))continue;
    if(!objekte[j][statex])
    {
    objekte[j][statex] = 1;
    MoveObject(objekte[j][obj_id],objekte[j][dX],objekte[j][dY],objekte[j][dZ],objekte[j][speedx]);
    }
    else
    {
    objekte[j][statex] = 0;
    MoveObject(objekte[j][obj_id],objekte[j][mX],objekte[j][mY],objekte[j][mZ],objekte[j][speedx]);
    }
    }
    return 1;
    }


    Die Objekte selber eintragen nach dem Muster...


    Code
    Model, X,Y,Z,RX,RY,RZ,Bewegen Nach X,Bewegen Nach Y,Bewegen Nach Z,Abstand zum Objekt,Geschwindigkeit
    danach Statex auf 0 & Objekt ID auf -1 das wars.


    So könnt ihr mit Move alle Objekte bewegen sprich ihr könnt immer den gleichen Befehl verwenden & die Objekte bewegen sich in bestimmter Distanz
    sie können geöffnet & geschlossen werden immer der gleiche Befehl...

    Mfg. BlackFoX_UD_ alias [BFX]Explosion