Es bleiben noch einige Warnings jetzt die Zahlen ohne komma muss ich die ändern?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Die musst du zu .0 ändern, also zum Beispiel
1
zu:
1.0 -
Warum hat er keine 2.0
format(string2,sizeof(string2),"~r~Tank:~g~ %s.1f ", Tank, Gas[VID]); -
So muss es sein:
format(string2,sizeof(string2),"~r~Tank:~g~ %0.1f ", Tank, Gas[VID]); -
Hey,
ich habe ein Problem bei meinem Clansystem.
Und zwar möchte ich das mir ein Dialog angezeigt wird indem ich meinen Clantag eingeben kann
Vorher habe ich allerdings einen Dialog wo ich den namen eintragen mussWeshalb ich abfrage ob es den Namen bereits gibt
Es gibt ihn nicht aber mir wird der Dialog nicht gezeigtcase DIALOG_CLAN_N:
{
new i = cErstellen[playerid];
print("1");
if(response == 0)
{
print("2");
for(new c; c != _:Clan_Info; ++c)ClanInfo[i][Clan_Info:c]= 0;
cErstellen[playerid] = 0;
SendClientMessage(playerid,WEISS,"Du hast die Clangründung abgebrochen.");
return 1;
}
else
{
print("3");
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)return ShowPlayerDialog(playerid,DIALOG_CLAN_N,DIALOG_STYLE_INPUT,""#SERVERFARBE""#SERVERTAG"{FFFFFF}: Clan [Name]","Wie möchtest du deinen Clan nennen?\nGebe bitte deinen gewünschten Clan Namen ein: \n\nDer Name muss zwischen 4 und 20 Buchstaben haben.","Weiter","Abbrechen");
print("4");
if(IsNumeric(inputtext))return ShowPlayerDialog(playerid,DIALOG_CLAN_N,DIALOG_STYLE_INPUT,""#SERVERFARBE""#SERVERTAG"{FFFFFF}: Clan [Name]","Wie möchtest du deinen Clan nennen?\nGebe bitte deinen gewünschten Clan Namen ein: \n\nDer Name darf keine Zahlen beinhalten","Weiter","Abbrechen");
print("5");
for(new c=1; i<MAX_CLANS;c++)
{
print("6");
if(ClanInfo[code=c][cErstellt] != 0 && cErstellen[playerid] != i)//continue;
{
print("7");
if(strcmp(ClanInfo[code=c][cName],inputtext,true) == 0)
{
print("8");
return ShowPlayerDialog(playerid,DIALOG_CLAN_N,DIALOG_STYLE_INPUT,""#SERVERFARBE""#SERVERTAG"{FFFFFF}: Clan [Name]","Wie möchtest du deinen Clan nennen?\nDen Clan Namen gibt es bereits bitte wähle einen anderen.\n \nGebe bitte deinen gewünschten Clan Namen ein:","Weiter","Abbrechen");
}
}
print("9");
}
print("10");
format(ClanInfo[i][cName],35,"%s",inputtext);
ShowPlayerDialog(playerid,DIALOG_CLAN_T,DIALOG_STYLE_INPUT,""#SERVERFARBE""#SERVERTAG"{FFFFFF}: Clan [Tag]","Was soll dein Clan-Tag sein?\n Gebe bitte deinen gewünschtes Clan-Tag ein:","Gründen","Abbrechen");
return 1;
}
}In den ServerLogs stehen die Zahlen 34569
Die 6 u. 9 stehen 50 mal drinnen da es 50 Clan's geben kann -
Warum kommt eine Zahl nac hdem ersten Update welche sehr Lange ist:
format(string2,sizeof(string2),"~r~Tank:~g~ %0.1f ", Tank, Gas[VID]);
Gas[veh] -= vehgas[GetVehicleModel(veh)-400];
new Float:vehgas[212] =
{
0.75,
0.75,
0.6,
2.5,
0.3,
0.3,
5.3,
2.5,
1.8,
1.1,
0.4,
2.1, //Infernus
0.6,
0.4,
0.3,
1.4,
0.8,
15.1,
0.9,
0.7,
0.4, //Taxi
0.3,
0.9,
1.2,
2.5,
150.1,
1.2,
2.4,
2.3,
1.2,
14.6,
1.6,
25.1, //rhino
4.9,
2.1,
1.1,
1.1,
1.7,
1.1,
1.1,
1.1,
1.1, //RC Bandit
1.1,
2.5,
7.1,
1.1,
15.1,
15.1,
0.3,
0.5,
1.1,
2.5,
7.4, -
-
So:
new vehTank[212] = -
Das müssen alles Floats sein. Oder du musst die Integers casten, das würde ich aber nicht empfehlen.
-
HAb das nun als Float und er gibt immr noch so viele zahlen.
-
-
Kannst du die ganze Berechnung zu dieser Zeile mal posten?
-
So:
new Float:vehgas[212] =
{
0.75,
0.75,
0.6,
2.5,
0.3,
0.3,
5.3,
2.5,
1.8,
1.1,
0.4,
2.1, //Infernus
0.6,
0.4,
0.3,
1.4,
0.8,
15.1,
0.9,
0.7,[pwn]for(new veh = 0; veh < MAX_VEHICLES; veh++)
{
if(MotorSystemMotor[veh] == true)
{
if(Gas[veh] > 0)
{
static tmpGas[MAX_VEHICLES];
tmpGas[veh]++;
if(tmpGas[veh] >= 16) //Hier einstellen. Je höher desto langsamer
{
if(IsAPlane(veh) || IsABoat(veh) || IsAFahrrad(veh))
{
Gas[veh] += 2;
}
Gas[veh] -= vehgas[GetVehicleModel(veh)-400];
tmpGas[veh] = 0;
}
}
else
{
ForAllPlayers(i)
{
if(IsPlayerConnected(i))
{
if(GetPlayerState(i) == 2)
{
if(GetPlayerVehicleID(i) == veh)
{
SendClientMessage(i, COLOR_YELLOW, "Boardcomputer: Tank leer, der Motor ist abgestorben.");
}
}
}
}
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(veh,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
MotorSystemMotor[veh] = false;
}
}
}
return 1;
}[/pwn] -
Nein, das zu der Zeile:
format(string2,sizeof(string2),"~r~Tank:~g~ %0.1f ", Gas[VID]);
bzw, falls du es geändert hast eben zu der neuen Version.
Wie du auf "Tank" kommst, und wie "Gas" deklariert ist, so wie das aussieht ist das nämlich ein Integer. Das muss auch ein Float sein. -
So:
if(newstate == PLAYER_STATE_DRIVER){
gLastCar[playerid] = GetPlayerVehicleID(playerid);
new veh = GetPlayerVehicleID(playerid);
new VID = GetPlayerVehicleID(playerid);
new value,
Float:xX,
Float:yY,
Float:zZ,
Float:X,
Float:Y,
Float:Z;
GetVehiclePos(VID, xX, yY, zZ);
GetVehicleVelocity(VID, X, Y, Z);
value = floatround(floatsqroot((X*X) + (Y*Y) + (Z*Z)) * 100 * 1.40);
new Speed[20];
new Float:leben;
if(value >= 0 && value <= 75){Speed = "~g~";}
if(value > 75){Speed = "~r~";}
new Tank[20];
if(Gas[VID] > 10 && Gas[VID] <= 20){Tank = "~y~";}
if(Gas[VID] <= 10){Tank = "~r~";}
if(Gas[VID] > 20){Tank = "~g~";}
VehSpeed[VID] = value;
GetVehicleHealth(VID,leben);
format(string,sizeof(string),"~r~%s",VehNames[GetVehicleModel(VID)-400]);
format(string1,sizeof(string1),"~r~KM/H:~g~ %d ",value);
format(string2,sizeof(string2),"~r~Tank:~g~ %0.1f ", Tank, Gas[VID]);
format(string4,sizeof(string4),"~r~Zustand:~g~ %",leben/10);
format(string3,sizeof(string3),"~r~Kilometer:~g~ %d Km",floatround(Kilometer[veh]));
TextDrawSetString(Tacho3[playerid], string);
TextDrawSetString(Tacho4[playerid],string1);
TextDrawSetString(Tacho6[playerid],string2);
TextDrawSetString(Tacho5[playerid],string4);
TextDrawSetString(Tacho7[playerid],string3);
TextDrawShowForPlayer(playerid, Tacho[playerid]);
TextDrawShowForPlayer(playerid, Tacho1[playerid]);
TextDrawShowForPlayer(playerid, Tacho2[playerid]);
TextDrawShowForPlayer(playerid, Tacho3[playerid]);
TextDrawShowForPlayer(playerid, Tacho4[playerid]);
TextDrawShowForPlayer(playerid, Tacho5[playerid]);
TextDrawShowForPlayer(playerid,Tacho6[playerid]);
TextDrawShowForPlayer(playerid, Tacho7[playerid]);
TextDrawShowForPlayer(playerid, Tacho9[playerid]);
new newcar = GetPlayerVehicleID(playerid);new Gas[MAX_VEHICLES];
-
Ok, dann:
format(string2,sizeof(string2),"~r~Tank:~g~ %0.1f ", Tank, Gas[VID]);
zu:
format(string2,sizeof(string2),"~r~Tank:%s %0.1f ", Tank, Gas[VID]);Und
new Gas[MAX_VEHICLES];
zu:
new Float:Gas[MAX_VEHICLES]; -
Kommen immer noch mehrere Zahlen und der Komma Bereich wird nicht angezeigt.
-
Ändere mal:
Gas[veh] -= vehgas[GetVehicleModel(veh)-400];
zu:
Gas[veh] = Gas[veh] - vehgas[GetVehicleModel(veh)-400];
printf("Gas: %0.1f", Gas[veh]);Was wird geprintet? Oder geht es schon?
Ist "Gas" und "vehgas" beides ein Float jetzt?PS: Sowas ist nächstes mal ein neuer Thread, da das keine kleine Scripting Frage ist.
-
Ich wollt mal Fragen ob mir Jemand bei meinen Textdraws Hilft. Per PN
-
Ja beides jetzt eine Float geprintet:
[18:14:03] Gas: 99.5
[18:14:14] Gas: 1318926976.0
[18:14:20] Gas: 99.0
[18:14:30] Gas: 1318926976.0
[18:14:36] Gas: 98.5
[18:14:47] Gas: 1318926976.0 -
Also so wie das aussieht weist du der Gas Variable doch irgendwo noch einen Integer zu.
Denn bei dem anderen Fahrzeug geht es ja, oder warum kommt der print 2x?Ändere den print mal zu:
printf("Gas: %0.1f | playerid: %d | veh: %d", Gas[veh],playerid,veh);Dann prüfe mal, ob du nicht irgendwo der Gas Variable doch noch einen Integer zuweist.
Wenn du das gemacht hast, und die Änderungen hast, poste den Log nochmal, außer es geht dann. -