Wie kann ich das scripten, das eine Gang pro Gebiet was die besitzen stündlich 5.000$ in die Gangkasse bekommen? Ich bräuchte bisschen Denkhilfe wie das klappen soll.
Ich benutze ein GF [IR Script]falls das eine Rolle spielt
mfg
Wie kann ich das scripten, das eine Gang pro Gebiet was die besitzen stündlich 5.000$ in die Gangkasse bekommen? Ich bräuchte bisschen Denkhilfe wie das klappen soll.
Ich benutze ein GF [IR Script]falls das eine Rolle spielt
mfg
Wenn es nur eine Denkhilfe sein soll...
Dann setzt du einen Timer "GangTimer = Settimer("stündlich",interval, true)", dass true damit es sich wiederholt.
Du lässt ihn starten, sobald die jeweilige Fraktion ein Gebiet eingenommen hat, den Timer laufen (versteht sich netürlich für jede Frak einen).
Sobald das Gebiet wieder eingenommen wurde "killst du den Timer" "KillTimer(GangTimer);"
Müsste dir eigentlich helfen
L.G.
heyho
Ich glaube er möchte eher das pro Ganggebiet pro Payday was dazukommt.
Ganz einfache denkweiße: alle Gebiete abfragen, haben sie die gleiche Owner ID wie die Fraktion --> +$5.000
Gangkasse
Ich glaube er möchte eher das pro Ganggebiet pro Payday was dazukommt.
Ganz einfache denkweiße: alle Gebiete abfragen, haben sie die gleiche Owner ID wie die Fraktion --> +$5.000
Glaube ich nicht
L.G.
heyho
Scripte einen 2. Payday.
Nur ein stündlicher Timer, doch nicht für alle Gangs einen eigenen Timer :O evtl. In einem bestehenden einfügen!
Schleife durch alle Gebiete -> Kbank der ownerid (sofern es eine Gang ist, mögliche Fehler vermeiden) +5.000$.
Mit Nachricht an alle Gangmitglieder?
Evtl die Gangpayday Zeit in der Datenbank speichern wegen Restart und so.
public GangPayDay()
{
for(new g = 0; g < sizeof(GangfightSystemInfo); g++)
{
if(GangfightSystemInfo[gOwnerID]
}
return 1;
}
ist das bis jetzt richtig? XD weiter komm ich i,wie nicht :s
So ungefährt musste es machen, aber natürlich bearbeiten auf deine Funktionen
public GangPayDay()
{
new count; //Ein Zähler um die Fraktionen zu zählen.
for(new FraktionID = 0; FraktionID < /*ANZAHL DER FRAKTIONEN*/; FraktionID++) //Schleife die Alle Fraktionen durchgeht.
{
for(new Gebiet = 0; Gebiet < /*ANZAHL DER GANGWAR-GEBIETE*/; Gebiet++){ //Schleife die Alle GW-Gebiete durchgeht.
if(GehoertGebiet[Gebiet] == FraktionID){ //Abfrage ob das Gebiet der Fraktion gehört
count++; //Wenn ja, wird der Zähler um 1 erhöht. (++ bedeutet +1)
}
}
GibtFraktionGeld(FraktionID,count*5000); // Anzahl der Gebiete (count = Zähler = Anzahl der Gebiete) * 5.000$
}
return 1;
}
Wieso 2 Schleifen?
Würde es nicht besser sein Die Ganggebiete durchlaufen zu lassen und das dann auf die Fraktionen zu Addieren?
Oder hab ich mal wiedern Denkfehler?
Wieso 2 Schleifen?
Würde es nicht besser sein Die Ganggebiete durchlaufen zu lassen und das dann auf die Fraktionen zu Addieren?
Oder hab ich mal wiedern Denkfehler?
Naja, er fragt für jede Fraktion (1. Schleife) jedes Gangwargebiet (2. Schleife) ab, ob es der jeweiligen Fraktion (1. Schleife) gehört.
Man könnte es schon mit nur einer Schleife machen, aber mit 2. ist es mMn einfacher und nicht allzu unständlich
Alles anzeigenSo ungefährt musste es machen, aber natürlich bearbeiten auf deine Funktionen
public GangPayDay()
{
new count; //Ein Zähler um die Fraktionen zu zählen.
for(new FraktionID = 0; FraktionID < /*ANZAHL DER FRAKTIONEN*/; FraktionID++) //Schleife die Alle Fraktionen durchgeht.
{
for(new Gebiet = 0; Gebiet < /*ANZAHL DER GANGWAR-GEBIETE*/; Gebiet++){ //Schleife die Alle GW-Gebiete durchgeht.
if(GehoertGebiet[Gebiet] == FraktionID){ //Abfrage ob das Gebiet der Fraktion gehört
count++; //Wenn ja, wird der Zähler um 1 erhöht. (++ bedeutet +1)
}
}
GibtFraktionGeld(FraktionID,count*5000); // Anzahl der Gebiete (count = Zähler = Anzahl der Gebiete) * 5.000$
}
return 1;
}
Problem ist, wie mache ich eine Schelife der die ganzen Fraktionen durch geht, Gangfightgebiete weiß ich aber Fraktionen
Irgendwo wirst du die Fraktionen ja definiert haben, also auch wissen wieviele es sind. Wenn du schlau bist speicherst du die anzahl in einer Variable, so musst du nicht immer das ganze script umändern sondern nur die Variable.
Irgendwo wirst du die Fraktionen ja definiert haben, also auch wissen wieviele es sind. Wenn du schlau bist speicherst du die anzahl in einer Variable, so musst du nicht immer das ganze script umändern sondern nur die Variable.
Im IR Script finde ich es, habe schon eine halbe Stunde gesucht. Das ist echt umständlich gescriptet
Hast du TV, dann kann ich ja mal schauen
Kann ja nicht so schwer sein xd
Eine Schleife ist viel einfacher ...
Dein Ansatz ist richtig Gio!
Soll eine Nachricht erscheinen?
Eine Schleife ist viel einfacher ...
Dein Ansatz ist richtig Gio!
Soll eine Nachricht erscheinen?
Hab bis jetzt so, doch i.wie bekommt Triaden auch Geld obwohl alle Gebiete Ballas hat :s
public GangPayDay()
{
new count,str[128];
for(new Frak = 0; Frak< 26; Frak++){
for(new GB = 0; GB<8; GB++){
if(GangfightSystemInfo[GB][GFOwnerID] == Frak)count++;
}
KassenInfo[Frak][tKasse] += count * 5000;
}
ForAllPlayers(i)
{
if(IsAGangMember(i))
{
format(str,128,"Gebiete: %d\nGeld für die Gebiete: %d$",count,count*5000);
SendClientMessage(i,COLOR_YELLOW,str);
}
}
return 1;
}
Deine schleife hat 2 probleme:
1. count wird nicht zurückgesetzt, wenn Fraktion 1 2 Gebiete hatte bekommt Fraktion 2, 3, 4, ..., 18 die auch
2. die Zweiter Schleife gibt allen Spielern das endergebnis aus. eig sollte das immer das Gleiche sein.
Habs mal berichtigt:
public GangPayDay()
{
new count,str[128];
for(new Frak = 0; Frak< 26; Frak++){
count = 0;
for(new GB = 0; GB<8; GB++){
if(GangfightSystemInfo[GB][GFOwnerID] == Frak)count++;
}
KassenInfo[Frak][tKasse] += count * 5000;
format(str,128,"Gebiete: %d\nGeld für die Gebiete: %d$",count,count*5000);
SendFamilyMessage(Frak,COLOR_YELLOW,str); // Der Befehl, der wie /f eine Nachricht an alle aus der Fraktion sendet.
}
return 1;
}
SendFamilyMessage gegebenfalls auf dein System anpassen.