Nützliche Codeschnipsel

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
  • @Shukaz


    ich würd noch toggleplayercontrollable reinmachen, was dein hieße,
    if(strcmp("/afk", cmdtext, true) == 0)
    {
    SetPlayerPos( X,Y,Z); // koordinaten
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid, COLOR_YELLOW, "Du bist nun Afk!");


    return 1;
    }
    if(strcmp("/re", cmtext, true) == 0)
    {
    SetPlayerPos( X,Y, Z); //koordinaten
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid, COLOR_YELLOW, "Du bist zurück!");
    return 1;
    }

    526C4Hj.png Mit freundlichen Grüßen,
    Noneatme

  • naja wenn man dasnn irgendwo hingeportet wird beim /afk das find ichn bissn komisch..

  • new InvalidNames[][] = {
    "DerName", //
    "DerName2", //Kann man immer wieder kopieren um mehrere zu nutzen
    };



    Unter OnPlayerConnect
    GetPlayerName(playerid, pName, sizeof(pName));
    for(new i = 0; i < sizeof(InvalidNames); i++)
    {
    if(!strcmp(pName, InvalidNames[i], true))
    {
    Ban(playerid); // Man kann auch Kick nehmen..
    }
    }

  • Wenn ich mich nicht irre funktioniert das nicht, weil er ja vor dem connecten kein Rcon-Admin ist --> er wird gekickt


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Meine 1. Funktionen :thumbup: .
    Ungetestet.

    stock Freeze(playerid) // Freezed einen Spieler.
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i)) TogglePlayerControllable(playerid, false);
    }
    }
    stock unFreeze(playerid) // Unfreezed einen Spieler.
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i)) TogglePlayerControllable(playerid, true);
    }
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • F..FA..
    Wrong!


    Für was den 'playerid' Parameter wenn du eh alle User freezen bzw. unfreezen willst? ;P

  • So passts


    stock Freeze(playerid) // Freezed einen Spieler.
    {
    if(IsPlayerConnected(playerid))
    {
    TogglePlayerControllable(playerid, 0);
    }
    }
    stock unFreeze(playerid) // Unfreezed einen Spieler.
    {
    if(IsPlayerConnected(playerid))
    {
    TogglePlayerControllable(playerid, 1);
    }
    }


    Man brauch da keine schleife

  • strinsert(string[],insert[],iStart)
    {
    for(new i = (strlen(string)-1);i>=iStart;i--)string[i+strlen(insert)] = string[i];
    new count = 0;
    while(count < strlen(insert))
    {
    string[iStart] = insert[count];
    iStart++;
    count++;
    }
    return 1;
    }


    Einen Textteil in einen anderen Textteil einfügen ohne die bestimmten Stellen zu überschrieben


    • string[] - Das Ziel
    • insert[] - Teil der eingefügt werden soll
    • iStart - an welcher Stelle eingefügt werden soll


    Beispiel


    new nname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,nname,sizeof nname);
    strinsert(nname,"[AFK]",0);

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Ein Befehl um die Camera Position zu Speichern in der ihr gerade seit.
    Selber geschrieben und nur R5 Compatibel^^.
    if (strcmp("/savecpos", cmdtext, true, 10) == 0)
    {
    new string[256];
    new Float:x, Float:y, Float:z;
    GetPlayerCameraPos(playerid, x, y, z);
    fcreate("cameraposition.txt");
    new File:pos=fopen("cameraposition.txt", io_append);
    SendClientMessage(playerid, 0xAA3333AA,"Camera Position is saved in cameraposition.txt");
    format(string, 256, "SetPlayerCameraPos(playerid, %f, %f, %f, %f, 0,0,0,0,0,0);", x, y, z);
    fwrite(pos, string);
    fclose(pos);
    return 1;
    }
    Das nach oben
    forward fcreate(filename[]);
    Und das einfach ganz nach unten ins Script:
    public fcreate(filename[])
    {
    if (fexist(filename)){return false;}
    new File:fhandle = fopen(filename,io_write);
    fclose(fhandle);
    return true;
    }




    Viel Spass !

  • weiß ich nun auch ^^.
    einfaches
    fcreate(filename[])
    reicht auch ^^.

  • Das kann doch gar nicht gehen, weil vier parameter eingefügt werden, aber nur 3 angegeben sind
    Meineswissens müsste es so gehen :


    format(string, 256, "SetPlayerCameraPos(playerid, %f, %f, %f, 0,0,0,0,0,0);", x, y, z);


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • So ist es korrekt:



    if (strcmp("/savecpos", cmdtext, true, 10) == 0)
    {
    new string[256];
    new Float:x, Float:y, Float:z;
    GetPlayerCameraPos(playerid, x, y, z);
    fcreate("cameraposition.txt");
    new File:pos=fopen("cameraposition.txt", io_append);
    SendClientMessage(playerid, 0xAA3333AA,"Camera Position is saved in cameraposition.txt");
    format(string, 256, "SetPlayerCameraPos(playerid, %f, %f, %f,);", x, y, z);
    fwrite(pos, string);
    fclose(pos);
    return 1;
    }


  • do.de - Domain-Offensive - Domains für alle und zu super Preisen