18.09.2013, 07:09
thsi filterscript dont have anti team kill. my gamemode does.
this si filterscript
Код:
#include <a_samp>
new lasthit[MAX_PLAYERS];
public OnFilterScriptInit()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerTeam(i, 0);
}
return 1;
}
public OnFilterScriptExit()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerTeam(i, -1);
}
return 1;
}
public OnPlayerConnect(playerid)
{
SetPlayerTeam(playerid, 0);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
lasthit[playerid] = -1;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(lasthit[playerid] == -1)
{
SendDeathMessage(INVALID_PLAYER_ID, playerid, reason);
return 1;
}
if(lasthit[playerid] != -1)
{
SendDeathMessage(lasthit[playerid],playerid,GetPlayerWeapon(lasthit[playerid]));
return 1;
}
lasthit[playerid] = -1;
return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(issuerid != INVALID_PLAYER_ID)
{
//filterscript
if(weaponid == 24 || weaponid == 25 || weaponid == 26 || weaponid == 27 || weaponid == 33 || weaponid == 34 || weaponid == 38)
{
new tmp; tmp=random(48); // 1/3 Change
switch(tmp)
{
case 0: { ApplyAnimation(issuerid,"PED","DAM_armL_frmBK",4.0,0,0,0,1,1); }
case 1: { }
case 2: { }
case 3: { ApplyAnimation(issuerid,"PED","DAM_armR_frmBK",4.0,0,0,0,1,1); }
case 4: { }
case 5: { }
case 6: { ApplyAnimation(issuerid,"PED","DAM_LegL_frmBK",4.0,0,0,0,1,1); }
case 7: { }
case 8: { }
case 9: { ApplyAnimation(issuerid,"PED","DAM_LegR_frmBK",4.0,0,0,0,1,1); }
case 10: { }
case 11: { }
case 12: { ApplyAnimation(issuerid,"PED","DAM_stomach_frmBK",4.0,0,0,0,1,1); }
case 13: { }
case 14: { }
case 15: { ApplyAnimation(issuerid,"PED","DAM_stomach_frmRT",4.0,0,0,0,1,1); }
case 16: { }
case 17: { }
case 18: { ApplyAnimation(issuerid,"PED","DAM_armL_frmFT",4.0,0,0,0,1,1); }
case 19: { }
case 20: { }
case 21: { ApplyAnimation(issuerid,"PED","DAM_armL_frmLT",4.0,0,0,0,1,1); }
case 22: { }
case 23: { }
case 24: { ApplyAnimation(issuerid,"PED","DAM_LegL_frmFT",4.0,0,0,0,1,1); }
case 25: { }
case 26: { }
case 27: { ApplyAnimation(issuerid,"PED","DAM_LegR_frmFT",4.0,0,0,0,1,1); }
case 28: { }
case 29: { }
case 30: { ApplyAnimation(issuerid,"PED","DAM_LegL_frmLT",4.0,0,0,0,1,1); }
case 31: { }
case 32: { }
case 33: { ApplyAnimation(issuerid,"PED","DAM_LegR_frmRT",4.0,0,0,0,1,1); }
case 34: { }
case 35: { }
case 36: { ApplyAnimation(issuerid,"PED","DAM_stomach_frmFT",4.0,0,0,0,1,1); }
case 37: { }
case 38: { }
case 39: { ApplyAnimation(issuerid,"PED","DAM_armR_frmFT",4.0,0,0,0,1,1); }
case 40: { }
case 41: { }
case 42: { ApplyAnimation(issuerid,"PED","DAM_armR_frmRT",4.0,0,0,0,1,1); }
case 43: { }
case 44: { }
case 45: { ApplyAnimation(issuerid,"PED","DAM_stomach_frmLT",4.0,0,0,0,1,1); }
case 46: { }
case 47: { }
}
//return 1;
}
//hi
}
return 1;
}
Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
// anti-team-attack
if(gTeam[issuerid] == TEAM_USA && gTeam[playerid] == TEAM_USA)
{
GameTextForPlayer(issuerid,"~r~do not team attack!", 3000, 3);
}
if(gTeam[issuerid] == TEAM_EURASIA && gTeam[playerid] == TEAM_EURASIA)
{
GameTextForPlayer(issuerid,"~r~do not team attack!", 3000, 3);
}
if(gTeam[issuerid] == TEAM_ARAB && gTeam[playerid] == TEAM_ARAB)
{
GameTextForPlayer(issuerid,"~r~do not team attack!", 3000, 3);
}
if(gTeam[issuerid] == TEAM_SOVIET && gTeam[playerid] == TEAM_SOVIET)
{
GameTextForPlayer(issuerid,"~r~do not team attack!", 3000, 3);
}
if(gTeam[issuerid] == TEAM_AUS && gTeam[playerid] == TEAM_AUS)
{
GameTextForPlayer(issuerid,"~r~do not team attack!", 3000, 3);
}
if(issuerid != INVALID_PLAYER_ID)
{
//filterscript
if(weaponid == 24 || weaponid == 25 || weaponid == 26 || weaponid == 27 || weaponid == 33 || weaponid == 34 || weaponid == 38)
{
new tmp; tmp=random(48); // 1/3 Change
switch(tmp)
{
case 0: { ApplyAnimation(issuerid,"PED","DAM_armL_frmBK",4.0,0,0,0,1,1); }
case 1: { }
case 2: { }
case 3: { ApplyAnimation(issuerid,"PED","DAM_armR_frmBK",4.0,0,0,0,1,1); }
case 4: { }
case 5: { }
case 6: { ApplyAnimation(issuerid,"PED","DAM_LegL_frmBK",4.0,0,0,0,1,1); }
case 7: { }
case 8: { }
case 9: { ApplyAnimation(issuerid,"PED","DAM_LegR_frmBK",4.0,0,0,0,1,1); }
case 10: { }
case 11: { }
case 12: { ApplyAnimation(issuerid,"PED","DAM_stomach_frmBK",4.0,0,0,0,1,1); }
case 13: { }
case 14: { }
case 15: { ApplyAnimation(issuerid,"PED","DAM_stomach_frmRT",4.0,0,0,0,1,1); }
case 16: { }
case 17: { }
case 18: { ApplyAnimation(issuerid,"PED","DAM_armL_frmFT",4.0,0,0,0,1,1); }
case 19: { }
case 20: { }
case 21: { ApplyAnimation(issuerid,"PED","DAM_armL_frmLT",4.0,0,0,0,1,1); }
case 22: { }
case 23: { }
case 24: { ApplyAnimation(issuerid,"PED","DAM_LegL_frmFT",4.0,0,0,0,1,1); }
case 25: { }
case 26: { }
case 27: { ApplyAnimation(issuerid,"PED","DAM_LegR_frmFT",4.0,0,0,0,1,1); }
case 28: { }
case 29: { }
case 30: { ApplyAnimation(issuerid,"PED","DAM_LegL_frmLT",4.0,0,0,0,1,1); }
case 31: { }
case 32: { }
case 33: { ApplyAnimation(issuerid,"PED","DAM_LegR_frmRT",4.0,0,0,0,1,1); }
case 34: { }
case 35: { }
case 36: { ApplyAnimation(issuerid,"PED","DAM_stomach_frmFT",4.0,0,0,0,1,1); }
case 37: { }
case 38: { }
case 39: { ApplyAnimation(issuerid,"PED","DAM_armR_frmFT",4.0,0,0,0,1,1); }
case 40: { }
case 41: { }
case 42: { ApplyAnimation(issuerid,"PED","DAM_armR_frmRT",4.0,0,0,0,1,1); }
case 43: { }
case 44: { }
case 45: { ApplyAnimation(issuerid,"PED","DAM_stomach_frmLT",4.0,0,0,0,1,1); }
case 46: { }
case 47: { }
}
//return 1;
}
//hi
}
return 1;
}
// admin anti-slap
new Float:x, Float:y, Float:z;
new Float:gX, Float:gY, Float:gZ;
GetPlayerPos(issuerid, gX, gY, gZ);
if(PlayerInfo[issuerid][OnDuty] == 0 && PlayerInfo[playerid][OnDuty] == 1 && IsPlayerInRangeOfPoint(playerid, 10.5, gX, gY, gZ))
{
SetPlayerHealth(playerid, 100000000.0);
GameTextForPlayer(issuerid,"~p~warning!~n~~w~do not attack~n~~w~on duty admins~n~~p~stop that!", 3000, 3);
GetPlayerPos(issuerid,x,y,z); SetPlayerPos(issuerid,x,y,z+10);
}
if(PlayerInfo[playerid][OnDuty] == 1)
{
SetPlayerHealth(playerid, 100000000.0);
}
return 1;
}

