Beiträge von NicoAiko


    //OnPlayerCommandText
    new tmp[200];
    new cmd[200];
    new var;


    //Irgendwo unten oder so
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    MfG

    Hier die Strtok-Version

    if(strcmp(cmd,"/givegun",true) == 0)
    new waffe,munition;
    tmp = strtok(cmdtext,var); //musste gucken wie du es hast
    if(!strlen(tmp))
    return SendClientMessage(playerid,0xFFFFFFFF,"Info: /givegun [Waffen-ID] [Munition]");
    waffe = strval(tmp);
    tmp = strtok(cmdtext,var);
    if(!strlen(tmp))
    return SendClientMessage(playerid,0xFFFFFFFF,"Info: /givegun [Waffen-ID] [Munition]");
    munition = strval(tmp);
    if(waffe == 38 || waffe == 39) return SendClientMessage(playerid,0xFF0000FF,"Diese Waffen kannst du dir nicht geben!");
    GivePlayerWeapon(playerid,waffe,munition);
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast dir eine Waffe gegeben!");
    return 1;
    }

    MfG

    ähh wenn du abfragen willst ob er healthhack benutzt würde ich das ein klein wenig anders machen...



    ocmd:lebencheck(playerid,params[]) // ändere meinetwegen den Namen völlig wurscht
    {
    if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: Admin");// Adminabfrage
    new Float:Pos[3],inputID,string[128],Float:ATM_Health,Float:ATM_Armour,Float:After_Health; //ATM_Health = Momentanes Leben, ATM_Armour = Momentane Rüstung
    if(sscanf(params,"d",inputID)) return SendClientMessage(playerid,BLAU,"/explosion [ID]");//fehlermeldung wenn falsche eingaben
    if(!IsPlayerConnected(inputID)) return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online!");
    GetPlayerHealth(inputID,ATM_Health);
    GetPlayerArmour(inputID,ATM_Armour);
    GetPlayerPos(inputID,Pos[0],Pos[1],Pos[2]);
    SetPlayerHealth(inputID,100);
    SetPlayerArmour(inputID,0);
    CreateExplosion(Pos[0],Pos[1],Pos[2],11,15); // ich würde eine kleine Explosion empfehlen ^^
    GetPlayerHealth(inputID,After_Health);
    format(string,sizeof(string),"%s wurde von %s auf Healhack kontrolliert. Leben: %0.2f",SpielerName(inputID),SpielerName(playerid),After_Health);//string
    SetPlayerHealth(inputID,ATM_Health);
    SetPlayerArmour(inputID,ATM_Armour);
    if(!IsPlayerAnAdmin(inputID,1))return 1;
    SendClientMessageToAll(BLAU,string);
    return 1;
    }


    Dies ist noch ungetestet, außerdem würde ich ihn zu einem anderen Ort porten ^^
    Dann kann auch niemandem Anderen etwas passieren ^^


    Falls ne erklärung nötig ist schreib im thread ^^

    Ich hab nur das gesagt was ich gehört habe, es musste nicht der Wahrheit entsprechen ^^
    Jetzt ist aber die Frage ab wann ist ein Timer schlimmer als OnPlayerUpdate?

    soweit ich weiß ist es total ressourcenfressend OnPlayerUpdate zu benutzen da es IMMER alle 500ms wiederholt wird
    D.h.
    alles was in dem callback steht wird jede 1/2 Sekunde wiederholt...
    Deswegen benutzt man Timer...

    Such im Script einfach nach GivePlayerMoney / dem Geld-Gebe-Befehl (falls es ein Server-seitiges Anti-Money-Hack system gibt)
    dann guck wie es gemeint ist und wenn es keinen einfluss auf den Spielverlauf hat bzw. wenn das nicht einfach so von selbst passieren kann das nächste ^^

    Was auch noch gut wäre:

    public OnVehicleTakeDamageByVehicle(vehicleid,issuerid,Float:amount)
    {
    return 1;
    }
    public OnVehicleTakeDamageByPlayer(vehicleid,issuerid,Float:amount,weaponid)
    {
    return 1;
    }

    Dann könnte man auch so einige Sachen machen ^^
    z.B. damit man einen Anti-Vehicle-Heal-Hack scripten kann

    Zieh du mal dein Röckchen an (Keine Beleidigungen an die russische Kultur ;))
    Kann man eine Selbst-Sperr Funktion für Leute wie ihn einfügen?
    Naya kann man nur sagen: "SELBST GEMACHTES LEID"


    MfG