Okay danke, ich guck gleich mal.
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
-
lol jetzt gehts..., danke xDD
-
Hey,
eig. funktioniert mein Tacho ja, bloß habe ich irgendeinen Fehler in der Formel:
Geschwindigkeit = (Strecke / (100 / 100)) * 3,6;Fehler:
expression has no effectWü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 -
Geht auch nicht, hab dir ne pn geschickt.
-
Okay, hab ich jetzt gemacht, wenn ich jetzt allerdings restarte, hab ich ID 0, also CJ. Davor hatte ich ID 24 oder so
-
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
-
Oh stimmt, danke Zunno und danke Titti
-
{ 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;
} -
Okay, hab das mit IsCar dann gerade durch modelid ersetzt, müsste ja jetzt gehen..., geht aber nicht xD
-
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);"
-
Okay, hab das nun ausbessert, wie meint ihr das aber mit der ModelID und so?
-
Also was muss ich genau in meinen Skript einfügen? Habe jetzt schon manches probiert, bekomme es aber net hin.
-
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.^^