Hallo ich hbae das fraktionskassensystem:
Frowards:
forward LoadFraktionsKassen();
forward SaveFraktionsKassen();
Laden
public LoadFraktionsKassen()
{
new File:Kasse = fopen("Fraktionskassen.cfg",io_read);
new idx = 0;
new read[128];
while(idx < sizeof(FraktionsKasse))
{
fread(Kasse,read);
for(new x=0; x<strlen(read); x++)
{
if(read[x]== '\n')
{
read[x] = '\0';
}
}
FraktionsKasse[idx] = strval(read);
idx++;
}
fclose(Kasse);
return 1;
}
Saven:
public SaveFraktionsKassen()
{
new File:Kasse = fopen("Fraktionskassen.cfg",io_write);
new write[24];
for(new idx; idx < sizeof(FraktionsKasse); idx++)
{
format(write,sizeof(write),"%d\n",FraktionsKasse[idx]);
fwrite(Kasse,write);
}
fclose(Kasse);
return 1;
}
GameModeInit:
LoadFraktionsKassen();
Nach jeder einzahlung oder abbuchung
SaveFraktionsKassen();
Befehle
// >>>>>>>>>>>>>>>>> Fraktionskassen-System <<<<<<<<<<<<<<<<<
if(strcmp(cmd,"/fkasse",true) == 0)
{
new fraktion = 0;
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_GRAD5," /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_GRAD5," /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_WHITE," Bitte nur Summen in Höhe von 1 bis 1 Million Dollar!");
if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid,COLOR_WHITE," Du hast nicht soviel Geld um es einzuzahlen!");
FraktionsKasse[fraktion] += amount;
GivePlayerMoney(playerid,-amount);
format(string,sizeof(string)," Du hast $%d in die Fraktionskasse eingezahlt! Total: $%d",amount,FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_WHITE,string);
format(string,sizeof(string)," %s hat $%d in die Fraktionskasse eingezahlt! Total: $%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_GRAD5," /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)," Du hast $%d aus der Fraktionskasse genommen! Total: $%d",amount,FraktionsKasse[fraktion]);
SendClientMessage(playerid,COLOR_WHITE,string);
format(string,sizeof(string)," %s hat $%d aus der Fraktionskasse genommen! Total: $%d",sendername,amount,FraktionsKasse[fraktion]);
SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
SaveFraktionsKassen();
}
else
{
SendClientMessage(playerid,COLOR_GRAD5," /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_WHITE," Du bist in gar keiner Fraktion!");
return 1;
}
if(strcmp(cmd,"/setfkasse",true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1337)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_GRAD5," /setfkasse [FraktionsID] [Betrag]");
return 1;
}
new fraktion = strval(tmp);
if(fraktion < 0 || fraktion > 24) return SendClientMessage(playerid,COLOR_WHITE," Diese Fraktion gibt es nicht!");
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
format(string,sizeof(string)," /setfkasse %d [Betrag]",fraktion);
SendClientMessage(playerid,COLOR_GRAD5,string);
return 1;
}
new amount = strval(tmp);
if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_WHITE," Bitte nur Summen in Höhe von 1 bis 1 Million Dollar!");
format(string,sizeof(string)," %s hat die Fraktionskasse von %s auf $%d gesetzt!",sendername,Fracs[(fraktion-1)],amount);
ABroadCast(COLOR_LIGHTRED,string,1337);
FraktionsKasse[(fraktion-1)] = amount;
}
return 1;
}
Die Frage: Warum funktioniert dieser Code nicht???
FraktionsKasse[1] += 5000;
ich hatte das hier aus fkasse einzahlen raus genommen:
FraktionsKasse[fraktion] += amount;
da ich aber möchte das wenn etwas passiert in meinem fall die bombe explodiert,
das ein fester betrag in eine fraktionskasse eingezahlt wird.
also dachte cih ich ersetze
FraktionsKasse[fraktion] += amount;
durch
FraktionsKasse[1] += 5000;
demnach sollte doch fraktion 1 5000 bekommen ???
das passiert aber nicht!?!
Was kann cih amchen
(C) BY LOH 0.4