hey wen ich /bizeinzahlen 200 eingebe sagt er mir das ich 500 eingezahlt habe aba wen ich bei /bizstats nach schaue oda in der Datei nach schaue zeigt er 0 an
kann mir da wer sagen was falsch ist ?
ocmd:bizeinzahlen(playerid,params[])
{
for(new bizzes;bizzes<MAX_BIZZES;bizzes++)
{
if(IsPlayerInRangeOfPoint(playerid,5,BSystem[bizzes][BizX],BSystem[bizzes][BizY],BSystem[bizzes][BizZ]))
{
new name[MAX_PLAYER_NAME];
new BizGeld;
new string[128];
if(sscanf(params,"i",BizGeld))return SendClientMessage(playerid,ROT,"/bizeinzahlen [Summe]");
if(GetPlayerMoney(playerid) < BizGeld)return SendClientMessage(playerid,ROT,"Du hast nicht Genügen geld");
GetPlayerName(playerid,name,sizeof name);
if(strcmp(BSystem[bizzes][Biz_Besitzer],name) != 0)return SendClientMessage(playerid,ROT,"Dir Gehört Die Firma nicht!");
GivePlayerMoney(playerid,-BizGeld);
BSystem[bizzes][Biz_einahmen] +=BizGeld;
SendClientMessage(playerid,GELB,string);
killBizzes(bizzes);
LadeBizzes(bizzes);
}
}
return 1;
}Biz laden BSystem[Bizz_ID][Biz_einahmen] = dini_Int(pfad,"einahmen");
lg kifkat
Einzahlen Geht nicht
- Kevin B.
- Geschlossen
- Erledigt
-
-
Gebe bevor du Bizzes killst mal den wert BSystem[bizzes][Biz_einnahmen] aus.
Und schau ob der wert überhaupt gesetzt wird. -
wie jetzt `?
-
printf bzw Debug methoden anwenden.
-
ich hab das Ingame Eingegeben /bizeinzahlen 2000
und das Kamm bei raus [20:04:57] DEBUG: ID: 0 Einzahlen: 3015
bei den printf
printf("DEBUG: ID: %d Einzahlen: %d",bizzes,BSystem[bizzes][Biz_einahmen]); -
Speicherst du die Bizzes auch beim "killen"
Und war der Betrag vor dem einzahlen 1015?
Stimmt die ID überein auf dem du das Geld einzahlen willst? -
ich würde sagen es liegt an der id id 0 ? oder hat das bizz id0?
-
Kavkus
ID Stimmt Überein
kill ne hab ich nicht muss ich da was einstellen ?
stock killBizzes(Bizz_ID)
{
return Delete3DTextLabel(BSystem[Bizz_ID][Biz_label]);
}janpplayer
ja es soll an ID 0 gehen -
Hm.
Wenn du etwas einzahlst und diesen Wert nicht in die Datei/Tabelle einträgst aber sie danach sofort wieder lädst.
Kann der neue Wert auch nichtmehr rauskommen.
Wenn du verstehst was ich meine. -
wie könnte ich es am besten einstellen?
-
Am besten garnicht erneut Laden.
Denn der Wert wird ja bis der Server neugestartet/gestoppt wird gehalten.
Deshalb würde ich beim Gamemodeexit eine speicherfunktion für die Bizzes machen. -
also so?
stock BizesSpeichern()
{
new pfad[50];
for(new bizzes=0;bizzes<MAX_BIZZES;bizzes++)
{
format(bizzes,sizeof(bizzes),"/bizzes/%d.txt",name);
dini_IntSet(bizzes,"einahmen",BSystem[bizzes][Biz_einahmen]);
}
return 1;
} -
ja wenn das so ist: stock killBizzes(Bizz_ID)
{
return Delete3DTextLabel(BSystem[Bizz_ID][Biz_label]);
}dann ists klar denn wo wird denn da bitte gesaved?
mach die funktionen wie killBizzes und Laden raus dann gehts
MFG
-
Wenn du nun die Funktion noch Fehlerhaft in dein Script schreibst geht es auch.
So wie der Code da oben steht wird es nicht gehen.
Wenn weitere Fragen bestehen, stehe ich gerne zur verfügung. -
hää warum wirt es so nicht geh wie sollte es den gehen ?
-
Sry, hatte das Thema gelesen wo du den Code noch anderst hattest.
Oder habe ich mich verschaut?
Aufjedenfall stimmt es nun.
Kannst ja mal dein Glück mit allen Variablen versuchen. -
ja ich hatte ihn noch mal abgeändert da ich nen Fehler drin Fante
jetzt iss aba imma noch einer Dirne ?
stock BizesSpeichern()
{
for(new bizzes=0;bizzes<MAX_BIZZES;bizzes++)
{
format(bizzes,sizeof(bizzes),"/bizzes/%d.txt",bizzes);//90
dini_IntSet(bizzes,"einahmen",BSystem[bizzes][Biz_einahmen]);//91
}
return 1;
}C:\Users\kifkat\Documents\[POD]\pawno\include\bizzes.inc(90) : error 035: argument type mismatch (argument 1)
C:\Users\kifkat\Documents\[POD]\pawno\include\bizzes.inc(90) : error 035: argument type mismatch (argument 1)
C:\Users\kifkat\Documents\[POD]\pawno\include\bizzes.inc(91) : error 035: argument type mismatch (argument 1)
iss doch Richtig ? -
Du hast zwei mal bizzes verwendet.
-
okay hab es nun nun hab ich das Problem das er es bei ID 1 nicht einzahlt(nicht Speichern)ocmd:bizeinzahlen(playerid,params[])
{
for(new bizzes;bizzes<MAX_BIZZES;bizzes++)
{
if(IsPlayerInRangeOfPoint(playerid,5,BSystem[bizzes][BizX],BSystem[bizzes][BizY],BSystem[bizzes][BizZ]))
{
new name[MAX_PLAYER_NAME];
new BizGeld;
new string[128];
if(sscanf(params,"i",BizGeld))return SendClientMessage(playerid,ROT,"/bizeinzahlen [Summe]");
if(GetPlayerMoney(playerid) < BizGeld)return SendClientMessage(playerid,ROT,"Du hast nicht Genügen geld");
GetPlayerName(playerid,name,sizeof name);
if(strcmp(BSystem[bizzes][Biz_Besitzer],name) != 0)return SendClientMessage(playerid,ROT,"Dir Gehört Die Firma nicht!");
GivePlayerMoney(playerid,-BizGeld);
BSystem[bizzes][Biz_einahmen] +=BizGeld;
SendClientMessage(playerid,GELB,string);
printf("DEBUG: ID: %d Einnahmen: %d",bizzes,BSystem[bizzes][Biz_einahmen]);
BizesSpeichern(bizzes);
killBizzes(bizzes);
LadeBizzes(bizzes);
}
}
return 1;
}stock BizesSpeichern(Bizz_id)
{
new pfad[50];
format(pfad,sizeof(pfad),"/bizzes/%d.txt",pfad);//90
dini_IntSet(pfad,"einahmen",BSystem[Bizz_id][Biz_einahmen]);//91
return 1;
}[20:37:29] DEBUG: ID: 1 Einzahlen: 1
Id 1 Korrekt 1Dolla Korrekt
aba er Speichert es nicht und Zeigt es nicht an
Danke da du mir helfen Tust -
Schau die Zeile 90 mal genauer an,
dürftest mittlerweile selbst draufkommen. -