PDA

Просмотр полной версии : [Вопрос] SpawnKill



kala4iks
17.03.2015, 13:22
Помогите пожалуйста у меня такая проблема когда первый раз игрок убивает игрока ему не чего не пишет, когда второй раз убивает то ему должно писать прекратите спавн килл а чтоб если же игрок 3 раз подряд убил то чтоб его кикало.


public OnPlayerDeath(playerid, killerid, reason)
{
GivePlayerMoney(playerid, 100);
new string[128];
if(reason == 54 || reason == 53 || reason == 51 || reason == 47 || reason == 255 || PlayerInfo[killerid][pMask] == true) return true;
else SendDeathMessage(killerid,playerid,reason);
if(reason == 49 || reason == 50)
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: Drive by",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
ALKick(killerid);
}
if(GetPVarInt(playerid,"spawnkill") == 3)
{
send(killerid,COLOR_YELLOWS,"Внимание: Прекрати SpawnKill, иначе будешь кикнут(а) с сервера.");
}
if(GetPVarInt(playerid,"spawnkill") == 4)
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: SpawnKill",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
ALKick(killerid);
}

Bady
17.03.2015, 18:09
public OnPlayerDeath(playerid, killerid, reason)
{
GivePlayerMoney(playerid, 100);
new string[128];
if(reason == 54 || reason == 53 || reason == 51 || reason == 47 || reason == 255 || PlayerInfo[killerid][pMask] == true) return true;
else SendDeathMessage(killerid,playerid,reason);
if(reason == 49 || reason == 50)
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: Drive by",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
ALKick(killerid);
}
if(GetPVarInt(killerid,"spawnkill") == 3)
{
send(killerid,COLOR_YELLOWS,"Внимание: Прекрати SpawnKill, иначе будешь кикнут(а) с сервера.");
}
if(GetPVarInt(killerid,"spawnkill") == 4)
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: SpawnKill",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
ALKick(killerid);
}

kala4iks
18.03.2015, 10:25
public OnPlayerDeath(playerid, killerid, reason)
{
GivePlayerMoney(playerid, 100);
new string[128];
if(reason == 54 || reason == 53 || reason == 51 || reason == 47 || reason == 255 || PlayerInfo[killerid][pMask] == true) return true;
else SendDeathMessage(killerid,playerid,reason);
if(reason == 49 || reason == 50)
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: Drive by",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
ALKick(killerid);
}
if(GetPVarInt(killerid,"spawnkill") == 3)
{
send(killerid,COLOR_YELLOWS,"Внимание: Прекрати SpawnKill, иначе будешь кикнут(а) с сервера.");
}
if(GetPVarInt(killerid,"spawnkill") == 4)
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: SpawnKill",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
ALKick(killerid);
}

Ну и что ты скинул ничего не изменилось.

kala4iks
26.03.2015, 14:10
Помогите пожалуйста.

L0ndl3m
26.03.2015, 16:00
Проверку


if(kilerid == INVALID_PLAYER_ID)
return 0;

нужно добавить, а куда именно сами подумайте.

kala4iks
31.03.2015, 17:47
А как сделать проверку чтоб админам можно было убивать. Чтоб вдруг если админ убивал то ему не писало
.

$continue$
03.04.2015, 22:39
А если как то так:


public OnPlayerDeath(playerid, killerid, reason)
{
new string[128];
if(kilerid == INVALID_PLAYER_ID || PlayerInfo[killerid][pMask] == true) return 0;
GivePlayerMoney(playerid, 100);
if(player_info[killerid][pAdmin] == 0) // свою проверку на аминку
{
switch(reason)
{
case 54, 53, 51, 47, 255: return 1;
case 49, 50:
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: Drive by",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
ALKick(killerid);
}
default: SendDeathMessage(killerid,playerid,reason);
}
switch(GetPVarInt(playerid,"spawnkill"))
{
case 3: SendClientMessage(killerid,COLOR_YELLOWS,"Внимание: Прекрати SpawnKill, иначе будешь кикнут(а) с сервера.");
case 4:
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: SpawnKill",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
}
}
}
}

kala4iks
04.04.2015, 14:46
А если как то так:


