es fehlt wo du das Nummernschild setzt. den format hast du schon
format(plate, sizeof(plate), "%c%c%c %d", toupper(name[0]), toupper(name[1]),toupper(name[2]), random(500000)+1);
es fehlt wo du das Nummernschild setzt. den format hast du schon
format(plate, sizeof(plate), "%c%c%c %d", toupper(name[0]), toupper(name[1]),toupper(name[2]), random(500000)+1);
hab ein update stock hinbekommen
Indem du beim Auffüllen noch das Label updatest..
wiki.sa-mp.com/wiki/Update3DTextLabelText
danke für den Tipp
Problem:
Wenn ich ein Autohaus erstellen will, dann erstellt er das autohaus 4 mal.. wo ist hier der Fehler?
ocmd:aherstellen(playerid, params[])
{
new erstellteAutohauser, aBesitz[MAX_PLAYER_NAME], aInteil[MAX_PLAYER_NAME], aName[40], gGekauftJaNein;
if(sscanf(params, "sssd",aBesitz, aInteil, aName,gGekauftJaNein)) return SendClientMessage(playerid, Weiss, "/aherstellen [Besitzer][Inteilhaber][AutohausName[Siehe Vorgaben]][0 = Zukaufen 1= Verkauft]");
for(new i = 0; i<Max_Autohauser; i++)
{
new Float:aa_x, Float:aa_y, Float:aa_z;
GetPlayerPos(playerid, aa_x, aa_y, aa_z);
AutohausInfo[i][ah_ID] = i;
AutohausInfo[i][aa_Name] = aName;
AutohausInfo[i][aa_Besitzer] = aBesitz;
AutohausInfo[i][aa_Inteilhaber] = aInteil;
AutohausInfo[i][Pos_x] = aa_x;
AutohausInfo[i][Pos_y] = aa_y;
AutohausInfo[i][Pos_z] = aa_z;
AutohausInfo[i][GekauftJaNein] = gGekauftJaNein;
new path[64];
format(path, sizeof(path), "/Autohauser/%d.ini", i);
if(!fexist(path)) continue;
dini_Create(path);
dini_IntSet(path, "aa_ID", i);
dini_Set(path, "aaName", aName);
dini_Set(path, "Besitzer", aBesitz);
dini_Set(path, "Inteilhaber", aInteil);
dini_IntSet(path, "Kasse", 0);
dini_FloatSet(path, "aa_x", aa_x);
dini_FloatSet(path, "aa_y", aa_y);
dini_FloatSet(path, "aa_z", aa_z);
dini_IntSet(path, "GekauftJaNein", gGekauftJaNein);
SpeichereAutohauser();
new string[200];
format(string, sizeof(string), "%s\nBesitzer: %s\nInteilhaber: %s\nKasse: %d$", AutohausInfo[i][aa_Name], AutohausInfo[i][aa_Besitzer], AutohausInfo[i][aa_Inteilhaber],AutohausInfo[i][aa_Kasse]);
print(string);
Label[i] = Create3DTextLabel(string, Weiss, AutohausInfo[i][Pos_x], AutohausInfo[i][Pos_y], AutohausInfo[i][Pos_z]+0.5,5,0,0);
erstellteAutohauser++;
}
return 1;
}
aber es wird die falsche businessid ausgegeben im print...
mit dem break geht es jetzt.
wie kann ich das label updaten ? also beispielsweise mt einem stock oder public AutohauserUpdaten
Positionen / Daten von 1 und 2 sind irgendwie identisch?
eig sollte das net so sein
AutohausInfo[i][ah_ID] = CreatePickup
hab ich geändert
Kann man das so machen oder gibt es eine bessere methode?
forward MotorradShopKasse();
public MotorradShopKasse()
{
for(new i = 0; i<Max_Businesses; i++)
{
new string[40];
format(string, sizeof(string), "Motorrad-Shop");
if(!strcmp(AutohausInfo[i][aa_Name], string, true, 13))
{
AutohausInfo[i][aa_Kasse] += 100;
SpeichereAutohauser();
AutohauserLaden();
printf("Kasse BusinessID: %d aufgefüllt um 100$", AutohausInfo[i][ah_ID]);
}
}
return 1;
}
Es macht wenig Sinn, die Pickupids als AutohausID zu verwenden
mach ich doch nicht oder?
Dann printe...doch mal, was die Datein so ausspucken und ob alles richtig geladen wird
zeig mal den Part wo du diesen DIalog aufrufst.
So klappt es..
aber aus Gründen welche ich grad nicht verstehe.. haben die businesses plötzlich die id 25, 26, 27 statt 0, 1, 2.... und es wird nur eins erstellt (ingme) obwohl 3 Ini datein bestehen...
case DIALOG_FPLAYAanmeldung:
{
{
{
was denkst du dir dabei?
Es ist immer besser sich etwas auszudenken. Sich dann daran zusetzen und es versuchen umzusetzen. treten probleme aus machst du hier ein Thema und wir helfen dir ..
Laden des Autohauses:
stock AutohauserLaden()
{
new erstellteAutohauser, path[64];
for(new i = 0; i<Max_Businesses; i++)
{
format(path, sizeof(path),"/Businesses/%d.ini",i);
if(!fexist(path)) continue;
AutohausInfo[i][ah_ID] = dini_Int(path, "aa_ID");
strmid(AutohausInfo[i][aa_Name], dini_Get(path, "aaName"), false, strlen(dini_Get(path, "aaName")), 40);
strmid(AutohausInfo[i][aa_Besitzer], dini_Get(path, "aBesitzer"), false, strlen(dini_Get(path, "aBesitzer")), MAX_PLAYER_NAME);
strmid(AutohausInfo[i][aa_Inteilhaber], dini_Get(path, "aInteilhaber"), false, strlen(dini_Get(path, "aInteilhaber")), MAX_PLAYER_NAME);
AutohausInfo[i][Pos_x] = floatstr(dini_Get(path, "aa_x"));
AutohausInfo[i][Pos_y] = floatstr(dini_Get(path, "aa_y"));
AutohausInfo[i][Pos_z] = floatstr(dini_Get(path, "aa_z"));
printf("AutohausID %d geladen. Inhaber: %s, Inteilhaber: %s, Pos_x; %f, Pos_y; %f, Pos_z; %f", i,AutohausInfo[i][aa_Besitzer], AutohausInfo[i][aa_Inteilhaber],AutohausInfo[i][Pos_x],AutohausInfo[i][Pos_y],AutohausInfo[i][Pos_z]);
AutohausInfo[i][ah_ID] = CreatePickup(1272, 1, AutohausInfo[i][Pos_x], AutohausInfo[i][Pos_y], AutohausInfo[i][Pos_z] ,0);
erstellteAutohauser++;
if(erstellteAutohauser == Max_Businesses) return print("Es können keine weiteren Businesses geladen werden.");
}
return 1;
}
Speichern des Autohauses:
forward SpeichereAutohauser();
public SpeichereAutohauser()
{
new path[64];
for(new i = 0; i<Max_Businesses; i++)
{
format(path, sizeof(path), "/Businesses/%d.ini", i);
dini_IntSet(path, "aa_ID", AutohausInfo[i][ah_ID]);
dini_Set(path, "aaName", AutohausInfo[i][aa_Name]);
dini_Set(path, "Besitzer", AutohausInfo[i][aa_Besitzer]);
dini_Set(path, "Inteilhaber", AutohausInfo[i][aa_Inteilhaber]);
}
return 1;
}
wat willst du jenau wissen
trotzdem nicht
und die Namen werden auch nicht ausgelesen aus der Ini datei.. Pos_x, Pos_y und Pos_z schon aber der Name des Besitzers und des inteilhabers nicht
meine virtuelle welt ist zu 100 % 0 und die distance 5 reicht mir
und weiß ist so definiert: 0xFAFAFA00
hallo ihr lieben,
ich hab ein autohaus system und das problem ist, dass das Create3DTextLabel nicht erstellt wird... das Pickup jedoch schon..
for(new i = 0; i<Max_Businesses; i++)
{
new string[200];
format(string, sizeof(string), "%s\nBesitzer: %s\nInteilhaber: %s", AutohausInfo[i][aa_Name], AutohausInfo[i][aa_Besitzer], AutohausInfo[i][aa_Inteilhaber]);
print(string);
Create3DTextLabel(string, Weiss, AutohausInfo[i][Pos_x], AutohausInfo[i][Pos_y], AutohausInfo[i][Pos_z]+0.5,5,0,0);
}
Was ist das problem? Jedes andere Label wird erstellt.. nur dieses nicht..
Du hast das Dollar-Zeichen hinten hin gemacht. Das ist von der Schreibweise her nicht richtig.Daher auch der Punkt an der falschen Stelle.
Wenn du es zwingend so haben willst, dann so:
new str[16], money = GetPlayerMoney(playerid);format(str, sizeof(str), "%d$", money);if(money >= 0){ for(new i = strlen(str)-4; i > 0; i-=3) strins(str, ".", i);}else{ for(new i = strlen(str)-4; i > 1; i-=3) strins(str, ".", i);}PlayerTextDrawSetString(playerid, pMoneyText[playerid], str);
vielen Dank hat geklappt
new str[16], money = GetPlayerMoney(playerid);format(str, sizeof(str), "$%d", money);if(money >= 0){ for(new i = strlen(str)-3; i > 1; i-=3) strins(str, ".", i);}else{ for(new i = strlen(str)-3; i > 2; i-=3) strins(str, ".", i);}PlayerTextDrawSetString(playerid, pMoneyText[playerid], str);
sa-mp-044.png passt net ganz...
Ich sehe leider gar nicht durch... und verstehe ehrlich gesagt nicht, was was bedeutet...
Ich möchte in einem Textdraw den Stand des Bankkontos anzeigen lassen. Wie kann ich wenn jemand beispielsweise 1.000.000 $ hat punkte nach jeder dritten Zahl machen?
also zurzeit steht es so
1000000
ich möchte es so:
1.000.000
Fehler behoben.
habs geschafft, danke für den Denkanstoß