Beiträge von ...

    Ok. Beispiel: Du willst eine join und leave Message. Dazu brauchst du einen String mit min. 17 Parzellen für den Usernamen. Und wahrscheinlich noch rund 20 für Meldung "%s hat den Server betreten.". So, also nimmst du einen String mit 37 Parzellen und füllst ihn dann. Dies geschieht per format(string, sizeof(string), "Stringtext + Variable", Variablenname);. Dann ist der String gefüllt, und muss nurnoch gesendet werden. Dazu nimmst du einfach einen TextDraw, SendClientMessage, GameTextForPlayer o.Ä. her.

    Es ist ressourcenschonender wenn man die Strings nur so groß macht wie man sie braucht. So braucht man zum Beispiel NIEMALS einen String mit 256 Parzellen weil in SA:MP nur 128 möglich sind.

    LoL,


    Erstmal: Warum das "!" bei "strcmp", du willst doch dass man den Cmd hernimmt oder etwa nicht?


    Zweitens: Weapon wird nicht benutzt. Statt
    format(string3, sizeof(string3), "%s Weapon!", waffe);


    Einfach das hier:
    format(string3, sizeof(string3), "%s Weapon!", weapon);


    Und statt dem zweiten "SendClientMessage" das hier:
    SendClientMessage(playerid, COLOR_RED, string3);

    What a Statement.


    Natürlich spielt die Internet Verbindung eine große Rolle. Du kannst ja auch nicht von einem 56kb/s Modem erwarten dass es Files von 2 GB in unter 20 Stunden downloadet.

    Zum Beispiel


    if(strcmp("/m4", cmdtext, true) == 0)
    {
    if(GetPlayerMoney(playerid) >= 5000)
    {
    GivePlayerWeapon(playerid, 31, 500);
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000FF, "Du hast zuwenig Geld!");
    return 1;
    }
    return 1;
    }

    Da hat ein Freund von mir ein DM Script mit genau dem Problem gehabt.


    Füg einfach if(GetPlayerMoney(playerid) >= X) //X=Geldbetrag hinzu.

    Der Cmd für Kitarou:


    Für GF:
    if(strcmp(cmd, "/admininsel", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    SetPlayerPos(playerid, X, Y, Z); //Coords einfügen.
    return 1;
    }
    }


    Für alles andere:
    if(strcmp("/admininsel", cmdtext, true, 10) ==0) {
    SetPlayerPos(playerid, X, Y, Z);
    return 1;
    }

    Und das ganze jetzt mal als Pawno Code:


    Als erstes zu den anderen "new"
    new eingang;


    Dann unter OnGameModeInit:
    DisableInteriorEnterExits();

    Auch noch unter OnGameModeInit:
    eingang = CreatePickup(1239, 2, X, Y, Z); // Die 1239 ist die Pickup ID, die 2 ist der Typ des Pickups


    Dann suchst du dir "OnPlayerPickUpPickup"
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == eingang)
    {
    SetPlayerPos(playerid, X, Y, Z); //Der Ort wo der User hinteleportiert wird wenn er das Pickup "eingang" betritt
    SetPlayerInterior(playerid, InteriorID); //Immer das Interior dazu angeben, sonst sieht man nichts
    }
    return 1;
    }

    Ja, aber wenn du es in einen Gamemode der kein GF ist kopierst, wirst du mächtig viele Errors bekommen á la: XXXXX is not defined.

    Ganz einfach:


    if(strcmp("/destroyme", true, 10) ==0)
    {
    new auto1;
    GetPlayerVehicleID(playerid);
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    DestroyVehicle(auto1);
    CreateExplosion(6,10, x, y, z);
    return 1;
    }