public OnPlayerDeath(playerid, killerid, reason)
{
new string[128];
if(kilerid == INVALID_PLAYER_ID || PlayerInfo[killerid][pMask] == true) return 0;
GivePlayerMoney(playerid, 100);
if(player_info[killerid][pAdmin] == 0) // свою проверку на аминку
{
switch(reason)
{
case 54, 53, 51, 47, 255: return 1;
case 49, 50:
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: Drive by",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
ALKick(killerid);
}
default: SendDeathMessage(killerid,playerid,reason);
}
switch(GetPVarInt(playerid,"spawnkill"))
{
case 3: SendClientMessage(killerid,COLOR_YELLOWS,"Внимание: Прекрати SpawnKill, иначе будешь кикнут(а) с сервера.");
case 4:
{
format(string,sizeof(string),"Alpino: %s был(а) кикнут(а) сервером. Причина: SpawnKill",PlayerInfo[killerid][pName]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
}
}
}
}


Не не помогло.

- - - Добавлено - - -


Не не помогло.

Вот в общем я немного тут переделал но проверку на админа не могу сделать. Мне именно надо чтоб админов за SpawnKill не кикало а за остольное ничего.


public OnPlayerDeath(playerid,killerid,reason)
{
GivePlayerMoney(playerid, 100);
new string[128];
if(reason == 54 || reason == 53 || reason == 51 || reason == 47 || reason == 255 || PlayerInfo[killerid][pMask] == true) return true;
else SendDeathMessage(killerid,playerid,reason);
if(reason == 49 || reason == 50)
{
send(killerid,COLOR_YELLOW,"Ты был(а) кикнут(а) античитом. Причина: Drive by."),ALKick(killerid);
f(string,"Античит: %s[%d] был(а) кикнут(а). Причина: Drive by.",PlayerInfo[killerid][pName],killerid);
ABroadCast(COLOR_YELLOW,string);
}
if(GetPVarInt(playerid,"spawnkill"))
{
SpawnWarning[killerid] += 1;
{
if(SpawnWarning[killerid] == 1)
send(killerid,COLOR_YELLOW,"Внимание: Прекрати SpawnKill, иначе будешь кикнут(а) с сервера");
}
if(SpawnWarning[killerid] == 2)
{
send(killerid,COLOR_YELLOW,"Ты был(а) кикнут(а) античитом. Причина: SpawnKill."),ALKick(killerid);
f(string,"Античит: %s[%d] был(а) кикнут(а). Причина: SpawnKill.",PlayerInfo[killerid][pName],killerid);
ABroadCast(COLOR_YELLOW,string);
}
return true;
}

$continue$
04.04.2015, 14:48
Не не помогло.

- - - Добавлено - - -



Вот в общем я немного тут переделал но проверку на админа не могу сделать. Мне именно надо чтоб админов за SpawnKill не кикало а за остольное ничего.


public OnPlayerDeath(playerid,killerid,reason)
{
GivePlayerMoney(playerid, 100);
new string[128];
if(reason == 54 || reason == 53 || reason == 51 || reason == 47 || reason == 255 || PlayerInfo[killerid][pMask] == true) return true;
else SendDeathMessage(killerid,playerid,reason);
if(reason == 49 || reason == 50)
{
send(killerid,COLOR_YELLOW,"Ты был(а) кикнут(а) античитом. Причина: Drive by."),ALKick(killerid);
f(string,"Античит: %s[%d] был(а) кикнут(а). Причина: Drive by.",PlayerInfo[killerid][pName],killerid);
ABroadCast(COLOR_YELLOW,string);
}
if(GetPVarInt(playerid,"spawnkill"))
{
SpawnWarning[killerid] += 1;
{
if(SpawnWarning[killerid] == 1)
send(killerid,COLOR_YELLOW,"Внимание: Прекрати SpawnKill, иначе будешь кикнут(а) с сервера");
}
if(SpawnWarning[killerid] == 2)
{
send(killerid,COLOR_YELLOW,"Ты был(а) кикнут(а) античитом. Причина: SpawnKill."),ALKick(killerid);
f(string,"Античит: %s[%d] был(а) кикнут(а). Причина: SpawnKill.",PlayerInfo[killerid][pName],killerid);
ABroadCast(COLOR_YELLOW,string);
}
return true;
}
И каким образом не помогло конкретней...

kala4iks
04.04.2015, 14:56
И каким образом не помогло конкретней...

Ну твой способ да же не предупреждал игрока прекратите SpawnKill и не кикал вообще ничего.

- - - Добавлено - - -

Можешь сделать проверку на админа в моем способе + именно на SpawnKill ток. Если это возможно.

$continue$
04.04.2015, 18:03
Ну твой способ да же не предупреждал игрока прекратите SpawnKill и не кикал вообще ничего.

- - - Добавлено - - -

Можешь сделать проверку на админа в моем способе + именно на SpawnKill ток. Если это возможно.

GetPVarInt(playerid,"spawnkill") прибавление к pvar, делайте сами, и все будет работать