Hallo liebe leute unzwar hab ich grade für mein Script das Fraktionkassen system umgeschrieben in Dialoge
Alles soweit gut man kann ein und aus zahlen nur scheint es für jede Fraktion nur eine Kasse zu geben.
Heißt wenn ich beim LSPD was einzahle hab ich die gleiche Summe beim LCN
Wie kann ich das beheben?
Hier der Code:
//FKASSE
if(dialogid == DIALOG_FKASSE)
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid,DIALOG_FKASSE2,DIALOG_STYLE_INPUT,"Einzahlen","Gebe den gewünschten Betrag ein den du einzahlen möchtest:","Einzahlen","Abbrechen");
return 1;
}
if(listitem == 1)
{
ShowPlayerDialog(playerid,DIALOG_FKASSE3,DIALOG_STYLE_INPUT,"Auszahlen","Gebe den gewünschten Betrag ein den du einzahlen möchtest:","Auszahlen","Abbrechen");
return 1;
}
if(listitem == 2)
{
format(string,sizeof(string),"In der Fraktionskasse sind insgesamt $%d Dollar.",FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GREEN,string);
}
}
}
//FKASSE einzahlen
if(dialogid == DIALOG_FKASSE2)
{
if(response)
{
new amount = strval(inputtext);
if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_RED,"Sie maximal nur 1 Mio. Doller einzahlen.");
if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid,COLOR_RED,"Sie haben nicht soviel Geld.");
FraktionsKasse[fraktion] += amount;
GivePlayerMoney(playerid,-amount);
format(string,sizeof(string),"Sie haben $%d in die Fraktionskasse eingezahlt. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GREEN,string);
format(string,sizeof(string),"%s hat $%d in die Fraktionskasse eingezahlt. Gesamt: $%d",sendername,amount,FraktionsKasse[fraktion]);
SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
SaveFraktionsKassen();
}
}
//FKASSe auszahlen
if(dialogid == DIALOG_FKASSE3)
{
if(response)
{
new amount = strval(inputtext);
if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_WHITE," Nur Leader dürfen Geld aus der Fraktionskasse nehmen!");
if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_WHITE," Bitte nur Summen in Höhe von 1 bis 1 Million Dollar!");
if((FraktionsKasse[fraktion] - amount) < 0) return SendClientMessage(playerid,COLOR_WHITE," Du kannst keine Schulden machen!");
FraktionsKasse[fraktion] -= amount;
GivePlayerMoney(playerid,amount);
format(string,sizeof(string),"Sie haben $%d aus der Fraktionskasse genommen. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GREEN,string);
format(string,sizeof(string),"%s hat $%d aus der Fraktionskasse genommen. Gesamt: $%d",sendername,amount,FraktionsKasse[fraktion]);
SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
SaveFraktionsKassen();
}
}
Fraktionskasse für jede Fraktion individuell
- Kit
- Geschlossen
- Erledigt
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
-
-
FraktionsKasse[fraktion]
Wird wo definiert?
-
ganz oben
new fraktion = 0; -
dit kanns ned sein, guck nochma richtig nach...
-
Ursprünglich wars ja so
Spoiler anzeigen if(strcmp(cmd,"/fkasse",true) == 0)
{
new fraktion = 0;
GetPlayerName(playerid,sendername,sizeof(sendername));
if(PlayerInfo[playerid][pMember] > 0) fraktion = PlayerInfo[playerid][pMember] - 1;
if(PlayerInfo[playerid][pLeader] > 0) fraktion = PlayerInfo[playerid][pLeader] - 1;
if(fraktion >= 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze: /fkasse [einzahlen/auszahlen] [Betrag]");
format(string,sizeof(string)," Derzeit sind $%d in der Fraktionskasse.",FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GRAD5,string);
return 1;
}
if(strcmp(tmp,"einzahlen",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze: /fkasse einzahlen [Betrag]");
format(string,sizeof(string),"Derzeit sind $%d in der Fraktionskasse.",FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GRAD5,string);
return 1;
}
new amount = strval(tmp);
if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_RED,"Sie maximal nur 1 Mio. Doller einzahlen.");
if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid,COLOR_RED,"Sie haben nicht soviel Geld.");
FraktionsKasse[fraktion] += amount;
GivePlayerMoney(playerid,-amount);
format(string,sizeof(string),"Sie haben $%d in die Fraktionskasse eingezahlt. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GREEN,string);
format(string,sizeof(string),"%s hat $%d in die Fraktionskasse eingezahlt. Gesamt: $%d",sendername,amount,FraktionsKasse[fraktion]);
SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
SaveFraktionsKassen();
}
else if(strcmp(tmp,"auszahlen",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze /fkasse auszahlen [Betrag]");
format(string,sizeof(string),"Derzeit sind $%d in der Fraktionskasse.",FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GRAD5,string);
return 1;
}
new amount = strval(tmp);
if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_WHITE," Nur Leader dürfen Geld aus der Fraktionskasse nehmen!");
if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_WHITE," Bitte nur Summen in Höhe von 1 bis 1 Million Dollar!");
if((FraktionsKasse[fraktion] - amount) < 0) return SendClientMessage(playerid,COLOR_WHITE," Du kannst keine Schulden machen!");
FraktionsKasse[fraktion] -= amount;
GivePlayerMoney(playerid,amount);
format(string,sizeof(string),"Sie haben $%d aus der Fraktionskasse genommen. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GREEN,string);
format(string,sizeof(string),"%s hat $%d aus der Fraktionskasse genommen. Gesamt: $%d",sendername,amount,FraktionsKasse[fraktion]);
SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
SaveFraktionsKassen();
}
else
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze /fkasse [einzahlen/auszahlen] [Betrag]");
format(string,sizeof(string),"Derzeit sind $%d in der Fraktionskasse.",FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GRAD5,string);
}
}
else SendClientMessage(playerid,COLOR_RED,"Sie sind in keiner Fraktion.");
return 1;
}
habs halt danach geändert so dass man z.B. auf das Pickup im HQ geht und /fraktion schreibt dann kann man halt die Fraktionskasse auswählen und kommt auf die jeweilige Stelle mit dem Dialog
deswegen hab ich das einfach nach ganz oben geschrieben diese new fraktion, bin Anfaänger in Pawn hab vorher bisschen Java gemacht daher hab ich ein paar Parallelen gezogen -
Ursprünglich wars ja so
Spoiler anzeigen if(strcmp(cmd,"/fkasse",true) == 0)
{
new fraktion = 0;
GetPlayerName(playerid,sendername,sizeof(sendername));
if(PlayerInfo[playerid][pMember] > 0) fraktion = PlayerInfo[playerid][pMember] - 1;
if(PlayerInfo[playerid][pLeader] > 0) fraktion = PlayerInfo[playerid][pLeader] - 1;
if(fraktion >= 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze: /fkasse [einzahlen/auszahlen] [Betrag]");
format(string,sizeof(string)," Derzeit sind $%d in der Fraktionskasse.",FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GRAD5,string);
return 1;
}
if(strcmp(tmp,"einzahlen",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze: /fkasse einzahlen [Betrag]");
format(string,sizeof(string),"Derzeit sind $%d in der Fraktionskasse.",FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GRAD5,string);
return 1;
}
new amount = strval(tmp);
if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_RED,"Sie maximal nur 1 Mio. Doller einzahlen.");
if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid,COLOR_RED,"Sie haben nicht soviel Geld.");
FraktionsKasse[fraktion] += amount;
GivePlayerMoney(playerid,-amount);
format(string,sizeof(string),"Sie haben $%d in die Fraktionskasse eingezahlt. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GREEN,string);
format(string,sizeof(string),"%s hat $%d in die Fraktionskasse eingezahlt. Gesamt: $%d",sendername,amount,FraktionsKasse[fraktion]);
SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
SaveFraktionsKassen();
}
else if(strcmp(tmp,"auszahlen",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze /fkasse auszahlen [Betrag]");
format(string,sizeof(string),"Derzeit sind $%d in der Fraktionskasse.",FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GRAD5,string);
return 1;
}
new amount = strval(tmp);
if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_WHITE," Nur Leader dürfen Geld aus der Fraktionskasse nehmen!");
if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_WHITE," Bitte nur Summen in Höhe von 1 bis 1 Million Dollar!");
if((FraktionsKasse[fraktion] - amount) < 0) return SendClientMessage(playerid,COLOR_WHITE," Du kannst keine Schulden machen!");
FraktionsKasse[fraktion] -= amount;
GivePlayerMoney(playerid,amount);
format(string,sizeof(string),"Sie haben $%d aus der Fraktionskasse genommen. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GREEN,string);
format(string,sizeof(string),"%s hat $%d aus der Fraktionskasse genommen. Gesamt: $%d",sendername,amount,FraktionsKasse[fraktion]);
SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
SaveFraktionsKassen();
}
else
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze /fkasse [einzahlen/auszahlen] [Betrag]");
format(string,sizeof(string),"Derzeit sind $%d in der Fraktionskasse.",FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_GRAD5,string);
}
}
else SendClientMessage(playerid,COLOR_RED,"Sie sind in keiner Fraktion.");
return 1;
}
habs halt danach geändert so dass man z.B. auf das Pickup im HQ geht und /fraktion schreibt dann kann man halt die Fraktionskasse auswählen und kommt auf die jeweilige Stelle mit dem Dialog
deswegen hab ich das einfach nach ganz oben geschrieben diese new fraktion, bin Anfaänger in Pawn hab vorher bisschen Java gemacht daher hab ich ein paar Parallelen gezogenBitte schau dir nochmal an was an fraktion übergeben wird dan hast du auch des Rätsels Lösung.
Ich geb mal ein Tipp noch dazu sollte dies nicht verändert werden so bleibt der wert fraktion = 0;
Also 0 wie du es geschrieben hast -
aaaaaaaaaaah ich idiot
Habs danke funktioniert prima -
breadfish.de
Hat das Thema geschlossen.