Beiträge von DJ Deagle

    // edit :D :D :D




    Da wüsste ich aber jemand anderen oder bist du Jonas? :huh:


    Also erstmal an Sunshine: Nein, die hast du nicht selber gemappt, da du nicht Jonas bist. Der Pershing Square wurde von Jonas für AL gemappt und dann hier im Breadfish veröffentlicht (siehe: [ MAP ][Veröff.] SERVER Another Life's Maps BY Jonas FREE!). #Lügner


    Mein Fazit zum Server:


    Der Server hat noch sehr viele Bugs, die gefixxt werden müssen. Sunshine arbeitet da allerdings auch schon dran, was ich toll finde.
    Ein richtiges AntiCheat-System gibt es auch nicht.. Wenn man ohne Waffenschein einen Spieler tötet wird man gekickt. Fertig.
    Man kann den Farmer-Job super mit einem Checkpoint-Teleporter ausüben und damit innerhalb von 10 Minuten ca. 1-2 Millionen $ machen.


    Ich finde, dem Server fehlt das gewisse etwas.... Leider wurde ich aufgrund von S0beit-Tests diese Nacht vom Owner gebannt :(

    Zeig uns doch auch mal die "TBan"-Funktion.


    /e:
    Außerdem empfehle ich dir die Abfragen so zu gestalten:
    if(PlayerInfo[playerid][pAdmin] <= 1)return 1;
    if(sscanf(params,"uds",pID,banTime,reason))return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /tban [Spieler / ID] [Zeit in Minuten] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GRAD1,"Falsche ID!");
    if(banTime < 15)return SendClientMessage(playerid,COLOR_GRAD1,"Minimale Zeit: 15 Minuten");

    Ich hab es so hinbekommen, wie ich es wünsche. Ich habe mir gerade von Sunshine (von Sunshine Reallife) helfen lassen.
    Ich musste die Kilometer-Variable als Float definieren, da ich Es so ausgeben möchte: "3.6KM".
    Hier meine neue Rechnung:
    GetVehiclePos(veh,pNewKM[0][i],pNewKM[1][i],pNewKM[2][i]);
    Distance=GetVehicleDistanceFromPoint(veh,pOldKM[0][i],pOldKM[1][i],pOldKM[2][i]);
    if(Distance>150){Distance=0;}
    KM[veh] += Distance/1000;
    pOldKM[0][i] = pNewKM[0][i];
    pOldKM[1][i] = pNewKM[1][i];
    pOldKM[2][i] = pNewKM[2][i];
    format(string1,sizeof string1,"%0.1f KM",KM[veh]);
    TextDrawSetString(KManzeige[veh],string1);
    Ich bedanke mich trotzdem für Deine Hilfe Jeffry!! :)

    Timer wird unter OnGameModeInit gestartet:
    SetTimer("Speedometer",500,1);


    Hier mein Speedopublic:
    public Speedometer()
    {
    for(new i;i<MAX_PLAYERS;i++) {
    if(!IsPlayerNPC(i)) {
    if(IsPlayerConnected(i) && GetPVarInt(i,"Eingeloggt") == 1) {
    if(IsPlayerInAnyVehicle(i) && GetPlayerVehicleSeat(i) == 0) {
    new Float:CarHealth,chealth,string[512],string1[128],kmh,modelid,veh,Float:Distance;
    veh=GetPlayerVehicleID(i);
    modelid=GetVehicleModel(veh);
    GetVehicleHealth(veh,CarHealth);
    CarHealth = CarHealth - 250;
    CarHealth = CarHealth /10;
    CarHealth = CarHealth /75;
    CarHealth = CarHealth *100;
    chealth=floatround(CarHealth,floatround_floor);
    kmh=GetPlayerSpeed(i, true);
    if(Motor[veh] == false && Licht[veh] == false) {
    PlayerTextDrawSetString(i, Tacho1[i],"~r~Motor ~r~Licht");
    } else if(Motor[veh] == true && Licht[veh] == false) {
    PlayerTextDrawSetString(i, Tacho1[i],"~g~Motor ~r~Licht");
    } else if(Motor[veh] == true && Licht[veh] == true) {
    PlayerTextDrawSetString(i, Tacho1[i],"~g~Motor ~g~Licht");
    } else if(Motor[veh] == false && Licht[veh] == true) {
    PlayerTextDrawSetString(i, Tacho1[i],"~r~Motor ~g~Licht");
    }
    GetVehiclePos(veh,pNewKM[0][i],pNewKM[1][i],pNewKM[2][i]);
    printf("%f | %f | %f | %f | %f | %f |",pNewKM[0][i],pNewKM[1][i],pNewKM[2][i],pOldKM[0][i],pOldKM[1][i],pOldKM[2][i]);
    new Distance=floatround(floatsqroot( ((pNewKM[0][i]-pOldKM[0][i])*(pNewKM[0][i]-pOldKM[0][i])) +((pNewKM[1][i]-pOldKM[1][i])*(pNewKM[1][i]-pOldKM[1][i])) + ((pNewKM[2][i]-pOldKM[2][i])*(pNewKM[2][i]-pOldKM[2][i])) ));
    printf("distance = %d", Distance);
    KM[veh] += Distance;
    printf("KM[veh] = %d", KM[veh]);
    pOldKM[0][i] = pNewKM[0][i];
    pOldKM[1][i] = pNewKM[1][i];
    pOldKM[2][i] = pNewKM[2][i];
    format(string,sizeof string,"%d KM",KM[veh]);
    TextDrawSetString(KManzeige[veh],string);
    switch(Tank[veh]/(MaxTank[(modelid)-400]/10))
    {
    case 10: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 9: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I I I I ~r~I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 8: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I I I ~r~I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 7: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I I ~r~I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 6: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I ~r~I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 5: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I ~r~I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 4: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I ~r~I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 3: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I ~r~I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 2: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I ~r~I I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 1: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I ~r~I I I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 0: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~r~I I I I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    }
    PlayerTextDrawSetString(i, Tacho0[i], string);
    } else {
    TextDrawHideForPlayer(i, TachoBox);
    PlayerTextDrawHide(i, Tacho0[i]);
    PlayerTextDrawHide(i, Tacho1[i]);
    TextDrawHideForPlayer(i, KManzeige[GetPVarInt(i,"LastVeh")]);
    }
    }
    }
    }
    return 1;
    }


    Und OnPlayerStateChange:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new str[512],veh;
    veh=GetPlayerVehicleID(playerid);
    GetVehiclePos(veh,pOldKM[0][playerid],pOldKM[1][playerid],pOldKM[2][playerid]);
    format(str,sizeof str,"Um den Motor des Fahrzeuges zu starten halte ~k~~VEHICLE_HANDBRAKE~ und ~k~~CONVERSATION_NO~ gedrückt!");
    SendClientMessage(playerid,COLOR_WHITE,str);
    TextDrawShowForPlayer(playerid, TachoBox);
    TextDrawShowForPlayer(playerid, KManzeige[veh]);
    PlayerTextDrawShow(playerid, Tacho0[playerid]);
    PlayerTextDrawShow(playerid, Tacho1[playerid]);
    SetPVarInt(playerid,"LastVeh",veh);
    }
    return 1;
    }


    Dann teste mal o.o


    Code
    [21:14:49] -328.983337 | 833.730590 | 13.970005 | -328.748352 | 832.689819 | 13.986113 |
    [21:14:49] distance = 1


    hm..

    Dann poste den Log.


    Hi,


    ich habe einen Kilometerzähler gebastelt. Leider macht er nicht das, was er soll.
    Sobald ich in das Fahrzeug einsteige zählt der Zähler hoch bis auf ca. 131 Millionen und bleibt dann stehen.
    Er zieht nichts mehr ab, bzw rechnet etwas drauf.


    Hier der Code:
    GetVehiclePos(veh,pNewKM[0][i],pNewKM[1][i],pNewKM[2][i]);
    new Distance=floatsqroot((pNewKM[0][i]-pOldKM[0][i])*(pNewKM[0][i]-pOldKM[0][i])+(pNewKM[1][i]-pOldKM[1][i])*(pNewKM[1][i]-pOldKM[1][i])+(pNewKM[2][i]-pOldKM[2][i])*(pNewKM[2][i]-pOldKM[2][i]));
    KM[veh] += Distance;
    GetVehiclePos(veh,pOldKM[0][i],pOldKM[1][i],pOldKM[2][i]);
    format(string,sizeof string,"%d KM",KM[veh]);
    TextDrawSetString(KManzeige[veh],string);
    Das floatsqroot habe ich aus dem allerseits bekannten GetDistanceFromPointToPoint genommen und umgeschrieben.
    Das erste OldKM wird hier gesetzt:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new str[512],veh;
    veh=GetPlayerVehicleID(playerid);
    GetVehiclePos(veh,pOldKM[0][playerid],pOldKM[1][playerid],pOldKM[2][playerid]);


    Warum zeigt er so eine immens hohe Zahl an?
    (Vielleicht Jeffry: ?)


    lg

    Hi ich bins wieder :D


    Ich habe mir grad ein kleines Enginesystem erbastelt, in welchem man LEERTASTE+N gedrückt halten muss, um den Motor zu starten/stoppen.
    Ich kann den Motor stoppen. Starten tut er nicht, warum?
    Code:
    public motortimerON(playerid,vehicleid) {
    if(gettime()-pMotorTime[0][playerid]==2) {
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    Motor[vehicleid] = true;
    KillTimer(motortimer[0][playerid]);
    pMotorTime[0][playerid] = 0;
    } else {
    pMotorTime[0][playerid] = 0;
    }
    return 1;
    }


    public motortimerOFF(playerid,vehicleid) {
    if(gettime()-pMotorTime[1][playerid]==1) {
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[vehicleid] = false;
    KillTimer(motortimer[1][playerid]);
    pMotorTime[1][playerid] = 0;
    } else {
    pMotorTime[1][playerid] = 0;
    }
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0) {
    if(HOLDING(KEY_HANDBRAKE) && HOLDING(KEY_NO)) {
    if(Motor[GetPlayerVehicleID(playerid)] == false) {
    pMotorTime[0][playerid] = gettime();
    motortimer[0][playerid]=SetTimerEx("motortimerON",1000,1,"dv",playerid,GetPlayerVehicleID(playerid));
    } else {
    pMotorTime[1][playerid] = gettime();
    motortimer[1][playerid]=SetTimerEx("motortimerOFF",1000,1,"dv",playerid,GetPlayerVehicleID(playerid));
    }
    }
    }
    Der Wagen wird mit gestartetem Motor gespawnt.


    lg