Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Шипы and Exp , ПОМОГИТЕ пожалуйста?

Статус
В этой теме нельзя размещать новые ответы.

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;
}
то что есть в Gang
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;
}
[/COLOR]надеюсь верю и ждуО_о
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу