Beiträge von d0ma

    code stimmt soweit ;)


    if(!IsPlayerInRangeOfPoint(playerid,3,1681.5820,-2306.6919,13.5379))


    2Möglichkeiten:

    • 3 ist die Entfernung -> vll erhöhen ?
    • 1681.5820,-2306.6919,13.5379 ist die position -> überprüfen ob diese richtig ist ?


    #define MsToSeconds(%1) ((%1)/1000)

    so schwer kann das doch nicht sein das man draukommt durch 1000 zu teilen oder ?


    verwendung:
    ocmd:restart(playerid,params[])
    {
    new time,str[128];
    if(!IstSpielerAdmin(playerid,5)) return SendClientMessage(playerid,weis,"Du bist kein Projektleiter");
    if(sscanf(params,"d",time)) return SendClientMessage(playerid,weis,"/restart [TIME]");
    if(time >10000 || time < 60000) return SendClientMessage(playerid,ROT,"Du kannst nur 10000 - 60000 eingeben! (10000 entspricht 10 Sekunden!)");
    SetTimer("restart",time,0);
    format(str,sizeof(str),"Der Server wird in %d Sekunden neugestartet.",MsToSecond(time));
    SendClientMessageToAll(weis,str);
    return 1;
    }

    bei OnGameModeInit sind auch noch keine spieler da um sie der whitelist hinzuzufügen oder ?


    oder so mit AddToWhitelistByName(name[]):
    mit dem code unterhalb hast du jetzt
    AddToWhitelistByName(name[]) zum hinzufügen von Namen
    und
    AddToWhitelist(playerid) zum hinzufügen von spielern die online sind


    stock AddToWhitelistByName(name[])
    {
    new str[64];
    format(str, sizeof(str), "whitelist/%s.txt", name);
    fclose( fopen(str, io_write) );
    return 1;
    }


    stock AddToWhitelist(playerid)
    {
    new str[64];
    GetPlayerName(playerid, str, sizeof(str));
    format(str, sizeof(str), "whitelist/%s.txt", str);
    fclose( fopen(str, io_write) );
    return 1;
    }


    stock RemoveFromWhitelist(playerid)
    {
    new str[64];
    GetPlayerName(playerid, str, sizeof(str));
    format(str, sizeof(str), "whitelist/%s.txt", str);
    if(fexist(str))fremove(str);
    return 1;
    }


    stock IsOnWhitelist(playerid)
    {
    new str[64];
    GetPlayerName(playerid, str, sizeof(str));
    format(str, sizeof(str), "whitelist/%s.txt", str);
    return fexist(str);
    }

    Für den code unterhalb musst du einen ordner namens "whitelist" im "scriptfiles" ordner erstellen


    Hier das ganze kurz erklärt:
    AddToWhitelist: Datei "whitelist/Spielername.txt" anlegen
    RemoveFromWhitelist: Datei "whitelist/Spielername.txt" löschen
    IsOnWhitelist: Überprüfe ob Datei existiert, wenn ja gib 1 zurück ansonsten 0
    stock AddToWhitelist(playerid)
    {
    new str[64];
    GetPlayerName(playerid, str, sizeof(str));
    format(str, sizeof(str), "whitelist/%s.txt", str);
    fclose( fopen(str, io_write) );
    return 1;
    }


    stock RemoveFromWhitelist(playerid)
    {
    new str[64];
    GetPlayerName(playerid, str, sizeof(str));
    format(str, sizeof(str), "whitelist/%s.txt", str);
    if(fexist(str))fremove(str);
    return 1;
    }


    stock IsOnWhitelist(playerid)
    {
    new str[64];
    GetPlayerName(playerid, str, sizeof(str));
    format(str, sizeof(str), "whitelist/%s.txt", str);
    return fexist(str);
    }

    Hier geht gar nichts mehr ohne sscanf im Forum, weil sich keiner hier mit dem Bearbeiten von Texten auseinander setzt;)


    new text[] = "Beispiel|TATU|TATA";
    new string[10][20]; // hier wird alles gespeichert
    new i = 0, c = 0, d = 0;
    while(text[i] != 0 && c < sizeof(string) && (d+1) < sizeof(string[]))
    {
    if(text[i] != '|')
    {
    string[code=c][d] = text[i];
    d++;
    }
    else
    {
    c++;
    d = 0;
    }
    i++;
    }


    //Ausgabe (zum test)
    for(i = 0; i< sizeof(string); i++) printf("String[%d]: %s", i, string[i]);

    Dein Code: Wenn belegt = anziehen, wenn nicht belegt = ausziehen


    Muss aber genau andersrum sein, damit es Sinn ergibt:
    if(IsPlayerAttachedObjectSlotUsed(playerid,1))
    {
    RemovePlayerAttachedObject(playerid,1);
    SendClientMessage(playerid,Grün,"Du hast dir deine Sauerstoffmaske ausgezogen.");
    }
    else
    {
    SetPlayerAttachedObject(playerid, 1,19472, 2,0.000000,0.131999,-0.001999,-8.300000,85.999992,107.299964,0.964999,1.000000,1.000000);
    SendClientMessage(playerid,Grün,"Du hast dir deine Sauerstoffmaske angezogen.");
    }

    Das erste unterscheidet zwischen a s m bzw. d und das zweite überprüft nur ob es eins von den vieren ist(kommt drauf an was du genau machen willst)
    new inputText[10];
    if(inputtext[1] =='\0')
    {
    if(inputText[0] == 'a')
    {//addition

    }
    else if(inputText[0] == 's')
    {//subtraktion

    }
    else if(inputText[0] == 'm')
    {//multiplikation

    }
    else if(inputText[0] == 'd')
    {//division

    }
    else
    {//fehler

    }
    }
    else
    {//fehler


    }



    new inputText[10];
    if(inputtext[1] =='\0')
    {
    if(inputText[0] == 'a' || inputText[0] == 's' || inputText[0] == 'm' || inputText[0] == 'd')
    {//richtig


    }
    else
    {//fehler


    }
    }
    else
    {//fehler


    }

    erst entfernen mit der "Entf" taste und dann einfach den neuen Zaun mit ID 19312 einfügen ???


    RemoveBuildingForPlayer(playerid, 16094, 191.1406, 1870.0391, 21.4766, 0.25);
    CreateObject(19312, 191.14059, 1870.03906, 21.47660, 0.00000, 0.00000, 0.00000);

    1) Wähle den Zaun aus im Editor und drücke "Entf", dann ist der Zaun weg
    2) "Insert Object" mit ID 19312
    3) neuen Zaun richtig platzieren
    4) "Show Code" drücken
    5) RemoveBuildingForPlayer zeilen in OnPlayerConnect einfügen
    6) CreateObject Zeilen in OnGameModeInit einfügen