09.04.2012, 03:54
Всем привет, возникла такая проблемка,
Делаю скрипт футбола чтобы мячик атачился, но такая проблема,
Когда приатачился мяч, то его нельзя пнуть вообще
А если без атача то все норм делает
Код
Делаю скрипт футбола чтобы мячик атачился, но такая проблема,
Когда приатачился мяч, то его нельзя пнуть вообще
А если без атача то все норм делает
Код
PHP код:
#include <a_samp>
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
forward VladenieBall(playerid);
new FootBallBall;
new PlayGameTheFootBall[MAX_PLAYERS];
public OnGameModeInit()
{
UsePlayerPedAnims();
FootBallBall = CreateObject(1598, 89.615692, 2500.632324, 15.789375, 0.0000, 0.0000, 0.0000);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
SetPlayerPos(playerid,45.6425,2490.3450,16.4844);
SetTimer("Attach",100,1);
PlayGameTheFootBall[playerid] = 1;
return 1;
}
if(!strcmp(cmdtext, "/leave", true))
{
SendClientMessage(playerid, 0xFFFFFFFF, "");
PlayGameTheFootBall[playerid] = 0;
return 1;
}
return 0;
}
forward Attach(playerid);
public Attach(playerid)
{
new Float:PosX, Float:PosY, Float:PosZ;
GetObjectPos(FootBallBall, PosX, PosY, PosZ);
new Float:px, Float:py, Float:pz;
if(PlayerToPoint(1.7,playerid,PosX,PosY,PosZ))
{
GetPlayerPos(playerid, px, py, pz);
GetXYInFrontOfPlayer(playerid, px, py, 7.0);
AttachObjectToPlayer(FootBallBall,playerid,-0.229000,0.548000,-0.232999,0.000000,0.000000,0.000000);
}
return 1;
}
GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{
new Float:a;
GetPlayerPos(playerid, x, y, a);
GetPlayerFacingAngle(playerid, a);
if (GetPlayerVehicleID(playerid))
{
GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
}
x += (distance * floatsin(-a, degrees));
y += (distance * floatcos(-a, degrees));
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
new Float:PosX, Float:PosY, Float:PosZ;
GetObjectPos(FootBallBall, PosX, PosY, PosZ);
new Float:px, Float:py, Float:pz;
new Float:angle;
GetPlayerFacingAngle(playerid, angle);
if(newkeys & KEY_WALK && PlayGameTheFootBall[playerid] == 1)
{
if(PlayerToPoint(1.7,playerid,PosX,PosY,PosZ))
{
GetPlayerPos(playerid, px, py, pz);GetXYInFrontOfPlayer(playerid, px, py, 7.0);
MoveObject(FootBallBall,px,py+5,15.789375,10.0);
ApplyAnimation(playerid,"FIGHT_D","FightD_1",4.1,0,1,1,0,0);
}
}
}
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}