Beiträge von Maksimo007

    Hey,
    ich würde gerne wissen, wie ich eine Box beim Tacho z.B. um die Geschwindigkeit mache. Also nicht mit TextDrawUseBox, denn dann kommt so eine Box bis zum Bildschirmrand. Wie mache ich das?


    Mfg Maksimo007

    Hey,
    ich habe mir einen Tacho erstellt, der mir jetzt eine falsche Geschwindigkeit anzeigt. Ein Landstalker z.B. fährt nur 160 km/h, auf meinem Server allerdings 180 km/h. Er hat nach 1 Sekunde auch schon ca. 80 km/h erreicht.
    Hier der Code:
    public UpdateTacho()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new Float:Entfernung, Float:Geschwindigkeit;
    GetVehiclePos(GetPlayerVehicleID(i), X1[i], Y1[i], Z1[i]);
    Entfernung = floatsqroot(floatpower(floatabs(floatsub(X1[i], X2[i])), 2)+floatpower(floatabs(floatsub(Y1[i], Y2[i])), 2)+floatpower(floatabs(floatsub(Z1[i], Z2[i])), 2));
    Geschwindigkeit = (Entfernung / (TACHOTIMER/1000)) * 3.6;
    new Tachostring[20];
    format(Tachostring, sizeof(Tachostring), "Km/h: %d", floatround(Geschwindigkeit));
    TextDrawSetString(Tacho[i], Tachostring);
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]);
    TextDrawShowForPlayer(i, Tacho[i]);
    }
    else
    {
    TextDrawHideForPlayer(i, Tacho[i]);
    }
    }
    return 1;
    }



    OnGameModeInit:
    //Tacho
    for( new x = 0;x<MAX_PLAYERS;x++)
    {
    Tacho[x] = TextDrawCreate(357.0000,340.0000,"");
    TextDrawLetterSize(Tacho[x],0.4,1.1);
    TextDrawFont(Tacho[x],1);
    TextDrawSetShadow(Tacho[x],2);
    TextDrawSetOutline(Tacho[x],1);
    }
    SetTimer("UpdateTacho",TACHOTIMER,1);


    TACHOTIMER ist 1000.


    Was mache ich falsch? Oder ist das richtig mit der Geschwindigkeit?


    Mfg Maksimo007

    Hey,
    eig. funktioniert mein Tacho ja, bloß habe ich irgendeinen Fehler in der Formel:
    Geschwindigkeit = (Strecke / (100 / 100)) * 3,6;


    Fehler:
    expression has no effect


    Würde wirklich gerne wissen, was daran falsch ist, geht ja alles.


    Mfg Maksimo007

    public OnPlayerRequestClass(playerid, classid)
    {
    if(GetPVarInt(playerid,"SkinID")==0)
    {
    SetPlayerPos(playerid,1480.8375,-1777.7450,13.5469);
    SetPlayerCameraPos(playerid,1480.8759,-1775.3497,13.5469);
    SetPlayerCameraLookAt(playerid,1480.8593,-1776.4098,13.5469);
    SetPlayerFacingAngle(playerid,2.1919);
    }
    else
    {
    SetSpawnInfo(playerid,GetPVarInt(playerid,"Fraktion"),GetPVarInt(playerid,"SkinID"),1480.8375,-1777.7450,13.5469,2.1919,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    }
    return 1;
    }



    public OnPlayerDisconnect(playerid, reason)
    {
    SetPVarInt(playerid,"SkinID",GetPlayerSkin(playerid));
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    SavePlayer(playerid);
    }
    return 1;
    }


    stock SavePlayer(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Banned",GetPVarInt(playerid,"Banned"));
    dini_IntSet(Spielerdatei,"LastVehicle",GetPVarInt(playerid,"LastVehicle"));
    dini_IntSet(Spielerdatei,"Autoschein",GetPVarInt(playerid,"Autoschein"));
    dini_IntSet(Spielerdatei,"Bikeschein",GetPVarInt(playerid,"Bikeschein"));
    dini_IntSet(Spielerdatei,"LKWschein",GetPVarInt(playerid,"LKWschein"));
    dini_IntSet(Spielerdatei,"Bootschein",GetPVarInt(playerid,"Bootschein"));
    dini_IntSet(Spielerdatei,"Flugschein",GetPVarInt(playerid,"Flugschein"));
    dini_IntSet(Spielerdatei,"Helischein",GetPVarInt(playerid,"Helischein"));
    dini_IntSet(Spielerdatei,"SkinID",GetPVarInt(playerid,"SkinID"));
    dini_IntSet(Spielerdatei,"Fraktionslevel",GetPVarInt(playerid,"Fraktionslevel"));
    }
    return 1;
    }
    Also ich hab das Problem, dass "SkinID" nicht gespeichert wird, wenn der Server restartet wird, nur bei "disconnect".
    Edit: Habs gelöst, war ein kleiner Fehler in "SavePlayer"... xD

    Hab ich ja, bloß wie geht das, dass man nach einem Restart auch gleich gespawn wird? Denn zurzeit kommt man nach einem Restart wieder in die Skinauswahl.

    Ehm..., wie meinste das genau? Hab halt 2 stocks mit LoadAccount und SaveAccount und da jeweils SetPVarInt(playerid,"SkinID")...usw.
    Würde halt gerne haben, dass er z.B. den Skin gleich nach dem registrieren bzw. nach der Skinauswahl speichert.

    Ich hätte mal eine Frage zur Skinauswahl. Und zwar habe ich es schon geschafft, dass wenn der Player neu ist, er einen Skin aussuchen muss und wenn ein Spieler schon registriert ist, er einfach mit dem damals ausgewählten Skin gespawnt wird. Wenn jetzt aber ein neuer Spieler auf dem Server ist, der auch schon einen Skin ausgewählt und sich aber noch nicht ausgeloggt hat, der Skin nicht gespeichert wird, wenn z.B. ein Serverrestart gemacht wird. Dann muss er nochmals einen Skin auswählen. Das will ich aber nicht.
    Also meine Frage:
    Wie kann ich ingame den Skin in der Variable "SkinID" speichern? (dini_int und so) Habe es zurzeit beim "disconnect".


    Mfg Maksimo007

    { new modelid;
    modelid = GetVehicleModel(vehicleid);
    SendClientMessage(playerid,Color_Blue,"Du hast keinen Autoschein!");
    if(IsCar(modelid) && !ispassenger)
    { SendClientMessage(playerid,Color_Yellow,"Du hast keinen Autoschein!");
    if(GetPVarInt(playerid,"Autoschein")==0)
    {
    SendClientMessage(playerid,Color_DarkRed,"Du hast keinen Autoschein!");
    }
    }
    return 1;
    }
    Er gibt die erste Meldung in Blau aus, also das erste SendClientMessage.

    Hab das ganze dann so:
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){ new modelid;
    modelid = GetVehicleModel(vehicleid);
    if(IsCar(modelid) && !ispassenger)
    {
    if(GetPVarInt(playerid,"Autoschein")==0)
    {
    SendClientMessage(playerid,Color_DarkRed,"Du hast keinen Autoschein!");
    }
    }
    return 1;
    }


    Funktioniert leider immer noch nicht

    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){ new vid;
    vid = GetPlayerVehicleID(playerid);
    new modelid;
    modelid = GetVehicleModel(vid);
    if(IsCar(modelid) && !ispassenger)
    {
    if(GetPVarInt(playerid,"Autoschein")==0)
    {
    SendClientMessage(playerid,Color_DarkRed,"Du hast keinen Autoschein!");
    }
    }
    return 1;
    }

    Ah okay, nun sieht das ganze also so aus:
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){ new vid;
    vid = GetPlayerVehicleID(playerid);
    new modelid;
    modelid = GetVehicleModel(vid);
    if(IsCar(vid) && !ispassenger)
    {
    if(GetPVarInt(playerid,"Autoschein")==0)
    {
    SendClientMessage(playerid,Color_DarkRed,"Du hast keinen Autoschein!");
    }
    }
    return 1;
    }



    Allerdings kommt dieser Fehler:
    symbol is assigned a value that is never used: "modelid"


    Der Fehler ist in Zeile: "modelid = GetVehicleModel(vid);"

    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    { new cartype=GetPlayerVehicleID(playerid);
    if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
    {
    if(IsCar(cartype))
    {
    if(GetPVarInt(playerid,"Autoschein")==0)
    {
    SendClientMessage(playerid,Color_DarkRed,"Du hast keinen Autoschein!");
    }
    }
    }


    return 1;
    }
    Das ganze sieht jetzt so aus, aber iwie funktioniert es nicht und danke [BFX]... xD für den Skript.^^