Hi, kann ich mit einer Funktion auflisten welche FilterScripts geladen sind? Und kann ich auflisten welche FilterScripts sich im FilterScripts Ordner befinden?
Beiträge von JustMe.77
-
-
Achso habe mich nicht gut ausgedrückt, die Frage hat weniger mit dem Timern zu tun. Ich habe ja ein Befehl womit ich mit per Schuss teleportieren kann, hier z.B. siehst du das ID 24 (Deagle) definiert wurde. if(weaponid ==24) //Deagle
Doch anstatt jetzt die Funktion jedes mal neu zu erstellen mit einer Waffen ID, möchte ich das in einem machen und dort angeben mit welchen Waffen das erlaubt wird.
Beispielsweise von ID 24 - 30. -
Achso, nun funktioniert's perfekt. Du hattest mich verwirrt weil das oben gefehlt hat, deswegen hatte ich gefragt wofür dieses Public gut ist
Noch eine kleine Frage, ich möchte das mit mehreren Waffen ermöglichen können, aber ich möchte ungerne immer wieder die Funktion dafür neu erstellen. Kann ich das nicht irgendwie besser umsetzen, irgendwie mit case 24..35 (Waffe 24-35) ? Oder vielleicht auch eine andere Methode
-
Klappt nicht Ganz, habe wohl was falsch gemacht.
Error:
public function lacks forward declaration (symbol "SetWeaponAgain") LnD15.pwn 1091 /*
forward OldWeapon(playerid);
public OldWeapon(playerid)
{
return 1;
}
*/public SetWeaponAgain(playerid, weapon)
{
SetPlayerArmedWeapon(playerid,weapon);
return 1;
}public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
new Float:FloatValue;
new Value = 0;
FloatValue = float(Value);if(fX != FloatValue && hittype == 0)
{
if(Teleportgun[playerid] == 1)
if(weaponid == 24) //Deagle
{
if(fX == 0.0 || fY == 0.0 || fZ == 0.0) return 1;
GetPlayerWeapon(playerid);
SetPlayerArmedWeapon(playerid,0);
SetPlayerPos(playerid,fX,fY,fZ+1);
SetTimerEx("SetWeaponAgain", 1500, false, "dd",playerid, GetPlayerWeapon(playerid));
}
}
else
{
//SendClientMessage(playerid, 0xFF0000FF, "nonexistent coordinates!");
}
return 1;
} -
@Jeffry Hmm, also ich habe das nicht komplett verstanden. Ich schieße mit meiner Waffe => frage ab welche ich habe => setze sie auf 0 => und mit dem Timer gebe ich ihn die alte Waffe zurück, richtig?
Wofür ist der Public public SetWeaponAgain(playerid, weapon) da?
Habe zurzeit den Code so aufgebaut:
forward OldWeapon(playerid);
public OldWeapon(playerid)
{
//Hier ist irgendwas falsch.
SetWeaponAgain(playerid, weapon);
return 1;
}public SetWeaponAgain(playerid, weapon)
{
//Was mache ich hier?
}public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
new Float:FloatValue;
new Value = 0;
FloatValue = float(Value);if(fX != FloatValue && hittype == 0)
{
if(Teleportgun[playerid] == 1)
if(weaponid == 24) //Deagle
{
if(fX == 0.0 || fY == 0.0 || fZ == 0.0) return 1;
GetPlayerWeapon(playerid);
SetPlayerArmedWeapon(playerid,0);
SetPlayerPos(playerid,fX,fY,fZ+1);
SetTimerEx("OldWeapon", 1500, false, "playerid",playerid);
}
}
else
{
//SendClientMessage(playerid, 0xFF0000FF, "nonexistent coordinates!");
}
return 1;
} -
Wie kann ich die Waffe eines Spielers auf die Faust umswitchen und nach einer bestimmten Zeit wieder zur alten?
-
Es gibt's keine Funktion womit man die maximale Tauchzeit erweitern kann oder? Falls nicht hat jemand Ideen wie man das umsetzen könnte? Wenn niemand ein Lösungsweg hat muss ich wohl Slice oder Ino fragen, die wissen bestimmt weiter
-
Dankesehr, funktioniert gut. Ich habe nun versucht abzufragen ob das Health über 995 ist und dann den Spieler kicken lassen, das kommt aber jedes mal wenn ich in ein Fahrzeug einsteige.
(Habe ich ein falsches Callback benutzt ? )public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new Float:health;
new name[MAX_PLAYER_NAME], string[50+MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(health > 995)
format(string, sizeof(string), "%s has been banned by the System for Vehicle Health Hack.", name);
SendClientMessageToAll(RED,string);
GetVehicleHealth(vehicleid, health);
SetVehicleHealth(vehicleid, 995);
Kick(playerid);
return 1;
} -
Immer, die Idee dahinter steckt dass ich dann Abfrage ob ein Fahrzeug einen Wert von über 995 hat, ist das der Fall --> Ban für VehicleRepair.
-
Hi, gibt's eine Möglichkeit wo ich festlegen kann das ALLE Fahrzeuge die erstellt sind, gespawnt werden etc einen Health Wert von 995 haben anstatt 1000 ?
-
Vernünftiges Regelwerk & ein Scripter der sehr viel Erfahrung hat, sprich eigentlich jeden Vorschlag umsetzen KÖNNTE.
-
Kannst du mir noch bitte einmal zeigen wie ich Gettime in einem Befehl benutze? Sprich den Befehl erst nach einiger Zeit wieder erlauben zu benutzen.
Als Beispiel ein einfacher Teleport Befehl
CMD:teleport(playerid,params[])
{
SetPlayerPos(playerid, 815.5878,-3582.2156,61.7797);return 1;
}
-
-
Hi Jeffry, habe mal eine kleine Frage. Habe ein Befehl womit man das Teleportieren mit der Waffe aktiviert und deaktiviert. Nur das Problem ist das dass Ganze anbleibt auch wenn der Spieler offline geht.
Dafür habe ich dann einfach einen Bool erstellt, doch es scheint nicht zu helfen.
Bool: new Teleportgun[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
Teleportgun[playerid] = 0;
}public OnPlayerDisconnect(playerid)
{
Teleportgun[playerid] = 0;
return 1;
}[hide]
CMD:teleportgun(playerid,params[])
{
new str[64];
{
if(Teleportgun[playerid] == 1)
{
format(str, sizeof(str), "Teleportgun {FF0000}disbaled{FFFFFF}.");
Teleportgun[playerid] = 0;
SendClientMessage(playerid, 0xFFFFFFFF, str);
}
else
{
format(str, sizeof(str), "Teleportgun {00FF00}enabled{FFFFFF}.");
Teleportgun[playerid] = 1;
SendClientMessage(playerid, 0xFFFFFFFF, str);
}
}
return 1;
}
[/hide] -
Woran liegt es das wenn mehrere Leute auf dem Server sind, und Spieler A den Befehl ausführt Spieler B in die Luft geslappt wird und nicht Spieler A?
CMD:giftcreate(playerid, params[])
{
if(!CheckAdminName(playerid)) return SendClientMessage(playerid, RED, "{FF1717}ERROR:{FFFFFF} You have no acces to use this command.");
for(new i=1; i<MaxGifts; i++)
{
if(GiftBox[i][e_x] == 0.0 && GiftBox[i][e_y] == 0.0 && GiftBox[i][e_z] == 0.0)
{
//Daten werden übergeben
new Float:x, Float:y, Float:z, Float:a;
new pID;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
GiftBox[i][e_x] = x;
GiftBox[i][e_y] = y;
GiftBox[i][e_z] = z - 0.4;
GiftBox[i][e_a] = a;
GiftBox[i][e_oID] = CreateDynamicObject(19054,x, y, z+0.05 - 0.4, 0.0, 0.0,a);
GiftBox[i][e_label] = CreateDynamic3DTextLabel("/takegift",0x10F441AA,GiftBox[i][e_x], GiftBox[i][e_y], GiftBox[i][e_z]+0.25,8.0);
GetPlayerPos(pID, x,y,z);
SetPlayerPos(pID, x, y, z+2);
//Zuletzt wird die Datei angelegt und das Giftbox gespeichert.
new path[64];
format(path, sizeof(path), "/GiftBoxes/%d.ini", i);
dini_Create(path);
SaveGiftBoxCheck(i);
new string[100];
format(string, sizeof(string), "{00FFFF}Giftbox {FFFF00}(%i) {00FF00}created.",i);
return SendClientMessage(playerid,WHITE, string);
}
}
return SendClientMessage(playerid, WHITE, "{FF1717}ERROR:{FFFFFF} You reached the Limit of the GiftBoxes");
} -
#define GMSG(%0) SendClientMessage(%0,WHITE,"{FF0000}Merry Christmas {00FFFF}- LSGW Staff ");
Fehler bleibt bestehen. -
Der Fehler kommt in allen Zeilen vor wo ich return GMSG(playerid); eingefügt habe.
So ist sie übrigens definiert:
#define GMSG(%0) SendClientMessage(playerid,WHITE,"{FF0000}Merry Christmas {00FFFF}- LSGW Staff ^_^ ");
-
Ja, daran lag wohl das Problem, halb so schlimm
Wie muss ich denn eine definierte Nachicht in jedem Case eintragen? Erhalte komischweweise Errors:
//5%
switch(random(3))
{
case 0:
{
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
GivePlayerMoney(playerid,50000);
GivePlayerWeapon(playerid,WEAPON_DEAGLE,750);
SendClientMessage(playerid,WHITE,"You got 50.000$, Deagle(750), HP(100) & Armour(100) !");
return GMSG(playerid);
}
case 1:
{
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
GivePlayerMoney(playerid,50000);
GivePlayerWeapon(playerid,WEAPON_M4,750);
SendClientMessage(playerid,WHITE,"You got 50.000$, M4(750), HP(100) & Armour(100) !");
return GMSG(playerid);
}
case 3:
{
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
GivePlayerMoney(playerid,50000);
GivePlayerWeapon(playerid,WEAPON_SNIPER,750);
SendClientMessage(playerid,WHITE,"You got 50.000$, Sniper(750), HP(100) & Armour(100) !");
return GMSG(playerid);
}
}
}Erhalte "Empty Statement und Unreachable Code". Habe das auch ohne return versucht doch dann tauchen andere Errors auf.
-
Gibt's ein Limit an verschiedenen Farben in SendClientMessage ? @Jeffry
-
Ich nehme an der Verlosung teil.