09.03.2015, 19:56
I have problem with spawn for players. When player die or spectate it's give him to choose skin again and every time when he die it need to select skin. How to fix that?
public OnPlayerDeath(playerid, killerid, reason)
{
if(GetPVarInt(playerid, "Headshotted") == 1)
{
SetPVarInt(playerid, "Headshotted", 0);
GameTextForPlayer(playerid, "~r~Headshotted", 3000, 3);
GameTextForPlayer(killerid, "~r~Headshottttt", 3000, 3);
}
#pragma unused reason
if(killerid != INVALID_PLAYER_ID)
{
SetPlayerScore (killerid, GetPlayerScore (killerid) + 1);
SetPlayerStarRang(playerid);
}
joined[playerid] = 0;
leavefunction(playerid);
new szString[128];
kills2[killerid]++;
format(szString,sizeof(szString),"Kills :%d",kills2[killerid]);
TextDrawSetString(Kill_Streak[killerid],szString);
SetPlayerScore(killerid,GetPlayerScore(killerid) +1);
SetPlayerScore(playerid,0);
if(GetPlayerScore(killerid) == 2)
{
SetPlayerHealth(killerid,100);
SetPlayerArmour(killerid,100);
GivePlayerWeapon(killerid, 23, 500);
GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
SetPlayerArmedWeapon(playerid, 23);
return 1;
}
if(GetPlayerScore(killerid) == 3)
{
SetPlayerHealth(killerid,150);
SetPlayerArmour(killerid,150);
GivePlayerWeapon(killerid,24,200);
GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
return 1;
}
if(GetPlayerScore(killerid) == 4)
{
SetPlayerHealth(killerid,150);
SetPlayerArmour(killerid,150);
GivePlayerWeapon(killerid, 27, 500);
GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
return 1;
}
if(GetPlayerScore(killerid) == 5)
{
SetPlayerHealth(killerid,150);
SetPlayerArmour(killerid,150);
GivePlayerWeapon(killerid,28,500);
GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
SetPlayerArmedWeapon(playerid, 28);
return 1;
}
if(GetPlayerScore(killerid) == 6)
{
GivePlayerWeapon(killerid, 32, 500);
SetPlayerHealth(killerid, 100);
SetPlayerArmour(killerid, 100);
GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
SetPlayerArmedWeapon(playerid, 32);
return 1;
}
new string[256];
new Float: X, Float: Y, Float: Z;
GivePlayerCash(playerid, -2000);
HitID[playerid] = killerid;
PlayerInfo[playerid][pDeaths] += 1;
Kills[playerid] = 0;
GetPlayerPos(playerid, X, Y, Z);
PlayerKilled[playerid] = 1;
SendDeathMessage(killerid, playerid, reason);
if(Bounty[playerid] > 0)
{
Bounty[playerid] = 0;
format(string, sizeof(string), "Този играч има награда за главата си: %d$", Bounty[playerid]);
SendClientMessage(killerid, COLOR_YELLOW2, string);
GivePlayerCash(killerid, Bounty[playerid]);
}
Kills[killerid]++;
if(killerid != 255)
{
if(PlayerInfo[killerid][pMember] != TEAM_SPECIALFORCE)
{
if(GetPlayerState(killerid) == 2)
{
new kickname[MAX_PLAYER_NAME];
GetPlayerName(killerid, kickname, sizeof(kickname));
format(string, 256, "BGW SERVER: %s[%d]уби %s[%d] със Drive-By и убиеца беше SLAY-ed." ,kickname,killerid,PlayerName(playerid),playerid);
ABroadCast(COLOR_YELLOW, string, 1);
SetPlayerHealth(killerid,0);
return 1;
}
}
}
if(reason == 50)
{
new kickname[MAX_PLAYER_NAME];
if(IsPlayerConnected(killerid))
{
BladeKill[killerid] += 1;
if(BladeKill[killerid] >= 1)
{
GetPlayerName(killerid, kickname, sizeof(kickname));
format(string, 256, "BGW SERVER: %s was kicked, reason: Excesive Blade Killing." ,kickname);
SendClientMessageToAll(COLOR_LIGHTRED, string);
SetPlayerHealth(killerid,0);
}
}
}
PlayerInfo[killerid][pKills] += 1;
SetPlayerScore(killerid, PlayerInfo[killerid][pKills]);
Kills[killerid]++;
if(Kills[killerid] > 3) Bounty[killerid] += 1000 * Kills[killerid];
new bonus = 500 * Kills[killerid];
GivePlayerCash(killerid, bonus);
if(Kills[killerid] == 3) format(string,sizeof(string),"~W~%s IS DOMINATING!", PlayerName(killerid));
if(Kills[killerid] == 10) format(string,sizeof(string),"~W~%s IS ON A KILLING SPREE!", PlayerName(killerid));
if(Kills[killerid] == 15) format(string,sizeof(string),"~W~%s HAS A MONSTER KILL!!!", PlayerName(killerid));
if(Kills[killerid] == 21) format(string,sizeof(string),"~W~%s IS ~r~GODLIKE!", PlayerName(killerid));
if(Kills[killerid] == 27) format(string,sizeof(string),"~W~%s IS ~R~WICKED SICK!", PlayerName(killerid));
if(Kills[killerid] >= 40) format(string,sizeof(string),"~R~%s HOLY SHIT WITH %d KILLS!",PlayerName(killerid), Kills[killerid]);
GameTextForAll(string, 5000, 4);
SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid));
if(Kills[killerid] > PlayerInfo[killerid][pSpree]) PlayerInfo[killerid][pSpree] = Kills[killerid];
if (gTeam[killerid] != gTeam[playerid])
{
new Float:x, Float:y, Float:z;
TeamInfo[gTeam[killerid]][RivalsKilled]++;
TeamInfo[gTeam[playerid]][HomiesDied]++;
TeamInfo[gTeam[killerid]][TeamScore]++;
TeamInfo[gTeam[playerid]][TeamScore]--;
GetPlayerPos(playerid, x, y, z);
GetPlayerPos(killerid, x, y, z);
for (new i = 0; i < MAX_TURFS; i++)
{
if (IsPlayerInTurf(playerid, turfs[i][zMinX], turfs[i][zMinY], turfs[i][zMaxX], turfs[i][zMaxY]) &&
IsPlayerInTurf(killerid, turfs[i][zMinX], turfs[i][zMinY], turfs[i][zMaxX], turfs[i][zMaxY]) )
{
if (turfs[i][TurfWarStarted] != 1 && !IsPlayerInAnyVehicle(killerid))
{
TurfInfo[i][gTeam[killerid]][TurfKills]++;
if (TurfInfo[i][gTeam[killerid]][TurfKills] == ATTACK_KILLS)
{
if (turfs[i][TurfOwner] == gTeam[killerid])
{
for (new a = 0; a < MAX_TEAMS; a++) TurfInfo[i][a][TurfKills] = 0;
return 1;
}
turfs[ i ][ TurfAttacker ] = gTeam[killerid];
for (new b = 0; b < 500; b++)
{
if (gTeam[b] == turfs[i][TurfAttacker])
{
new msg1[256];
format(msg1,sizeof(msg1), "~w~We have provoked a turfwar ~w~in ~y~%s ( %s ) ~w~against the ~r~%s",
turfs[i][turfName], turfs[i][cityName], TeamInfo[turfs[i][TurfOwner]][TeamName]);
new Text:txt1 = TextDrawCreate(139.0, 350.0, msg1 );
TextDrawFont(txt1, 1);
TextDrawLetterSize(txt1, 0.29, 1.0);
TextDrawSetShadow(txt1, 0);
TextDrawSetOutline(txt1, 1);
TextDrawColor(txt1, COLOR_WHITE);
TimeTextForPlayer(b, txt1, 6000);
GangZoneFlashForPlayer(b, turfs[i][turfID], COLOR_FLASH );
}
else if (gTeam[b] == turfs[ i ][ TurfOwner ])
{
new msg2[256];
format(msg2,sizeof(msg2), "~r~The ~y~%s ~r~have attacked our turf in ~y~%s ( %s )!",
TeamInfo[turfs[i][TurfAttacker]][TeamName], turfs[i][turfName], turfs[i][cityName]);
new Text:txt2 = TextDrawCreate(139.0, 364.0, msg2);
TextDrawFont(txt2, 1);
TextDrawLetterSize(txt2, 0.29, 1.0);
TextDrawSetShadow(txt2, 0);
TextDrawSetOutline(txt2, 1);
TextDrawColor(txt2, COLOR_RED);
TimeTextForPlayer(b, txt2, 6000);
GangZoneFlashForPlayer(b, turfs[i][turfID], COLOR_FLASH);
}
else GangZoneFlashForPlayer(b, turfs[i][turfID], COLOR_FLASH2);
}
SetTimerEx("EndWar", ATTACK_TIME, false ,"iii", i, turfs[i][TurfAttacker], turfs[i][TurfOwner] );
turfs[i][TurfWarStarted] = 1;
for(new c = 0; c < MAX_TEAMS; c++) { TurfInfo[i][c][TurfKills] = 0; TurfInfo[i][c][TurfAttackKills] = 0; }
return 1;
}
}
else if (turfs[i][TurfWarStarted] == 1 && !IsPlayerInAnyVehicle(killerid) &&
(turfs[i][TurfAttacker] == gTeam[killerid]) || turfs[i][TurfOwner] == gTeam[killerid])
{
TurfInfo[i][gTeam[killerid]][TurfAttackKills]++;
return 1;
}
}
}
}
if(PlayerInfo[killerid][pAdmin] < 1)
{
for (new weap = 1; weap < 2; weap++)
{
if(GetPlayerWeapon(killerid) == weap && HaveWeapon(killerid, weap) != weap)
{
new weapname[32];
GetWeaponName(weap, weapname, sizeof(weapname));
format(string, sizeof(string), "BGW SERVER: %s was banned, reason: Weapon Hacking (%s).", PlayerName(killerid), weapname);
SendClientMessageToAll(COLOR_LIGHTRED, string);
PlayerInfo[killerid][pBanned] = 1;
format(string, sizeof(string), "Weapon Hacking (%s).", weapname);
BanEx(killerid, string);
}
}
}
return 1;
}
public ShowIntro(playerid)
{
SetPVarInt(playerid, "Intro", GetPVarInt(playerid, "Intro") + 1);
new iteration = GetPVarInt(playerid, "Intro");
switch(iteration)
{
case 1:
{
for(new i; i < 11; i++)
{
SendClientMessage(playerid, -1, "");
}
TextDrawShowForPlayer(playerid, Intro[0]);
}
case 2:
{
TextDrawShowForPlayer(playerid, Intro[1]);
}
case 3:
{
TextDrawShowForPlayer(playerid, Intro[2]);
}
case 4:
{
TextDrawHideForPlayer(playerid, Intro[2]);
TextDrawShowForPlayer(playerid, Intro[3]);
}
case 5:
{
TextDrawHideForPlayer(playerid, Intro[3]);
TextDrawShowForPlayer(playerid, Intro[4]);
}
case 6:
{
TextDrawHideForPlayer(playerid, Intro[4]);
TextDrawShowForPlayer(playerid, Intro[5]);
}
case 7:
{
TextDrawHideForPlayer(playerid, Intro[5]);
TextDrawShowForPlayer(playerid, Intro[6]);
}
case 8:
{
TextDrawHideForPlayer(playerid, Intro[6]);
TextDrawShowForPlayer(playerid, Intro[7]);
}
case 9:
{
TextDrawHideForPlayer(playerid, Intro[7]);
TextDrawShowForPlayer(playerid, Intro[8]);
}
case 10:
{
TextDrawShowForPlayer(playerid, Intro[9]);
}
case 11:
{
TextDrawShowForPlayer(playerid, Intro[10]);
}
case 12:
{
TextDrawShowForPlayer(playerid, Intro[11]);
}
}
if(GetPVarInt(playerid, "Intro") < 10)
{
SetTimerEx("ShowIntro", 300, 0, "d", playerid);
}
else if(9 < GetPVarInt(playerid, "Intro") < 13)
{
SetTimerEx("ShowIntro", 2000, 0, "d", playerid);
}
else
{
for(new i; i < sizeof(Intro); i++)
{
TextDrawHideForPlayer(playerid, Intro[i]);
}
TogglePlayerSpectating(playerid, false);
ForceClassSelection(playerid);
}
return 1;
}
TogglePlayerSpectating(playerid, true);
ForceClassSelection(playerid);
SetPVarInt(playerid, "Intro", 0);
SetTimerEx("ShowIntro", 1000, 0, "d", playerid);
leavefunction(playerid)