Beiträge von Jeffry

    Probiere das doch mal aus, das geht nicht.
    Das ist wie wenn du
    OnPlayerCommandText(playerid,"/q");
    machst, das geht auch nicht. Die SA-MP Befehle können mit OnPlayerCommandText nicht aufgerufen werden.


    SendRconCommand geht nicht, da es keinen playerid Parameter hat.

    COMMAND:stats(playerid,params[])
    {
    new str[512];
    new tode = User[playerid][Tode];
    if(tode == 0) tode = 1;
    new Float:KD = float(User[playerid][Kills]) / float(tode);
    format(str,sizeof(str),"{FF9600}Allgemeine Information:\n\nName: %s\nLevel: %d\nGeld: %d\nCoins: %d\nStatus: %s\nSkin: %d\nKills: %d\nTode: %d\nK/D: %.2f",PlayerName(playerid),User[playerid][Level],User[playerid][Geld],User[playerid][Coins],Adminrang[User[playerid][Admin]],User[playerid][Skin],User[playerid][Kills],User[playerid][Tode],KD);
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"LucareLLi DM || Statistik",str,"OK","");
    return 1;
    }
    So dürfte es passen.


    Warum die Abfrage ob Tode 0 sind? Weil du nicht durch 0 teilen kannst.
    Man kann es auch anders schreiben, aber ich denke so ist es für dich am verständlichsten.

    Debugge es mal so, dann poste was im Log steht, wenn du /flock eingibst.
    ocmd:flock(playerid, params[])
    {
    new Float:Pos[3];
    for(new x;x<sizeof(fCar); x++)
    {
    GetVehiclePos(fCar[x][fvID], Pos[0], Pos[1], Pos[2]);
    printf("x: %d | InRange: %d", x, IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2]));
    if(IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2]))
    {
    printf("pFrak: %d | carFrak: %d", pInfo[playerid][pFrak], fCar[x][f_ID]);
    if(pInfo[playerid][pFrak] != fCar[x][f_ID]) return scm(playerid, COLOR_RED, "Du bist nicht in der Fraktion!");
    if(Locked[fCar[x][fvID]] == false)
    Was steht dann im Log?

    Was heißt es spinnt rum? Was passiert, wenn du dich neben ein Fahrzeug stellst und das eingibst?
    Bist du auch nahe genug dran? Die 5.0 sind nicht sooo viel.


    Und unterlasse bitte diese Vollzitate, die machen keinen Sinn. Danke :)

    ocmd:flock(playerid, params[])
    {
    for(new x;x<sizeof(fCar); x++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, fCar[x][fx], fCar[x][fy], fCar[x][fz]))
    {
    if(Locked[fCar[x][fvID]] == false)
    {
    new tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective;
    GetVehicleParamsEx(fCar[x][fvID], tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    SetVehicleParamsEx(fCar[x][fvID], tmp_engine, tmp_lights, tmp_alarm, 1, tmp_bonnet, tmp_boot, tmp_objective);
    Locked[fCar[x][fvID]] = true;
    GameTextForPlayer(playerid, "~r~Abgeschlossen", 2000, 5);
    return 1;
    }
    else if(Locked[fCar[x][fvID]] == true)
    {
    new tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective;
    GetVehicleParamsEx(fCar[x][fvID], tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    SetVehicleParamsEx(fCar[x][fvID], tmp_engine, tmp_lights, tmp_alarm, 0, tmp_bonnet, tmp_boot, tmp_objective);
    Locked[fCar[x][fvID]] = false;
    GameTextForPlayer(playerid, "~g~Aufgeschlossen", 2000, 5);
    return 1;
    }
    }
    }
    return scm(playerid, COLOR_RED, "Fehler du bist nicht in der nähe eines Fraktions-Fahrzeuges!");
    }


    So dürfe es passen.

    Unter die Includes:
    new mTimer = -1;


    Dort wo du den Timer startest (OnGameModeInit?):
    mTimer = SetTimer("MinutenTimer",60000,true);


    Der Befehl:
    ocmd:doubletbonus(playerid,params[])
    {
    new zeit,zeitt,string[128],grund[128];
    if(!isAdmin(playerid,5)) return SendClientMessage(playerid,CL_ORANGE,"Du bist nicht berechtigt!");
    if(sscanf(params,"is",zeit,grund)) return SendClientMessage(playerid,CL_ORANGE,"Benutzung: /doubletbonus [Zeit] [Grund]");
    if(zeit < 19 || zeit > 61) return SendClientMessage(playerid,CL_ORANGE,"Zeit zwischen 20 und 60 Minuten!");
    new length = strlen(grund);
    if(length < 4) return SendClientMessage(playerid,RED,"Verwende mindestens 4 Buchstaben für den Grund!");
    if(mTimer != -1) KillTimer(mTimer);
    mTimer = SetTimer("MinutenTimer",30000,true);
    format(string,sizeof(string),"Der Doppelte Bonus wurde für %i Minuten aktiviert,Grund:%s",zeit,grund);
    SendClientMessage(playerid,CL_GREEEN,string);
    zeitt = (zeit*1000)*60;
    printf("Zeit=%i zeitt=%i",zeit,zeitt);
    SetTimerEx("doublekill",zeit,false);
    return 1;
    }

    Du speicherst in die PVars, oder besser in ein Array, die Zeit, zu der die Anfrage gestartet wurde.
    medicTime[playerid] = gettime();


    Und dort wo du /accept machst:
    new tmp, id = -1;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if((medicTime[playerid] > 0 && (medicTime[playerid] < tmp || id == -1))
    {
    tmp = medicTime[playerid];
    id = playerid;
    }
    }
    //"id" ist die playerid, die am längsten wartet.
    medicTime[id] = 0;

    Bei Tor 2 fehlt die Geschwindigkeit.
    Außerdem sieht es so aus, als willst du die Tore rotieren, damit das flüssig geht musst du eine der XYZ Koordinaten um 0.1 ändern und den Speed auf 0.005 setzen.

    Die 59 und die 4? Dann vertausche die beiden hinteren Parameter, so:
    ocmd:payday(playerid, params[])
    {
    new pstring[128];
    format(pstring, sizeof(pstring), "Du hast %d Respektpunkte und %d Minuten ist es seit deinem letzten PayDay her.", SpielerInfo[playerid][PayDayTimer], SpielerInfo[playerid][PayDayRespektp]);
    SendClientMessage(playerid, COLOR_RED, pstring);
    return 1;
    }


    Wobei dann die Bezeichnungen keinen Sinn mehr geben.


    Oder was meinst du?