BigBen1174
Новичок
Дорогие пользователи Pawno info ru помогите пожалуйста
1. Использование шипов (их создание на землю) - Надо что то придумать что бы они не трогали машину того кто их создаёт.
Код
PHP:
#if defined _ship_included
#endinput
#endif
#define _ship_included
#pragma library ship
#define MAX_SPIKESTRIPS 200
enum sInfo
{
sCreated,
Float:sX,
Float:sY,
Float:sZ,
sObject,
};
new SpikeInfo[MAX_SPIKESTRIPS][sInfo];
static Deleteship;
stock ship_OnPlayerCommandText(playerid, cmdtext[])
{
#pragma unused playerid
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
if (strcmp(cmd,"/ship",true) == 0)
{
new vehicleid = GetPlayerVehicleID(playerid);
new Float:plocx,Float:plocy,Float:plocz,Float:ploca;
GetVehiclePos(vehicleid, plocx, plocy, plocz);
GetVehicleZAngle(vehicleid,ploca);
CreateStrip(plocx,plocy,plocz,ploca);
Deleteship = SetTimer("DeleteAllStrip",1000*60,true);
return 1;
}
return 0;
}
stock ship_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
#pragma unused oldkeys
if ((newkeys==KEY_NO)) // Љлавиша N
{
if (GetPlayerVIP(playerid))
{
{
OnPlayerCommandText(playerid, "/ship");
}
}
}
//------------------------------------------------------------------------------
return 1;
}
stock ship_OnPlayerUpdate(playerid)
{
if(!IsPlayerConnected(playerid)) return 0;
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
for(new i = 0; i < sizeof(SpikeInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, SpikeInfo[i][sX], SpikeInfo[i][sY], SpikeInfo[i][sZ]))
{
if(SpikeInfo[i][sCreated] == 1)
{
new panels, doors, lights, tires;
new carid = GetPlayerVehicleID(playerid);
GetVehicleDamageStatus(carid, panels, doors, lights, tires);
tires = encode_tires(1, 1, 1, 1);
UpdateVehicleDamageStatus(carid, panels, doors, lights, tires);
return 0;
}
}
}
}
return 1;
}
stock CreateStrip(Float:x,Float:y,Float:z,Float:Angle)
{
for(new i = 0; i < sizeof(SpikeInfo); i++)
{
if(SpikeInfo[i][sCreated] == 0)
{
SpikeInfo[i][sCreated]=1;
SpikeInfo[i][sX]=x;
SpikeInfo[i][sY]=y;
SpikeInfo[i][sZ]=z;
SpikeInfo[i][sObject] = CreateObject(2899, x, y-1.5, z-0.6, 0, 0, Angle-z-100);
return 1;
}
}
return 0;
}
forward DeleteAllStrip();
public DeleteAllStrip()
{
for(new i = 0; i < sizeof(SpikeInfo); i++)
{
if(SpikeInfo[i][sCreated] == 1)
{
SpikeInfo[i][sCreated]=0;
SpikeInfo[i][sX]=0.0;
SpikeInfo[i][sY]=0.0;
SpikeInfo[i][sZ]=0.0;
DestroyObject(SpikeInfo[i][sObject]);
KillTimer(Deleteship);
}
}
return 0;
}
encode_tires(tires1, tires2, tires3, tires4) {
return tires1 | (tires2 << 1) | (tires3 << 2) | (tires4 << 3);
}
2. Помогите определить Функцию или что зделать что можно в писать в другой файл инклюда что бы Exp не отнималась и не прибавлялась
PHP:
stock player_OnPlayerKill(killerid, victimid, reason) // earn xp, kills++
{
if (GetPVarInt(killerid, "GangID") != 0)
{
if (GangKill(GetPVarInt(killerid, "GangID"), killerid, victimid, reason) == 1)
{
return;
}
}
GivePVarInt(killerid, "Kills", 1);
// Give XP
new XP_give_victim = -((GetPlayerXP(victimid) / 100) * PLAYER_XP_DEATH_MINUS_PROC);
new XP_give_killer = 0;
new level_difference = GetPlayerLevel(victimid) - GetPlayerLevel(killerid);
switch (level_difference)
{
default: XP_give_killer = ( (GetPlayerLevel(victimid)+1) * 2 ) * ( (GetPlayerLevel(victimid)+1) * 2 ) * PLAYER_XP_KILL_TARIF;
}
if ((GetPlayerXP(killerid) + XP_give_killer) > MAX_XP)
{
SetPlayerXP(killerid, MAX_XP);
}
else if (XP_give_killer != 0)
{
GivePlayerXP(killerid, XP_give_killer, 1);
CheckPlayerLevel(killerid);
}
if (XP_give_victim != 0)
{
GivePlayerXP(victimid, XP_give_victim, 1);
CheckPlayerLevel(victimid);
}
//
// Give Money
new stolencash = (oGetPlayerMoney(victimid) / 100) * PLAYER_MONEY_DEATH_MINUS_PROC;
if (stolencash != 0)
{
oGivePlayerMoney(victimid,-stolencash, 1);
oGivePlayerMoney(killerid, stolencash, 1);
}
//
return;
}
PHP:
stock GangKill(gangid, killerid, victimid, reason)
{
#pragma unused reason
if (victimid != INVALID_PLAYER_ID)
{
Gangs[gangid][gang_kills]++;
}
if (GetPlayerGangID(killerid) == GetPlayerGangID(victimid))
{
new string[MAX_STRING];
format(string, sizeof(string), lang_texts[6][76], oGetPlayerName(killerid));
SendGangMessage(GetPlayerGangID(killerid), string, COLOUR_GANG);
return 1;
}
return 0;
}
PHP:
stock gang_OnPlayerDeath(playerid, killerid, reason)
{
#pragma unused reason, playerid
new gangid = GetPlayerGangID(killerid);
GiveGangXP(gangid, (1+Gangs[gangid][gang_level]) * 20);
return 1;
}
Последнее редактирование:
