Hallo liebe Breadfish Community,
1.
Ich habe ein Krankenhaus-Filterscript auf meinen Server gepackt, damit die gestorbenen User in Behandlung sind und im Krankenhaus sind, da man davor immer einfach neu gespawnt ist.
2.
Das Filterscript läuft. Jedoch werden diese einfach im Spawn behandelt, statt im Krankenhaus
____
Das Filterscript
#include <a_samp>
new InBehandlung[MAX_PLAYERS];
new DeathPickup;
new stringz[128];
new Text3D:DeathText;
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("[FILTERSCRIPT]Krankenhaus-System von inCrecdible erfolgreich geladen.");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
print("\n--------------------------------------");
print("[FILTERSCRIPT]Krankenhaus-System von inCrecdible erfolgreich geladen.");
print("--------------------------------------\n");
return 1;
}
public OnPlayerSpawn(playerid)
{
if(InBehandlung[playerid] == 1)
{
TogglePlayerControllable(playerid, 0);
SetPlayerPos(playerid, 1172.6306,-1323.8131,15.4028);
SetPlayerCameraPos(playerid, 1213.9460,-1324.9109,13.5671);
SetPlayerCameraLookAt(playerid, 1176.4004,-1323.4197,14.0195);
SetTimerEx("BehandlungsInfo", 1000, false, "d", playerid);
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(InBehandlung[playerid] == 1)
{
if(reason == 1)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name,sizeof(name));
format(stringz, sizeof(stringz),"[SERVER]: %s ist während einer Behandlung offline gegangen!", name);
printf(stringz);
SendClientMessageToAll(0xFF1400FF, stringz);
}
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
new Float:x, Float:y, Float:z, name[MAX_PLAYER_NAME];
GetPlayerPos(playerid, Float:x, Float:y, Float:z);
GetPlayerName(playerid, name, sizeof(name));
DeathPickup = CreatePickup(1254,1, Float:x, Float:y, Float:z,0);
format(stringz, sizeof(stringz), "[KILL]: %s wurde getötet!", name);
DeathText = Create3DTextLabel(stringz,0xFF1400FF, Float:x, Float:y+1, Float:z, 32.0, 0);
InBehandlung[playerid] = 1;
return 1;
}
forward BehandlungsInfo(playerid);
public BehandlungsInfo(playerid)
{
SendClientMessage(playerid, 0x00CDFFFF, "[KRANKENHAUS]: Da du gestoben bist, bist du nun 3 Minuten in Behandlung.");
SendClientMessage(playerid, 0x00CDFFFF, "[KRANKENHAUS]: Offline gehen während einer Behandlung wird bestraft!");
SetTimerEx("BehandlungsEnde", 1000*180, false, "d", playerid);
return 1;
}
forward BehandlungsEnde(playerid);
public BehandlungsEnde(playerid)
{
InBehandlung[playerid] = 0;
SpawnPlayer(playerid);
TogglePlayerControllable(playerid, 1);
DestroyPickup(DeathPickup);
SendClientMessage(playerid,0x00CDFFFF, "[KRANKENHAUS]: Du wurdest aus dem Krankenhaus entlassen!");
Delete3DTextLabel(DeathText);
return 1;
}
Mein Script
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsInBus[playerid] == 1)
{
IsInBus[playerid] = 0;
KillTimer(Timer1[playerid]);
KillTimer(Timer2[playerid]);
}
AntiFakekill[playerid]++;
SetTimerEx("AntiFakekillTimer", 1000,false,"i",playerid);
KaufTicket[playerid] = 0;
(FLUG_TIMER_RECENT = 0);
KillTimer(timer1);
KillTimer(timer2);
KillTimer(timer3);
KillTimer(timer4);
StopAudioStreamForPlayer(playerid);
TogglePlayerControllable(playerid,1);
FLUG_TIMER_RECENT =0;
(FLUG_TIMER_RECENT = 0);
SpielerInfo[playerid][pTot] = 1;
ResetPlayerWeaponStats(playerid);
TextDrawHideForPlayer(playerid, Textdraw0);
TextDrawHideForPlayer(playerid, Textdraw1);
TextDrawHideForPlayer(playerid, Textdraw2);
TextDrawHideForPlayer(playerid, Textdraw3);
TextDrawHideForPlayer(playerid, Textdraw5);
if(M_IsPlayerInZone(playerid,NODMBSN) || M_IsPlayerInZone(playerid,NODMNEWB) || M_IsPlayerInZone(playerid,NODMSH))
{
if(killerid != INVALID_PLAYER_ID)
{
if(IsACop(killerid) || SpielerInfo[playerid][pAdmin] >= 1)
{
SCM(playerid,COLOR_GREY, "Achte darauf wen du wo killst");
}
else
{
new string[128];
new string2[128];
{
format(string, sizeof(string), "[SERVER]: %s wurde vom [SERVERGUARD] gekickt, Grund: DM in NoDM-Zone", GetName(killerid));
SCMTA(COLOR_LIGHTRED, string);
}
{
format(string, sizeof(string), "[SERVER]: %s was kicked by[SERVERGUARD], Reason: DM in NoDM-Zone", GetName(killerid));
SCMTA(COLOR_LIGHTRED, string);
}
format(string2, sizeof(string2), "[Admin-Nachricht] Hat %s gekillt [ID]", GetName(playerid),playerid);
SendAdminMessage(0xFFBE00FF, string2);
Kick(killerid);
}
}
}
//Krankenhaussystem
//CTF SYSTEM
if(isPlayerInFrakt(playerid,5) || isPlayerInFrakt(playerid,6) || isPlayerInFrakt(playerid,12) || isPlayerInFrakt(playerid,14) || isPlayerInFrakt(playerid,15) || isPlayerInFrakt(playerid,16) || isPlayerInFrakt(playerid,20))
{
new gwstring2[138];
new gwzone = GWIsPlayerInWarArea(playerid);
if(gwzone != -1)
{
if(GangwarZones[gwzone][War_Time] != 0 || GangwarZones[gwzone][War_Attacker] != 0 || GangwarZones[gwzone][War_Started] == 1)
{
if(isPlayerInFrakt(killerid,GangwarZones[gwzone][War_Owner]) || isPlayerInFrakt(killerid,GangwarZones[gwzone][War_Attacker]) && GangwarZones[gwzone][War_Started] == 1)
{
if(isPlayerInFrakt(playerid,GangwarZones[gwzone][War_Owner]) || isPlayerInFrakt(playerid,GangwarZones[gwzone][War_Attacker]) && GangwarZones[gwzone][War_Started] == 1)
{
SCM(playerid,COLOR_RED,"Du bist im Gangwar gestorben! Du spawnst anschließend.");
TextDrawHideForPlayer(playerid,GangwarZones[gwzone][WARdraw][0]);
TextDrawHideForPlayer(playerid,GangwarZones[gwzone][WARdraw][1]);
TextDrawHideForPlayer(playerid,GangwarZones[gwzone][WARdraw][2]);
TextDrawHideForPlayer(playerid,GangwarZones[gwzone][WARdraw][3]);
TextDrawHideForPlayer(playerid,GangwarZones[gwzone][WARdraw][4]);
TextDrawHideForPlayer(playerid,GangwarZones[gwzone][WARdraw][5]);
TextDrawHideForPlayer(playerid,GangwarZones[gwzone][WARdraw][6]);
TextDrawHideForPlayer(playerid,GangwarZones[gwzone][WARdraw][7]);
TextDrawHideForPlayer(playerid,GangwarZones[gwzone][WARdraw][8]);
GangZoneHideForPlayer(playerid,GangwarZones[gwzone][War_ZoneID]);
SpielerIstTot[playerid] = 0;
SetPlayerSpawn(playerid);
SetPlayerHealth(playerid,100);
if(SpielerInfo[playerid][sMember] != SpielerInfo[killerid][sMember])
{
GameTextForPlayer(killerid,"~g~GANGWARKILL",6000,5);
GameTextForPlayer(playerid,"~r~GANGWARKILL",6000,5);
if(SpielerInfo[killerid][sMember] == GangwarZones[gwzone][War_Owner])
{
GangwarZones[gwzone][War_OwnerPoints]++;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Owner]),GangwarZones[gwzone][War_OwnerPoints],MAX_GWPOINT4WINNER);
TextDrawSetString(GangwarZones[gwzone][WARdraw][0],gwstring2);
if(GangwarZones[gwzone][War_AttackerPoints] <= 0)
{
GangwarZones[gwzone][War_AttackerPoints] = 0;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Attacker]),GangwarZones[gwzone][War_AttackerPoints],MAX_GWPOINT4WINNER);
return TextDrawSetString(GangwarZones[gwzone][WARdraw][1],gwstring2);
}
GangwarZones[gwzone][War_AttackerPoints]--;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Attacker]),GangwarZones[gwzone][War_AttackerPoints],MAX_GWPOINT4WINNER);
TextDrawSetString(GangwarZones[gwzone][WARdraw][1],gwstring2);
}
if(SpielerInfo[killerid][sMember] == GangwarZones[gwzone][War_Attacker])
{
GangwarZones[gwzone][War_AttackerPoints]++;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Attacker]),GangwarZones[gwzone][War_AttackerPoints],MAX_GWPOINT4WINNER);
TextDrawSetString(GangwarZones[gwzone][WARdraw][1],gwstring2);
if(GangwarZones[gwzone][War_OwnerPoints] <= 0)
{
GangwarZones[gwzone][War_OwnerPoints] = 0;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Owner]),GangwarZones[gwzone][War_OwnerPoints],MAX_GWPOINT4WINNER);
return TextDrawSetString(GangwarZones[gwzone][WARdraw][0],gwstring2);
}
GangwarZones[gwzone][War_OwnerPoints]--;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Owner]),GangwarZones[gwzone][War_OwnerPoints],MAX_GWPOINT4WINNER);
TextDrawSetString(GangwarZones[gwzone][WARdraw][0],gwstring2);
}
return 1;
}
else
{
GameTextForPlayer(killerid,"~r~TEAMKILL",6000,5);
GameTextForPlayer(playerid,"~r~TEAMKILL",6000,5);
if(SpielerInfo[killerid][sMember] == GangwarZones[gwzone][War_Owner])
{
if(GangwarZones[gwzone][War_OwnerPoints] <= 0)
{
GangwarZones[gwzone][War_OwnerPoints] = 0;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Owner]),GangwarZones[gwzone][War_OwnerPoints],MAX_GWPOINT4WINNER);
return TextDrawSetString(GangwarZones[gwzone][WARdraw][0],gwstring2);
}
GangwarZones[gwzone][War_OwnerPoints]--;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Owner]),GangwarZones[gwzone][War_OwnerPoints],MAX_GWPOINT4WINNER);
TextDrawSetString(GangwarZones[gwzone][WARdraw][0],gwstring2);
}
if(SpielerInfo[killerid][sMember] == GangwarZones[gwzone][War_Attacker])
{
if(GangwarZones[gwzone][War_AttackerPoints] <= 0)
{
GangwarZones[gwzone][War_AttackerPoints] = 0;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Attacker]),GangwarZones[gwzone][War_AttackerPoints],MAX_GWPOINT4WINNER);
return TextDrawSetString(GangwarZones[gwzone][WARdraw][1],gwstring2);
}
GangwarZones[gwzone][War_AttackerPoints]--;
format(gwstring2,sizeof(gwstring2),"%s %i/%i",FraktionsName(GangwarZones[gwzone][War_Attacker]),GangwarZones[gwzone][War_AttackerPoints],MAX_GWPOINT4WINNER);
TextDrawSetString(GangwarZones[gwzone][WARdraw][1],gwstring2);
}
return 1;
}
}
}
}
}
}
new string[256];
if(killerid != 255)
{
if(GetPlayerState(killerid) == 2)
{
if(!IsPlayerInAnyVehicle(playerid))
{
if(SpielerInfo[killerid][pAdmin] < 1)
{
SCM(killerid, COLOR_YELLOW2, "Du hast einen Driveby Kill begangen.");
SCM(killerid, COLOR_YELLOW2, "Es wurde ein Report an die Admins gesendet.");
}
}
}
}
new x[2], id, Float:ppos[3];
GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
#if !defined VIRTUAL
new vw = GetPlayerVirtualWorld(playerid);
#endif
for(new i = 1; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, x[0], x[1]);
if(!x[0] || !GetWeaponModel(x[0]))
continue;
#if !defined VIRTUAL
id = CreatePickup(GetWeaponModel(x[0]), 1, ppos[0]+adpos[i-1][0], ppos[1]+adpos[i-1][1], ppos[2], vw);
#else
id = CreatePickup(GetWeaponModel(x[0]), 1, ppos[0]+adpos[i-1][0], ppos[1]+adpos[i-1][1], ppos[2], VIRTUAL);
#endif
wpickups[id][i-1][2] = SetTimerEx("PickupDel", WEP_TIME, 0, "dd", id, i);
wpickups[id][i-1][0] = x[0];
wpickups[id][i-1][1] = x[1];
}
new name[MAX_PLAYER_NAME];
//new dmessage[128];
//new deathreason[20];
new playercash;
new victimteam;
//new killerteam;
victimteam = gTeam[playerid];
//killerteam = gTeam[killerid];
gPlayerSpawned[playerid] = 0;
GetPlayerName(playerid, name, sizeof(name));
SpielerInfo[playerid][pLocal] = 999;
if (gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
{
DisablePlayerCheckpoint(playerid);
gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
}
new caller = Mobile[playerid];
if(caller != INVALID_PLAYER_ID)
{
if(caller < 999)
{
//SCM(caller, COLOR_GRAD2, " Die Verbindung wurde unterbrochen....");
MeldungText(playerid, "Die Verbindung wurde unterbrochen....", 6, "LD_CHAT:goodcha");
CellTime[caller] = 0;
SetPlayerSpecialAction(playerid,13);
CellTime[playerid] = 0;
Mobile[caller] = INVALID_PLAYER_ID;
}
Mobile[playerid] = INVALID_PLAYER_ID;
CellTime[playerid] = 0;
SetPlayerSpecialAction(playerid,13);
}
ClearCrime(playerid);
if(SpielerInfo[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(gTeam[killerid] == 10 || SpielerInfo[killerid][sMember] == 8)
{
if(GoChase[killerid] == playerid)
{
ConsumingMoney[killerid] = 1;
new killer[MAX_PLAYER_NAME];
GetPlayerName(killerid, killer, sizeof(killer));
PlayerMoney[killerid] = PlayerMoney[killerid]+SpielerInfo[playerid][pHeadValue];
format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: €%d >>",killer,name,SpielerInfo[playerid][pHeadValue]);
SendFamilyMessage(8, COLOR_YELLOW2, string);
SCM(playerid, COLOR_YELLOW2, "Du wurdest von einem Hitman wegen eines Auftrags getötet!");
SpielerInfo[playerid][pHeadValue] = 0;
GotHit[playerid] = 0;
SetPVarInt(GetChased[playerid],"KillID",-1);
GetChased[playerid] = 999;
GoChase[killerid] = 999;
}
}
}
}
SpielerInfo[playerid][pDeaths] += 1;
if(GetPlayerWantedLevel(playerid) >= 1)
{
new price = (GetPlayerWantedLevel(playerid) * 50);
if(IsACop(killerid))
{
PlayerMoney[playerid] = PlayerMoney[playerid]- price;
Staatskasse = Staatskasse+price;
SpielerInfo[playerid][pWantedDeaths] += 1;
SpielerInfo[playerid][pJailed] = 1;
if(GetPlayerWantedLevel(playerid) > 5) SpielerInfo[playerid][pJailTime] = (GetPlayerWantedLevel(playerid) * 1)+30; // 13 Minuten
else SpielerInfo[playerid][pJailTime] = GetPlayerWantedLevel(playerid) * 6;
format(string, sizeof(string), "Du bist für %d Minuten im Gefängnis und musst €%d bezahlen.", SpielerInfo[playerid][pJailTime], price);
SCM(playerid, COLOR_LIGHTRED, string);
SetPlayerWantedLevel(playerid,0);
new playername[MAX_PLAYER_NAME], copname[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerName(killerid, copname, sizeof(copname));
format(string, sizeof(string), "Für die tötung der Person %s hast du %d € erhalten!", playername, price);
SpielerIstTot[playerid] = 0;
SpielerInfo[playerid][pTottime] = 0;
format(string, sizeof(string), "**%s hat die gesuchte Person %s getötet!", copname, playername);
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsACop(i))
{
SCM(i, COLOR_LIGHTBLUE, "** An Alle Einheiten **");
SCM(i, COLOR_RED, string);
}
}
}
}
if(victimteam >= 4)
{
if(IsPlayerConnected(killerid))
{
new slice = 0; //$0
playercash = PlayerMoney[playerid];
if(gTeam[killerid] != 2) { } //+ 2 wanted points
if(SafeTime[playerid] == 0)
{
if(gTeam[killerid] != gTeam[playerid])
{
if(GetPlayerState(killerid) == 1)
{
SpielerInfo[killerid][pKills] = SpielerInfo[killerid][pKills] + 2;
}
else
{
SpielerInfo[killerid][pKills]++;
}
SpielerInfo[playerid][pKills]--;
}
}
if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || (gTeam[killerid] == gTeam[playerid] && gTeam[playerid] != 4))
{
slice = 0;
}
if (((gTeam[killerid]) != 4) && ((gTeam[killerid]) == gTeam[playerid]))//no team kill
{
slice = 0;
}
if (playercash > 0)
{
PlayerMoney[playerid] = PlayerMoney[playerid]-slice;
}
else
{
slice = slice+500;
}
PlayerMoney[killerid] = PlayerMoney[killerid]+slice;
PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0);
}
}
else if (victimteam == 3)
{
if(IsPlayerConnected(killerid))
{
if(gTeam[killerid] == 2)//cops kill civ
{
if(GetPlayerWantedLevel(playerid) < 1)
{
PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
}
}
}
}
if(M_GetPlayerCurrentZone(playerid) > -1)
{
new gzone = M_GetPlayerCurrentZone(playerid) ;
if(Gebiete[gzone][gOn] == 1)
{
if(SpielerInfo[playerid][sMember]==Gebiete[gzone][gOwner])
{
if(SpielerInfo[killerid][sMember] == Gebiete[gzone][gAngreifer])
{
Gebiete[gzone][gStand2] ++;
}
}
if(SpielerInfo[playerid][sMember]==Gebiete[gzone][gAngreifer])
{
if(SpielerInfo[killerid][sMember] == Gebiete[gzone][gOwner])
{
Gebiete[gzone][gStand1] ++;
}
}
new string2[64];
format(string2,sizeof(string2),"[GANGWAR] Du wurdest von: %s[%i] getötet.",GetName(killerid),killerid);
SCM(playerid,COLOR_WHITE,string2);
format(string2,sizeof(string2),"[GANGWAR] Du hast: %s[%i] getötet.",GetName(playerid),playerid);
SCM(killerid,COLOR_WHITE,string2);
SpielerIstTot[playerid] = 0;
SpielerInfo[playerid][pTottime] = 0;
}
}
if(GetPlayerWantedLevel(playerid) > 0)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
new price = (GetPlayerWantedLevel(playerid)*50);
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(i, pX, pY, pZ);
if(IsPlayerInRangeOfPoint(playerid, 15.0, pX, pY, pZ) && IsACop(i))
{
PlayerMoney[playerid] = PlayerMoney[playerid]- price;
Staatskasse = Staatskasse+price;
SpielerInfo[playerid][pWantedDeaths] += 1;
SpielerInfo[playerid][pJailed] = 1;
if(GetPlayerWantedLevel(playerid) > 5) SpielerInfo[playerid][pJailTime] = (GetPlayerWantedLevel(playerid) * 3)+30; // 13 Minuten
else SpielerInfo[playerid][pJailTime] = GetPlayerWantedLevel(playerid) * 6;
format(string, sizeof(string), "Du bist für %d Minuten im Gefängnis und musst €%d bezahlen.", SpielerInfo[playerid][pJailTime], price);
SCM(playerid, COLOR_LIGHTRED, string);
SetPlayerWantedLevel(playerid,0);
new playername[MAX_PLAYER_NAME], copname[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerName(i, copname, sizeof(copname));
format(string, sizeof(string), "Für die tötung der Person %s hast du %d € erhalten!", playername, price);
format(string, sizeof(string), "**%s hat die gesuchte Person %s getötet!", copname, playername);
for(new c = 0; c<MAX_PLAYERS; c++)
{
if(IsACop(c))
{
SCM(c, COLOR_LIGHTBLUE, "** An Alle Einheiten **");
SCM(c, COLOR_RED, string);
}
}
return 1;
}
}
}
ImShamalInterior[playerid] = 0;
ShamalID[playerid] = -1;
return 1;
}