Setz doch mal bei OnPlayerDeath die HP des Spielers auf 0
ja das könnte ich mal probieren .. werds dann wohl erst morgen wissen obs klappt weil grad keiner auf meinem server ist
Setz doch mal bei OnPlayerDeath die HP des Spielers auf 0
ja das könnte ich mal probieren .. werds dann wohl erst morgen wissen obs klappt weil grad keiner auf meinem server ist
das stimmt allerdings
jo das könnt klappen. Aber nervig ist es dennoch...
hm ja ok, wäre gut wenn es gar nicht mehr vorkommt .
Aber zu der Klippe etc. muss ich sagen: hab bei dem Spieler /explode und /punch probiert (also beides befehle die dem Spieler Leben entziehen) und
hat trotzdem nix gebracht. ..
Hallo Leute,
ich habe ein sehr komisches Problem in meinem script und weiß überhaupt nicht woran es liegen könnte.
Und zwar kommt es manchmal (eher selten) vor, dass wenn ein Spieler getötet wird zunächst zu Boden fällt, dann aber gleich
wieder auferstehen und im Server rumlaufen kann. Er kann dann nichts machen außer rumlaufen. Andere Spieler sehen ihn nicht.
Kann den Spieler auch nicht per Teleport zu mir holen und wenn ich mich zum Spieler teleportieren lassen will komm ich an den Punkt
an dem er gestorben ist.
Einzige Abhilfe ist ein Reconnect zu machen.
Das ganze ist heute zum ersten mal passiert. Evtl. lag es daran dass heute zum ersten mal mehr wie 2-3 Spieler auf dem Server waren, keine Ahnung ob der server da anfängt zu laggen oder sonstwas...
Hat da einer von euch ne Idee?
achso dann hab ich dich falsch verstanden
nee dann hab ich auch keine ahnung
yo danke, das hat funktioniert .
oh ja , stimmt, hab ich bei der unjail funktion verpeilt mit dem ==, danke .
Ja gut, aber dann muss ich ja trotzdem nen Timer setzen damit das script weiß wann bei jemand die Zeit abgelaufen ist und
dann bin ich doch grad wieder beim selben Problem ?
hi,
trag deine koordinaten hier ein :
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, x, y, z);
SetPlayerFacingAngle(playerid, (facingangle wert)); <<<<<
SetPlayerCameraPos(playerid, x, y, z); <<<<<<
SetPlayerCameraLookAt(playerid, x, y, z); <<<<<<
................
konnte dir hoffentlich helfen
Hallo Leute,
ist es möglich eine Funktion nur für einen bestimmten Spieler auszuführen ?
Im Prinzip geht es darum, dass ich einen /jail (also als cop jemand wegsperren) command gescripted habe. Hierbei gibt man auch die Zeit, die man in der Zelle bleibt, in sekunden an.
Hier meine Codes:
Jail Command:
if(!strcmp(cmd, "/jail", true, 5))
{
if(gTeam[playerid] != TEAM_COPS)
{
SendClientMessage(playerid, ROT, "Only Cops can use this command");
return 1;
}
new tmp[256], str[256],a[256], integer: jailtime, jailedid, jailedname;
tmp = strtok(cmdtext, idx);
jailedid = strval(tmp);
a = strrest(cmdtext, idx);
jailtime = strval(a);
if(strlen(tmp) == 0)
{
SendClientMessage(playerid, GELB, "USAGE: /jail ID TIME(in seconds)");
return 1;
}
if(jailtime > 600)
{
SendClientMessage(playerid, ROT, "Max. jailtime is 600 seconds");
return 1;
}
if((IsPlayerInRangeOfPoint(playerid, 8, 270.0385,77.7446,1001.0391)) && (IsPlayerInRangeOfPoint(jailedid, 8, 270.0385,77.7446,1001.0391)))
{
SetPlayerPos(jailedid, 264.0385, 77.7446,1001.0391);
format(str, sizeof(str),"You have been jailed for %i Seconds", jailtime);
SendClientMessage(jailedid, WEISS, str);
SendClientMessage(playerid, WEISS, "Suspect jailed");
gPlayerjailed[jailedid] = 1;
ResetPlayerWeapons(jailedid);
SetTimer("unjail", jailtime * 1000, false);
return 1;
}
else return SendClientMessage(playerid, ROT, "You or the suspect are not in near of the cell");
return 1;
}
Funktion "unjail":
public unjail(playerid)
{
if(gPlayerjailed[playerid] == 1)
{
SetPlayerPos(playerid, 267.2925,77.7186,1001.0391);
SendClientMessage(playerid, WEISS, "You have been released from the jail. Behave in future.");
gPlayerjailed[playerid] == 0;
return 1;
}
return 1;
}
Das Problem liegt wohl an der playerid. Denn bei diesem Code gilt die Funktion nur für playerid (0 in dem Fall). Wenn ich ne Schleife (i<MAX_PLAYERS) hinzufüge würden ja alle inhaftierten gleichzeitig entlassen werden.
Daher meine Frage, was muss ich hier scripten damit eben nur der entlassen wird, bei dem die Zeit bereits rum ist ?
Danke schonmal
Das macht keinen Unterschied. Lies doch, was bei seiner Warnung steht... Anzahl Argumente stimmt nicht mit der Definition überein.
Antwort: NEUSTE Includes auf http://www.sa-mp.com herunterladen...
Hast Recht, hab mich geirrt.
EDIT: Hat sich grad erledigt. Hab bei der Variablen gPlayercrime[MAX_PLAYERS] noch ein [256] hinzugefügt und jetzt klappts.
Tach Jungs,
nachdem ich das Problem beim /pay command hatte (dank eurer Hilfe gelöst ), habe ich nun wieder ein ähnliches Problem bei meinem
/su command. Der Befehl macht aus einem Spieler einen Verdächtigen und legt einen Datensatz an, welcher Straftat/Berichterstatter/Zeit enthalten soll.
Erstatter und Zeit funktionieren soweit aber bei der Straftat an sich hab ich wieder das Problem.
Hier ist der source(Fehler liegt bei Zeile 19)
if(!strcmp(cmd, "/su", true, 3))
{
if(gTeam[playerid] != TEAM_COPS)
{
SendClientMessage(playerid, ROT, "Only Cops can use this command");
return 1;
}
new tmp[256], suspectid, crime[256], hour, min, second, reportername[128];
tmp = strtok(cmdtext, idx);
suspectid = strval(tmp);
crime = strrest(cmdtext, idx);
if(strlen(tmp) == 0)
{
SendClientMessage(playerid, GELB, "USAGE: /mdc ID");
return 1;
}
GetPlayerName(playerid, reportername, sizeof(reportername));
gettime(hour, min);
gPlayercrime[suspectid] = crime;
gReporter[suspectid] = GetPlayerName(playerid);
gRepHours[suspectid] = hour;
gRepMinutes[suspectid] = min;
SendClientMessage(playerid, WEISS, "Entry in the Mobile Data Computer made");
return 1;
}
C:\Program Files (x86)\GTA SA\GTA San Andreas\SAMP Server\gamemodes\homerlive.pwn(848: error 006: must be assigned to an array)
Was mach ich da falsch ?
mach mal :
CreateObject(2942, 1594.2144775391, -2335.5102539063, 13.182995796204, 0.0, 0.0, 180.26550292969, 300.0);
sollte dann gehen
poste mal bitte die entsprechende Zeile bei welcher der Fehler auftritt
dini_SetInt(string, "skin", skin);
musst aus dini_SetInt > dini_IntSet machen
Troopers post hat mir geholfen.
Hab jetzt ne neue variable erstellt > a
und a = strval(Value) gemacht, der compiler spuckt nun zumindest keine errors mehr raus, teste mal gleich obs funktioniert und melde mich nochmal
danke auch an die anderen die geschrieben haben
klappt. Vielen Dank nochmal
int = strval(Value) dann oder wie ?
sorry ich verstehs irgendwie nicht.
hm das versteh ich jetzt nicht ganz. Den Geldbetrag hol ich mir doch mit strrest..
das hatte ich auch schon probiert aber da bekomm ich andere Errors:
C:\Program Files (x86)\GTA SA\GTA San Andreas\SAMP Server\gamemodes\homerlive.pwn(1326) : error 033: array must be indexed (variable "Value")
C:\Program Files (x86)\GTA SA\GTA San Andreas\SAMP Server\gamemodes\homerlive.pwn(1334) : error 035: argument type mismatch (argument 2)
C:\Program Files (x86)\GTA SA\GTA San Andreas\SAMP Server\gamemodes\homerlive.pwn(1335) : error 035: argument type mismatch (argument 2)
Quelle:
if(Value <= GetPlayerMoney(playerid))
GivePlayerMoney(playerid, - Value);
GivePlayerMoney(giveplayerid, Value);