Ich hätte mal eine Frage
ist der Spieler der den Timer ausgelöst hat auch im Public die Playerid ?
Publics
- SAB0h
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Was heißt denn hier "ausgelöst"?
Kein Spieler löst einen Timer aus, der wird vom Server gesetzt.
Die playerid musst du dann per Parameter übergeben. -
Der Spieler benutzt ein Befehl , dadurch wird der Timer ausgelöst. Nun soll im Public , playerid auf den Spieler bezogen werden.
-
@Saboh
Ja, sofern du SetTimerEx verwendest und dann die playerid übergibst
mfg.
-
Okay , wie übergebe ich die ? :o
-
für den integer bei ( format[]) also hier i playerid verwenden
Bsp:
SetTimerEx("message", 1000, false, "is", playerid, "hello!");
habt umgeändert hier wird für i playerid verwendet und für s "hello" also ein string
http://wiki.sa-mp.com/wiki/SetTimerEx
/edit Beispiel hinzugefügt
-
Also wenn ich das so mache : müsste im Public playerid alles auf den Spieler bezogen sein oder ?
ocmd:defuse(playerid,params[])
{
if(GetPVarInt(playerid,"Defusing") == 0)
{
if(gTeam[playerid] == TEAM_BLUE)
{
if(IsPlayerInRangeOfPoint(playerid,15,213.9886,1900.3284,17.4313))
{
timerdefuse = SetTimerEx("bombedefuse",20000,false,"i",playerid);
SetPVarInt(playerid,"Defusing",1);
SendClientMessage(playerid,BLAU,"Du darfst den Bombenplatz nicht verlassen!");
SendClientMessageToAll(YELLOW,sprintf("%s versucht die Bombe zu defusen!",GetName(playerid)));
}
else
{
SendClientMessage(playerid,ROT,"Du bist an keiner Bombe!");
}
}
}
else return SendClientMessage(playerid,ROT,"Du bist schon am Entschärfen!");
return 1;
}public bombedefuse(playerid)
{
new Float:Health;
if(GetPlayerHealth(playerid,Health) >= 5)
{
if(IsPlayerInRangeOfPoint(playerid,15,213.9886,1900.3284,17.4313))
{
KillTimer(timerbombe);
SendClientMessageToAll(BLAU,"Die Bombe wurde defuset!");
SendClientMessageToAll(BLAU,"Diese Runde gewannen die Antiterros!");
NewMap(playerid);
if(gTeam[playerid] == TEAM_BLUE)
{
GameTextForPlayer(playerid, "~n~+5000$", 500, 3);
GivePlayerMoney(playerid,5000);
}
}
else
{
SendClientMessage(playerid,ROT,"Du hast die bombe verlassen!");
SendClientMessageToAll(YELLOW,"Der Entschärfer hat den Bombenplatz verlassen = Bombe läuft weiter!");
}
}
else
{
KillTimer(timerdefuse);
SendClientMessage(playerid,ROT,"Du bist gestorben!");
SendClientMessageToAll(YELLOW,"Der Entschärfer ist gestorben!");
}
return 1;
} -
breadfish.de
Hat das Thema geschlossen.