Hmm, schade... War mir eigentlich sicher, dass ich darüber was gelesen hab...
Beiträge von Haxler
-
-
Hi,
Ich glaube gehört zu haben, dass es ein Filterscript (oder Ähnliches) gibt, mit dem man TextDraws anklicken kann. Weiß jemand wo ich das finden kann?mfg
-
warning 219: local variable "string" shadows a variable at a preceding level
bedeutet, dass die Variable String schon existiert. Mach einfach statt "String" "Message" oder ähnliches...
-
Dann such dir den Befehl raus, um Autos zu parken und schreib ihn ein wenig um. Einfach statt der Abfrage ob man Besitzer ist, abfragen ob der Spieler beim O-Amt ist...
-
Dazu sollten wir erstmal wissen ob du ein Carsystem hast und wenn ja, wie du es gescriptet hast...
So in der Art müsste es gehen:
Beim Befehl /opark wird überprüft ob der Spieler in der Fraktion ist. Dann wird die Position des Spieler abgefragt, der im Auto sitzt. Diese wird in die Datei des Fahrzeuges gespeichert(Geht nur wenn du ein Carsystem has(Carownership)).
-
Klar geht das. Du kannst den Timer auch schon bei OnPlayerConnect starten. Und dann einfach noch
GameTextForPlayer(playerid,"Verbindung wird hergestellt...",5000,3);
-
new knastzeit[MAX_PLAYERS];
new timer[MAX_PLAYERS];
forward knasttimer(playerid);
//bei /arrest:
knastzeit[id] = time; // Wie du das halt mit deinem Befehl gemacht hast.
timer[id] = SetTimerEx("knasttimer",1000,1,"d",id);public knasttimer(playerid);
{
if(knastzeit[playerid]<= 0)
{
KillTimer(timer[playerid]);
// Spieler aus Knast lassen
}
else
{
knastzeit[playerid]--; // pro sekunde wir von der Variable Knastzeit 1 abgezogen.
}
return 1;
}// bei OnPlayer Disconnect variable knastzeit[playerid] in Spielerdatei schreiben und bei OnPlayerConnect wieder Laden
//OnPlayerConnect:
knastzeit[playerid] = .... //laden
if(knastzeit[playerid] > 0)
{
timer[id] = SetTimerEx("knasttimer",1000,1,"d",id);
}
So in der Art müsste es klappen. -
Hi,
Scripte doch einfach, dass man Autos ab und aufschließen kann. Das wäre real und die Fraktionsmember sind selbst schuld wenn das Auto geklaut wird. Das hat auch einen Vorteil für die Polizei//Edit:
Hmm da hatte wohl jemand die gleiche Idee -
Hi,
dcmd_makeleader(playerid,params[]){
if(Spieler[playerid][Adminlevel] >= 1){
new
pID,
level,
Player[MAX_PLAYER_NAME],
MPlayer[MAX_PLAYER_NAME],
string1[128],
string2[128];
if(sscanf(params, "uc",pID,level)) { // wieso steht da ein C? level ist ein integer d.h. du musst statt c ein i bzw. ein d verwenden
return SendClientMessage(playerid,rot,"/makeleader [playerid] [Fraktion]");
}
GetPlayerName(playerid,Player,sizeof(Player));
GetPlayerName(pID,MPlayer,sizeof(MPlayer));
format(string1,sizeof(string1),"%s hat dich zum Leader einer Fraktion gemacht",Player);
SendClientMessage(playerid,grün,string1);
format(string2,sizeof(string2),"Du hast %s zum Leader einer Fraktion gemacht",MPlayer);
SendClientMessage(playerid,grün,string2);
if (level == 0) { Spieler[pID][Fraktion] = 1; SetPlayerSkin(pID,0); SendClientMessage(pID,weiss,"Du bist nun Zivilist"); }
else if (level == 1) { Spieler[pID][Fraktion] = 2; SetPlayerSkin(pID,106); SendClientMessage(pID,weiss,"Du bist nun Leader der Grove Street"); }
return 1;
}
return 0;
}if(sscanf(params, "ud",pID,level)) {
-
-
Hi,
Hatte das gleiche Problem. Bei mir hat SpawnPlayer nicht funktioniert, weil der Server noch viel zu viele Sachen laden musste. Hab einen Timer von 4 Sekunden gesetzt, der dann SpawnPlayer aufruft. Jetzt funktionierts einwandfreiTimer:
forward SpawnP(playerid);public SpawnP(playerid)
{
SpawnPlayer(playerid);
return 1;
}Nach dem Login:
SetTimerEx("SpawnP",4000,0,"d",playerid); // 4000 = 4 sek -
Du könntest einfach bei /arrest einen Wert in die Spielerdatei schreiben(wenn du ein Loginsystem hast). Diesen wert lädst du beim Connecten und fragst ihn ab. Im Arresttimer musst du dann eine Variable "hochzählen" und deren Wert auch mit abspeichern, damit du den Timer später wieder starten kannst.
-
Einfach einen zweiten Timer machen...
forward untazer(playerid);
public untazer(playerid)
{
TogglePlayerControllable(playerid,1);
return 1;// Public Tazer:
SetTimerEx("untazer",10000,0,"d",pID);Der Timer wird dann für pID ausgeführt. Die 10000 sind die Zeit wie lange er gefreezt(getazert) ist und die 0 bedeutet, dass der Timer nur einmal ausgeführt wird.
-
Hi,
Für was eigentlich
new Float:RandomSkinGroove[][1] ?
Seit wann sind die Skinids Kommazahlen?
Ich würds so machen:
new RandomSkinGroove[][1] =
{
{105},
{106},
{107},
{269},
{270},
{271}
}; -
Hier wird einfach ein Timer gesetzt, der überprüft wieviele Spieler online sind. Wenn die Spielerzahl größer als 50 (> 50) ist, dann wird die Message "Es sind viele Spieler online" an alle Spieler geschickt. Wenn nicht wird die Message "Es sind nicht viele Spieler online" an alle Spieler geschickt
Edit:
new name[MAX_PLAYER_NAME], ip[16], msg[128];;
Stimmt auch nicht ganz -
Nein das > fragt einfach ab ob die Variable größer ist. Wenn man >= verwenden würde wird überprüft ob das Adm. Level größer ODER gleich 0 ist. Dann würd jeder Spieler die Nachricht sehen
-
Ich würds so machen:
Bei OnPlayerConnect:
new name[MAX_PLAYER_NAME]; // Variable für den Namen
new ip[16]; // Variable für die IP
GetPlayerName(playerid,name,sizeof name); // Name in Variable schreiben
GetPlayerIP(playerid,ip,sizeof ip); // IP in Variable schreiben
new msg[128]; // String für die Nachricht
format(msg,sizeof msg,"%s hat den Server betreten. IP: %s",name,ip);
for(new pid =0;pid < MAX_PLAYERS;pid++) // Schleife für alle Spieler
{
if(PlayerInfo[playerid][pid] >0) // Wenn der Spieler Admin ist(Adm. Level höher als 0)
{
SendClientMessage(pid,COLOR_GREY,msg);
}
} -
Es gibt 2 Sachen an denen es liegen könnte:
1. Falsche Version (2.0) -> downgraden
2. Falscher Crack -> ... -
Hatte das Problem auch mal. Hab am Tag zuvor viele Schriftarten aus dem FONTS-Ordner gelöscht. Danach haben viele Programme gestreikt. Hab die Schriftarten wiederhergestellt und es tat
-
Ist eigentlich ganz einfach:
CreatePickup(model,type,x,y,z...);// Das pickup ^^
Create3DTextLabel(text..,x,y,z..);// Beides mal die gleiche Coords und voila :D