Fällt dir was auf ?
SendClientMessage(playerid, COLOR_LIGHTBLUE, aname);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PS: Das erste steht ab Admin Level = 5
Fällt dir was auf ?
SendClientMessage(playerid, COLOR_LIGHTBLUE, aname);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PS: Das erste steht ab Admin Level = 5
War ja auch bescheuert, was ich dir da reingeschrieben hab. Machs mal so
public GamemodeColorAender()
{
if(ColorChanger == 1)
{
for(new i = 0;i<MAX_PLAYERS;i++)
{
TextDrawHideForPlayer(i,ModeName);
TextDrawShowForPlayer(i,ModeName);
TextDrawColor(ModeName, COLOR_GFR_BLUE);
}
ColorChanger = 2;
}
else if(ColorChanger == 2)
{
for(new i = 0;i<MAX_PLAYERS;i++)
{
TextDrawHideForPlayer(i,ModeName);
TextDrawShowForPlayer(i,ModeName);
TextDrawColor(ModeName, COLOR_GREEN);
}
ColorChanger = 1;
}
}
edit: Ansonsten Stell die Var mal mit ColorChanger ++; und ColorChanger --; um bzw benutz booleans.
GangzoneOwner[0] = dini_Get("Gangzone.txt", "pz");
GangzoneOwer ist denke ich kein String, mögest du mich bitte bestätigen oder berichtigen.
Gehen wir davon aus Die Variable ist ein Array für Integer. Dort kann dann in der Form wie du sie dort verwendet nur ein Int Wert gespeichert werden. Die Funtkion dini_Get gibt jedoch einen String aus.
Ändere es dann dementsprechend in dini_Int. (Ich glaube der Befehl hieß dini_Int)
Nebenbei wird die Farbe nur bei Spieler playerid=0 geändert, da du die Funktion nicht über einen Befehl sondern über einen Timer aufrufst. Ergo den Parameter playerid entfernen und dafür eine
for-Loop laufen lassen.
public GamemodeColorAender()
{
for(new i = 0;i<MAX_PLAYERS;i++)
{
if(ColorChanger == 1)
{
TextDrawHideForPlayer(i,ModeName);
TextDrawShowForPlayer(i,ModeName);
TextDrawColor(ModeName, COLOR_GFR_BLUE);
ColorChanger = 2;
}
else if(ColorChanger == 2)
{
TextDrawHideForPlayer(i,ModeName);
TextDrawShowForPlayer(i,ModeName);
TextDrawColor(ModeName, COLOR_GREEN);
ColorChanger = 1;
}
}
}
Also hinter einem Public kommt einfach kein Semikolon.
Das einzige, was ich mir noch vorstellen könnte, dass er die GROSSBUCHSTABEN nicht verkraften kann. Was ich mir allerdings nicht vorstellen kann.
Außerhalb von Publics, am besten unter inluce <a_samp>
forward blub();
In OnGameMode Init, vllt den Intervall zum testen ändern
SetTimer("blub",3000000,1);
Außerhalb eines Publics
public blub();
{
SendClientMessageToAll(ROT,"I========== DM Server =======I");
SendClientMessageToAll(ROT,"Server Scripter: DraggyxXx, D4rkCl3ric, Karl_Schuhmann");
SendClientMessageToAll(ROT,"Wir wünschen dir einen guten Flug in die HÖLLE >:D");
SendClientMessageToAll(ROT,"Danke dass Sie mit unseren Airlines abstürtzten ");
}
Aber was genau funktioniert denn nicht. Erhälst du Fehler oder Ähnliches ?
public SERVERSCRIPTER();
Semikolon weg
Kannst es ja nach einem Hit-Prinzip versuchen:
if(GetPVarInt(playerid, "Member") == 4 || GetPVarInt (playerid, "Leader") == 4)
{
new hit = 0;
for(new pv = 0; pv < sizeof(TaxiAuto); pv++)
{
new newcar =GetPlayerVehicleID (playerid);
if(newcar == TaxiAuto[pv])
{
hit = 1;
}
}
if(hit != 1)
{
SendClientMessage(playerid,TÜRKIS_BLAU,"Du kannst dieses Fahrzeug nicht benutzen!");
RemovePlayerFromVehicle(playerid);
}
}
du erstellt noch ne globale Variable, nennen wir sie message = 0;
dann änderst du einfach einen public
public AutoNaricht()
{
switch(message)
{
case 0:
{
SendClientMessageToAll(COLOR_ROT, "Message 1");
message ++;
}
case 1:
{
SendClientMessageToAll(COLOR_ROT,"Message 2");
message ++;
}
case 2: // Wenn dies die letzte Nachricht sein soll Var Message wieder auf 0 setzten, damit es von vorne beginnt
{
SendClientMessageToAll(COLOR_ROT,"Message 3");
message = 0;
}
}
}
Random oder ne spezielle Durchlaufreiehfolge ?
Änder den Public so
public repveh()
{
for(new i = 0;i<MAX_VEHICLE;i++)
{
SetVehicleHealth(i,1000); // Repariert den Motor
RepairVehicle(i); // Repariert optische Schäden und Reifen
}
return 1;
}
Irgentwo beim registrieren wird die Variable wohl gesetzt. Ums abspeichern brauchste dir erstmal keine Sorgen machen, da das eh schon vorhanden ist.
Also du solltest schaun wie man sich registriert und welche Schritte dabei im Script durchlaufen werden. In einem Dieser Schritte werden die ganzen Variablen wie Jobs uws gesetzt werden. Darunter wird vermutlich auch eine Variable für das Geld auf der Hand und für das Geld auf dem Konto sein. Dort einfach den eingetragenen Wert beliebig ändern.
forward repveh();
#define MAX_VEHICLE hierdeinevehiclezahl
Kommt oben ins Script.
SetTimer("repveh",1000,1);
Kommt unter OnGameModeInit
public repveh()
{
for(new i = 0;i<MAX_VEHICLE;i++)
{
SetVehicleHealth(i,1000);
}
return 1;
}
Kommt irgentwo zwischen zwei andere Publics oder einfach ans Ende
Durch den Befehl DisableInteriorEnterExits(); verschwinden halt alle GTA Basierten EIngänge.
Die musst du jetzt alle durch Pickups ersetzen.
Du hast nun zwei Möglichkeiten:
1. Wenn man in das Pickup reinläuft, wird man direkt in den laden geportet.
2. Man muss erst /enter o.ä nutzen und wird dann geportet.
Nö, dann einfach die Abfrage rausnehmen:
forward repveh();
#define MAX_VEHICLE hierdeinevehiclezahl
SetTimer("repveh",1000,1);
public repveh()
{
for(new i = 0;i<MAX_VEHICLE;i++)
{
SetVehicleHealth(i,1000);
}
return 1;
}
forward repveh();
#define MAX_VEHICLE hierdeinevehiclezahl
SetTimer("repveh",1000,1);
public repveh()
{
for(new i = 0;i<MAX_VEHICLE;i++)
{
if(i == welche vehicleid halt gehealt werden soll)
{
SetVehicleHealth(i,1000);
}
}
return 1;
}
Healt alle 1000 MS also jede Sekunde die angegebenen Autos. Diese musst du selber noch definieren.
new id = strval(strget(cmdtext,1));
SetTimerEx("jailtime1",60000,false,"i",id);
Wenn du wir oben beschrieben deine id ausliest, musst du diese so übermitteln (auch oben)