Timer setzen und abfragen, ob sich das auto an ner anderen Position befindet, als es gespawnt wurde.
Wenn ja, SetVehiclePos(..)
Beiträge von n0skillg3t
-
-
Hmm..
könntest es so machen:
for(new i; i<MAX_PLAYERS; i++)
{
if(MedicBill[i] == 1)
{
new Float:posX, Float:posY, Float:posZ;
GetPlayerPos(playerid,posX,posY,posZ);
if(IsPlayerInRangeOfPoint(i,5.0,posX,posY,posZ))
{
TogglePlayerControllable(i,1);
MedicBill[i] = 0;
SendClientMessage(i,grau,"Ein Medic hat dich erfolgreich wiederbelebt");
}
}
} -
Du darfst nicht 2x "new Float:deathX, Float:deathY, Float:deathZ;" erstellen, mach das oben über ongamemodeinit 1x
-
Ist doch ganz easy
Bei den anderen new's:
new Float:deathX, Float:deathY, Float:deathZ;
OnPlayerDeath(...)
{
GetPlayerPos(playerid,deathX,deathY,deathZ);
SetTimerEx("TodTimer",5000,0,"d",playerid);
}
public TodTimer(playerid)
{
SendClientMessage(playerid, 0x00B9FFFF, "Der Medic war nicht schnell genug, du bist gestorben.");
SetPlayerPos(playerid,deathX,deathY,deathZ);
TogglePlayerControllable(playerid,0);
} -
Also wenn ich das richtig verstehe, möchtest du, nachdem der Spieler gestorben ist, ihn
wieder an die Position setzen, an der gespawnt ist und ihn freezen? -
Klick links auf deine Datenbank, geh oben rechts auf "importieren" und nun suchste dir
mysql.sql raus und klickst auf importieren -
...
Hier ein Beispiel:forward TodTimer(playerid);
SetTimerEx("TodTimer",5000,0,"d",playerid);public TodTimer(playerid)
{
SendClientMessage(playerid, 0x00B9FFFF, "Der Medic war nicht schnell genug, du bist gestorben.");
SpawnPlayer(playerid);
}Bitteschön.
-
Ohne Code können wir nichts machen...
-
schonmal TodTimer(playerid) versucht ?
-
So vielen Dank für deine großartige Hilfe
So nun nurnoch eine letze Frage, der endgültige Code lautet also so:
public OnPlayerDeath(playerid, killerid, reason)
{
if(PlayerInfo[playerid][pContractValue] > 0)
{
if( killerid != INVALID_PLAYER_ID )
{
new string[256], hitman[MAX_PLAYER_NAME], opfer[MAX_PLAYER_NAME];
GetPlayerName(playerid,opfer,sizeof(opfer));
GetPlayerName(killerid,hitman,sizeof(hitman));
format(string,sizeof(string),"Hitman %s hat den Auftrag auf %s erledigt und erhält %d€.",hitman,opfer,PlayerInfo[killerid][pHCValue]);
SendHitmanMessage(0xFFE600FF,string);
PlayerInfo[killerid][pContract] = 0;
PlayerInfo[killerid][pHCValue] = 0;
GetPlayerPos(playerid,tX,tY,tZ);
SetPVarFloat(playerid,"lastx",tX);
SetPVarFloat(playerid,"lasty",tY);
SetPVarFloat(playerid,"lastz",tZ);
SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
SetPVarInt(playerid,"Tot",1);
SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
}
}
else if( killerid == INVALID_PLAYER_ID )
{
GetPlayerPos(playerid,tX,tY,tZ);
SetPVarFloat(playerid,"lastx",tX);
SetPVarFloat(playerid,"lasty",tY);
SetPVarFloat(playerid,"lastz",tZ);
SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
SetPVarInt(playerid,"Tot",1);
SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
}
return 1;
}Bitte korrigieren, wenn es nicht stimmt, ich möchte nicht nochmal Fragen..
MfG
n0skillg3t -
Das wird geprinted:
Code[15:49:34] OnPlayerDeath(0,65535,255) [15:49:34] killerid == INVALID_PLAYER_ID #1 [15:49:34] killerid == INVALID_PLAYER_ID #2 [15:49:34] killerid == INVALID_PLAYER_ID #3
Komischer Weise geht es wenn ich keine Contract auf mich habe.
Wenn ich nen Contract auf mich hab, wird das geprinted:Code[15:55:29] OnPlayerDeath(0,65535,255) [15:55:29] pContractValue > 0 [15:55:29] killerid != INVALID_PLAYER_ID #1 [15:55:29] killerid != INVALID_PLAYER_ID #2
Heist dann ja, das es beim format abschmiert..
Achso ich hab die Zeile kommentiert in der Abgefragt wird ob killerid != INVALID_PLAYER_ID ist
damit ich mich selbst töten kann. -
Spawn den Spieler am Anfang vom Tut einfach und dann lass das Tut abspielen, so das er garnicht merkt, das er
gespawnt wurde, nimm die Funktion:SpawnPlayer(playerid);
-
Erstmal vielen Dank!
Um genau zu sein müsste die Abfrage also so lauten, oder?
public OnPlayerDeath(playerid, killerid, reason)
{
if(PlayerInfo[playerid][pContractValue] > 0)
{
if( killerid != INVALID_PLAYER_ID )
{
new string[256], hitman[MAX_PLAYER_NAME], opfer[MAX_PLAYER_NAME];
GetPlayerName(playerid,opfer,sizeof(opfer));
GetPlayerName(killerid,hitman,sizeof(hitman));
format(string,sizeof(string),"Hitman %s hat den Auftrag auf %s erledigt und erhält %d€.",hitman,opfer,PlayerInfo[killerid][pHCValue]);
SendHitmanMessage(0xFFE600FF,string);
PlayerInfo[killerid][pContract] = 0;
PlayerInfo[killerid][pHCValue] = 0;
GetPlayerPos(playerid,tX,tY,tZ);
SetPVarFloat(playerid,"lastx",tX);
SetPVarFloat(playerid,"lasty",tY);
SetPVarFloat(playerid,"lastz",tZ);
SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
SetPVarInt(playerid,"Tot",1);
SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
}
}
else if( killerid == INVALID_PLAYER_ID )
{
GetPlayerPos(playerid,tX,tY,tZ);
SetPVarFloat(playerid,"lastx",tX);
SetPVarFloat(playerid,"lasty",tY);
SetPVarFloat(playerid,"lastz",tZ);
SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
SetPVarInt(playerid,"Tot",1);
SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
}
return 1;
}
Oder stehe ich gerade auf dem Schlauch?//Edit: Ich habs gerade getestet und es funktioniert immernoch nicht, wäre schön wenn mir jmd den
Code zusammen setzen könnte.MfG
-
Zu 1: Setz dem Spieler seine Position in die Nähe vom LSPD oder dort wo halt deine Kamera hin geht, so das die Objekte
richtig laden können.Zu 2: Setz unter OnGameModeInit einen Timer der Abfragt wie viel HP er noch hat, wenn seine HP 10.0 sind, machste einfach
die crack animation und freezt den Spieler. -
Also, ich frag ab, ob auf dem Spieler der stirbt ein Contract ist, wenn ja, dann passiert das und dass... wenn nicht dann stribt er ganz normal,
nun, das Problem ist aber, das garnichts passiert >.>Er wird einfach neu gespawnt.
Code:
public OnPlayerDeath(playerid, killerid, reason)
{
if(PlayerInfo[playerid][pContractValue] > 0)
{
new string[256], hitman[MAX_PLAYER_NAME], opfer[MAX_PLAYER_NAME];
GetPlayerName(playerid,opfer,sizeof(opfer));
GetPlayerName(killerid,hitman,sizeof(hitman));
format(string,sizeof(string),"Hitman %s hat den Auftrag auf %s erledigt und erhält %d€.",hitman,opfer,PlayerInfo[killerid][pHCValue]);
SendHitmanMessage(0xFFE600FF,string);
PlayerInfo[killerid][pContract] = 0;
PlayerInfo[killerid][pHCValue] = 0;
GetPlayerPos(playerid,tX,tY,tZ);
SetPVarFloat(playerid,"lastx",tX);
SetPVarFloat(playerid,"lasty",tY);
SetPVarFloat(playerid,"lastz",tZ);
SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
SetPVarInt(playerid,"Tot",1);
SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
}
else if(PlayerInfo[playerid][pContractValue] < 1)
{
GetPlayerPos(playerid,tX,tY,tZ);
SetPVarFloat(playerid,"lastx",tX);
SetPVarFloat(playerid,"lasty",tY);
SetPVarFloat(playerid,"lastz",tZ);
SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
SetPVarInt(playerid,"Tot",1);
SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
}
return 1;
}Ich wäre wirklich sehr Dankbar für eure Hilfe, den ich komm im Moment nicht weiter...
flamer: Ich glaube es hat euch nicht zu interessieren wieso ich einen neuen Thread aufgemacht habe.
MfG
n0skillg3t -
Dankeschön euch allen
Ich geh dann mal ins Bett -
Das heißt ?
Ich habs versucht andersrum zu machen, dann bekomm ich aber wieder andere Error, deswegen stell ich mich mal dumm.
-
Guten Tag,
ich hänge hier fest, wahrscheinlich weil ich zu müde dafür binNaja es kommt immer der Error:
Hier ist mein Code:
if(dialogid == 9870)
{
new input[256];
format(input,sizeof(input),"%d",inputtext);
anrufen(playerid,input);
}stock anrufen(playerid,nummer)
{
for(new i; i<MAX_PLAYERS; i++)
{
if(nummer != PlayerInfo[i][pNummer])return SendClientMessage(playerid,grau,"Diese Nummer ist zurzeit nicht Verfügbar!");
}
return 1;
}Hoffe auf Hilfe!
MfG
n0skillg3t -
if(!IsACop)//Zum Beispiel... einfach abfragen ob er ein cop ist..
{
//dein code
}Und ich glaub nicht, das du das Blitzersystem geschrieben hast, wenn du noch nichteinmal
soetwas simples hinbekommst.. -
Dir fehlt ein ; am Ende von deinem "format(....)"