Ressourcen

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
  • Also wäre es so perfekt ?:


    new Paintball[MAX_PLAYERS],
    Paintballstart = 0,
    Meistekills = 0,
    HatKills[MAX_PLAYERS],
    Paintballpreis = 0,
    Paintballkannstarten = 0,
    gewinnername = 999,
    jackgeld = 0,
    Hatnummer[MAX_PLAYERS],
    Kannlottokaufen,
    bool:GibtGas[MAX_PLAYERS],
    durchsuchen[MAX_PLAYERS][9],
    hatpark[MAX_PLAYERS],
    Kannrobbe[MAX_PLAYERS],
    machtschein[MAX_PLAYERS],
    IstBiz[MAX_PLAYERS],
    Kannmitnehmen[MAX_PLAYERS],
    Hatmull[MAX_PLAYERS],
    BekommtGeld[MAX_PLAYERS];
    reinfahrentrucker[MAX_PLAYERS],
    mProdukt[MAX_PLAYERS],
    Kartons[MAX_PLAYERS];
    Truckfahren[MAX_PLAYERS],
    Anfangsmission[MAX_PLAYERS],
    pickuphotdog,
    pickuphotdog2,
    pickuphotdog3,
    pickuphotdog4,
    Kannblitzt[MAX_PLAYERS],
    HitSound[MAX_PLAYERS],
    Storycar[MAX_VEHICLES],
    Sotoryman[MAX_PLAYERS],
    checkgastimer,
    Clearaxd[MAX_PLAYERS],
    PlayerStoned[MAX_PLAYERS],
    Auftragspieler[MAX_PLAYERS],
    auftragfrei[MAX_PLAYERS],
    Swatakti = 0,
    hurending[MAX_PLAYERS],
    Geldverdienst[MAX_VEHICLES],
    gPlayerUsingLoopingAnim[MAX_PLAYERS],
    Fahrpreis[MAX_VEHICLES],
    Taxidienst[MAX_PLAYERS],
    Fahrzeugstatus[MAX_VEHICLES],
    vehicleidvonplayer[MAX_PLAYERS],
    Mundtape[MAX_PLAYERS],
    Augenbinde[MAX_PLAYERS],
    Holzfahrzeug[MAX_PLAYERS],
    Holzfahrzeug2[MAX_PLAYERS],
    Float:Baumxdx2[MAX_PLAYERS],
    Float:Baumxdy2[MAX_PLAYERS],
    Float:Baumxdz2[MAX_PLAYERS],
    Float:Baumxdx[MAX_PLAYERS],
    Float:Baumxdy[MAX_PLAYERS],
    Float:Baumxdz[MAX_PLAYERS],
    reinfahrenvomholz[MAX_PLAYERS],
    reinfahrenvomholz2[MAX_PLAYERS],
    Bohrer,
    Kannaufnehmenxd[MAX_PLAYERS],
    Geldsack1,
    Geldsack2,
    Geldsack3,
    Geldsack4,
    Bankrobabladenxd[MAX_PLAYERS],
    porten[MAX_PLAYERS],
    MakesBankrob[MAX_PLAYERS],
    HatGeldsack[MAX_PLAYERS];

  • Aber wenn ich es so brauche brauche ich ja ewig das alles umzuschreiben oder nicht?


    und ein perfekter befehl sollte dann so aussehen?


    dcmd_ban(playerid,params[])
    {
    new pID;
    new Grund[128];
    new aname[MAX_PLAYER_NAME];
    if(sscanf(params,"us",pID,Grund)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /ban [playerid][Grund]");
    if(!SInfo[playerid][pAdmin] >= 2) return SendClientMessage(playerid,COLOR_WHITE,"Du bist kein Admin!");
    new string[128];
    SendClientMessage(playerid,COLOR_RED,"Du hast den Spieler gebannt!");
    GetPlayerName(pID, aname, sizeof(aname));
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string,sizeof(string),"[JunkBuster] Admin %s hat Spieler %s gebannt! Grund: %s",pname,aname,Grund);
    SendClientMessageToAll(COLOR_RED,string);
    SInfo[pID][pBan] = 1;
    Kick(pID);
    return 1;
    }

  • Womit du am schnellsten dein skript optimierst ist wenn du MAX_PLAYERS deiner Slotanzahl anpasst


    #undef MAX_PLAYERS
    #define MAX_PLAYERS Wert


    da wofür 500 Tellen benutzen bei einem array oder alle 500 Spieler durchgehen wenn diese niemals connecten/ auf den Server können wenn der Server 50 Slots hat.


    Was auch viel Memory spart ist die verwendung von Bit-Arrays


    am besten schaust du dir mal das an


    http://forum.sa-mp.com/showthread.php?t=57018

  • dcmd_aufbohren(playerid,params[])
    {
    #pragma unused params
    if(IsPlayerInRangeOfPoint(playerid, 20.0,146.0983,174.1579,484.5328))
    {
    if(BankrobZeit == 0)
    {
    if(SInfo[playerid][pBohrer] == 1)
    {
    BankrobZeit = 1;
    SInfo[playerid][pBohrer] = 0;
    SendClientMessage(playerid, COLOR_WHITE, "Der {D70000}Bohrer {F0F0F0}braucht ca. {D70000}3 Minuten {F0F0F0}bis das Schloss {D70000}geknackt {F0F0F0}ist!");
    Bohrer = CreateObject(2985, 145.91389, 174.09129, 483.23419, 0.00000, 0.00000, 90.00000);
    HatGeldsack[playerid] = 0;
    SetTimer("BohrTimer",1000*60,0);
    SetTimer("Komplettesende",1000*120*15,0);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop(i))
    {
    SendClientMessage(i,COLOR_RED,"HQ: Achtung: Der Banktresor wird aufgebohrt!!");
    SendClientMessage(i,COLOR_RED,"HQ: Verbrechen: Aufbrechen vom Tresor/Bankrob, Gesuchter: Nicht bekannt!");
    SendClientMessage(i,COLOR_RED,"HQ: Alle Einsatzkräfte zur Bank!");
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst dir zuerst einen Bohrer am Schwarzmarkt kaufen!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Bankrobs sind nur alle 120 Minuten möglich!");
    }
    }


    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht in der Nähe der Bank!");
    }
    return 1;
    }


    Ja wäre dieses beispiel nun falsch oder richtig? Ich mein vom aufbau her... ich kann nur dcmd ^^

  • Du kannst ocmd oder dcmd verwenden, sind aber nur ms unterschied.


    Zwischen ocmd und dcmd ist schon mehr als nur ein paar sekunden unterschied.


    Die agieren komplett unterschiedlich.
    Insgesammt ist aber beides Schrott :D

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Und wie schreibe ich am besten die ganzen befehle?


    Du benutzt zum ersten ein vernünftigen Commandprozessor , wenn du konstante werte weißt solltest du diese auch benutzen und was den CPU schohnt ist wenn du
    direkt beim verbinden den namen ausließt da du bestimmt den Namen in deinem Enum als string enthalten hast.



    Commandprozessoren: pcmd, zcmd, ycmd oder die CMDProzessor-Plugins.


  • Naja, ne..
    Dafür kann man auch GetMaxPlayers benutzen ^^