new vehicleid = GetPlayerVehicleID(playerid);
SetTimerEx("Explodieren",150*1000, 0, "i",vehicleid);
forward Explodieren(vehicleid);
public Explodieren(vehicleid)
{
SetVehicleHealth(vehicleid, 0.0);
return 1;
}
new vehicleid = GetPlayerVehicleID(playerid);
SetTimerEx("Explodieren",150*1000, 0, "i",vehicleid);
forward Explodieren(vehicleid);
public Explodieren(vehicleid)
{
SetVehicleHealth(vehicleid, 0.0);
return 1;
}
SetTimer("KontoErstellen",900,false);
ersetzen durch:
SetTimerEx("KontoErstellen",900, 0, "i",playerid); // 900 Millisekunden (etwas weniger als 1 Sek)
Alles anzeigenMoin,
Ich hab das Spiel
Quellcode
1
Call of Duty: Black Ops
...durch
LOL, du hast dir COD nur gekauft, um die Story durchzuspielen? o_O Das Spiel ist doch bekannt für seinen Onlinemodus... und da alles zu schaffen, dauert echt lange!
Ja vielleicht werden sie an einer anderen Stelle im Script nochmal erstellt?
Starte Pawn, lade die .pwn vom Script und drücke auf "compile". Fertig
Kenn mich mit dcmd ja nicht aus, aber den Warnings zufolge, sind es zu wenig/zu viel Parameter in den Klammern.
Findest du das sinnvoll, alles in einer Reihe zu posten? Da erkennt man doch nur mit größter Mühe etwas...
Anscheinend werden die Fahrzeuge doppelt geladen. Überprüf' das mal, dann sollte das Problem nicht mehr bestehen.
SetPlayerWorldBounds könnte hilfreich sein, damit die Spieler in einer gewissen Zone bleiben und nicht raus können (in deinem Fall das Gebiet Los Santos). Und wenn du das gemacht hast, einfach alle Fahrzeuge löschen und nur welche in Los Santos einfügen, fertig.
#include <a_samp>
#define FILTERSCRIPT
new GATE, GateOffen;
forward GateClose();
public OnFilterScriptInit()
{
GATE = CreateObject(969, 833.74, -2728.68, 13.00, 0.00, 0.00, 360.00);
GateOffen = 0;
return 1;
}
public OnFilterScriptExit()
{
DestroyObject(GATE);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/open", true)==0)
{
if(GateOffen == 1) return SendClientMessage(playerid, 0xFF0000FF, "Tor ist bereits offen!");
MoveObject(GATE,843.50, -2729.46, 13.00, 5);
SetTimer("GateClose", 5000, 0);
GateOffen = 1;
return 1;
}
return 0;
}
public GateClose()
{
MoveObject(GATE, 833.74, -2728.68, 13.00, 5);
GateOffen = 0;
return 1;
}
Edit: Verbessert
Sobald die Taste + gedrückt wurde (OnPlayerKeyStateChange) prüfe, ob der Spieler in Reichweite der Schranke ist (IsPlayerInRangeOfPoint) und bewege das Objekt so, dass es offen steht (MoveObject) und erstelle einen Timer, der das Objekt in 3 Sekunden wieder zurückbewegt.
Also ist es doch nicht falsch, nur nicht ganz ideal.^^
Wo liegt denn da der Unterschied, wenn ich fragen dürfte?
Die zwei Nullen am Ende des Farbcodes sind das Entscheidene. Das macht die Farbe nämlich so durchlässig, dass sie unsichtbar wird.
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
//if(newkeys & ...) Knopf der momentan gedrückt wird.
//if(oldkeys & ... ) Knopf, der davor gedrückt wurde.
return 1;
}
Edit(s): Fehler verbessert.
Hab' jetzt noch keine Erfahrungen mit der neuen Nummernschild-Funktion, aber du könntest vielleicht machen, dass die vehicleid das Nummernschild ist.
Neben jemanden ist schlecht, weil man nicht überprüfen kann, ob da nicht eine Wand oder so ist.
#define rot 0xFF0000FF
new paket[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
paket[playerid] = -1;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(paket[playerid] != -1)
{
DestroyPickup(paket[playerid]);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/paket", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] != 1339)
{
SendClientMessage(playerid, COLOR_RED, "Du bist kein admin");
return 1;
}
if(paket[playerid] != -1) return SendClientMessage(playerid, rot, "Pickup bereits erstellt.");
paket[playerid] = CreatePickup(1239,2,.......-1); // anpassen
return 1;
}
return 0;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == paket[playerid] && paket[playerid] != -1)
{
DestroyPickup(paket[playerid]);
// Was noch passieren soll...
}
return 1;
}