Beiträge von Klemmlampe

    //OnGameModeInit
    new GATE = CreateObject(969, 833.74, -2728.68, 13.00, 0.00, 0.00, 360.00);

    und das dann oben raus nehmen, dann sollte es gehen...

    Dankeschön schonmal, Cedii. Jetzt wird erstmal getestet bis der Server qualmt =)
    Werde dann wie gesagt hier mein Feedback abgeben aber ich ahb mir nartürlich schon die neuen Funktionen angeschaut und muss sagen das sie leicht zu verwerten sind!

    Per Strfind kannst du suchen ob diese Zeichen im Namen vorkommen.
    Bsp.:

    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    if(strfind(pName, "[", true) != -1)
    {
    SendClientMessageToAll(0xFFFFFFFF, "Ungültiger Name... *kick*");
    Kick(playerid);
    }


    So in der Art, geht bestimmt auch anders...

    Da musste ich erstmal grinsen :D
    Ob darauf "1x .de domain" läuft kann man so nciht sagen da die Domain != Webserver ist, aber:
    Auf meinem vServer (ähnliche Werte) läuft das ganze wunderbar ohne größere Laggs (wobei es auch auf die Useranzahl/Auslastung annkommt)

    Ups hab da wohl eine Funktion nichtmehr richtig gewusst...
    ersetze mal IsInAnyVehicle durch IsPlayerInAnyVehicle
    Die Loose indentation sind nur einrückungsfehler (Warnings)
    Zu symbol is assigned a value that is never used: "plname" kann ich nichts sagen da es nichts mit meinen änderungen zutun hat

    Woops verbessert eine Klammer zu schließen :S
    So gehts richtig:
    if(strcmp(cmd, "/respawnfv", true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
    {
    for(new i = 57;i<64;i++) {
    for(new pid = 0;pid<MAX_PLAYERS;pid++)
    {
    if(!IsInAnyVehicle(pid))
    {
    SetVehicleToRespawn(i);
    }
    }
    }
    SendClientMessage(playerid, COLOR_RED, "Respawned");
    else
    {
    SendClientMessage(playerid, COLOR_RED,"Du darfst diesen Befehl nicht benutzen!");
    }
    }
    return 1;

    Das fragt ein "Fortgeschrittener"? Na gut aber ich bin nartürlich wieder gut gelaunt und erkläre dir RFTs Variante.


    Also was du machst ist kompletter Blödsinn das es alles andere als ressourcensparend ist! Du definierst für jedes Auto eine neue Variable -> Mad!


    RFT erstellt nur eine Variable (Array) in die er dann alle Cars lädt und sie später wieder per for-Schleife "abfragt" bzw. weiterverwertet.


    new CopCar[34]; // definiert die Variable mit 34 "Spalten"
    CopCar[0] = AddStaticVehicleEx(528,1545.0760,-1650.8989,5.6128,90.6154,0,1,-1); // definiert ein Auto und lädt es in den Array


    for(new Car = 0; Car < sizeof(Cop); Car ++) // Schleife die die Autos "lädt" also ihnen Car zuweißt (Car = alle Autos)
    {
    if(Cop[Car] == carid) // Wenn carid eines dieser Auto ist
    return true; //gib wahr aus (stimmt)
    }
    return false; // sonst gib falsch aus (stimmt nicht)



    //Edit: da war RFT wohl viel schneller

    if(strcmp(cmd, "/respawnfv", true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
    {
    for(new i = 57;i<64;i++) {
    for(new pid = 0;pid<MAX_PLAYERS;pid++)
    {
    if(!IsInAnyVehicle(pid))
    {
    SetVehicleToRespawn(i);
    }
    }
    }
    SendClientMessage(playerid, COLOR_RED, "Respawned");
    else
    {
    SendClientMessage(playerid, COLOR_RED,"Du darfst diesen Befehl nicht benutzen!");
    }
    }
    return 1;


    ACHTUNG: Ich habe das ganze nicht getestet und schon lange nichts mehr mit Pawn gemacht, weiß also nicht ob es geht!
    //Edit: Tipp: Ich würde die Autos nicht einzeln respawnen lassen sondern per for-Schleife
    //Edit2: Code verbessert

    1. nicht gleich so frech...
    2. bau oben im Script ein:
    new Eingeloggt;
    3. Poste auch mal 5 Zeilen davor und danach denn die Errors haben nie nur was mit einer einzelnen Zeile zutun.

    Schau dir den Code an bzw. den /su Befehl und OnPlayerDeath (brauchst da die killerid).


    Code:

    // OnPlayerDeath
    SetPlayerWantedLevel(killerid, 1);
    return 1;


    //Edit:
    da war wohl einer schneller

    Sorry wenn ich jetzt so komm aber 135 Beträge und du kannst das nicht?
    Na gut zu deiner Frage:
    Speicher das ganze per dini (z.B. Kasse.ini in der dann die Fraktionen mit dem Wert aufgeführt sind) oder per MySQL (das ganze dann eben als Tabelle).


    dini_IntSet("kasse.ini", "Fraktion", 3500); // 3500 = 3500$ also der Wert
    dini_Int("kasse.ini", "Fraktion"); // holt den Wert aus der ini

    Entweder immer wenn ein User connected/joint das in eine Datei schreiben (so eine art Log) oder per Timer überprüfen, wobei das total sinnlos wäre da wohl niemand ohne Joinen auf den Server kommt bzw. ihn wieder ohne Disconnect ihn verlässt.


    //Edit:
    public OnPlayerConnect(playerid)
    {
    users++;
    Log = fopen("players.log", io_append);
    gettime(h, m, s);
    format(str, sizeof(str), "%d:%d:%d | %d (joined)", h, m, s, users);
    fwrite(Log, str);
    fclose(Log);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    users--;
    Log = fopen("players.log", io_append);
    gettime(h, m, s);
    format(str, sizeof(str), "%d:%d:%d | %d (disconneted)", h, m, s, users);
    fwrite(Log, str);
    fclose(Log);
    return 1;
    }


    So irgendwie hab das jetzt nicht getestet sollte aber gehen :D

    Klammerfehler...
    Schau mal ob alle Klammern zu sind oder gib uns die Scriptzeilen (wobei das ganze dnan "weiträumig" sein müsste.


    //Edit: Sorry errors nicht angegugt sondern nur auf die Anzahl geschaut. Du brauchst neuere Includes, lad dir am besten den Server neu runter. (sa-mp.com)