AmigoWalles
Новичок
Здравствуйте пользователи Pawno-info
Я взял за основу мод Full Rp ( Не реклама ) и там есть такой бизнес как Тир в котором по идеи берешь Абонемент и стреляешь по мишени при этом качается скил того оружия с которого стреляешь.Суть моей проблемы в том что нет ни пикапа не чего подобного что вызовет мишень для того чтобы игрок мог начать стрельбу по мишени и при этом качать свой скилл.
Вот код Тира, так как я не совсем опытен, все что нашел, все вам показываю
PHP:
#define MAX_TIRS 24
#define NONE_3D_TEXT (Text3D:-1)
new Tir_CP[MAX_TIRS];
new Text3D:TirText[MAX_TIRS] = {NONE_3D_TEXT, ...};
new Target_Object[MAX_TIRS];
new PlayerTir[MAX_PLAYERS] = {-1,...};
new TirPlayer[MAX_PLAYERS];
new bool:HitPoint[MAX_PLAYERS][5];
new HitCount[MAX_PLAYERS][5];
new TargetCount[MAX_PLAYERS];
new bool:TirBusy[MAX_TIRS];
new TimerTime[MAX_PLAYERS];
new TargetTimer[MAX_TIRS] = {-1,...};
new TirGun[MAX_PLAYERS];
new Text:TirBGDraw;
new StartCount[MAX_PLAYERS];
new TirAmmo[MAX_PLAYERS];
new bool:TargetGo[MAX_TIRS];
new Float:TargetMoveSpeed[MAX_PLAYERS];
new Text:TirDraw[5];
enum tirinfo
{
Float:tirPos[3],
Float:tirTPos[6],
tirInt,
tirWorld
}
new TirInfo[][tirinfo] =
{
{ {289.20,-24.89,1001.0}, {289.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 32 },
{ {290.79,-24.89,1001.0}, {290.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 32 },
{ {292.20,-24.89,1001.0}, {292.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 32 },
{ {293.70,-24.89,1001.0}, {293.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 32 },
{ {295.29,-24.89,1001.0}, {295.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 32 },
{ {296.79,-24.89,1001.0}, {296.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 32 },
{ {298.29,-24.89,1001.0}, {298.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 32 },
{ {299.79,-24.89,1001.0}, {299.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 32 },
{ {289.20,-24.89,1001.0}, {289.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 33 },
{ {290.79,-24.89,1001.0}, {290.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 33 },
{ {292.20,-24.89,1001.0}, {292.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 33 },
{ {293.70,-24.89,1001.0}, {293.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 33 },
{ {295.29,-24.89,1001.0}, {295.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 33 },
{ {296.79,-24.89,1001.0}, {296.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 33 },
{ {298.29,-24.89,1001.0}, {298.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 33 },
{ {299.79,-24.89,1001.0}, {299.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 33 }
};
enum tirguninfo
{
tgGunname[30],
tgGunid,
tgCost
}
new TGunInfo[][tirguninfo] =
{
{"Pistols", 22, 10},
{"Desert Eagle", 24, 15},
{"ShotGun", 25, 20},
{"MP5", 29, 25},
{"AK47", 30, 35},
{"M4", 31, 35},
{"Sniper Rifle", 34, 50}
};
PHP:
case dTirD: if(response) return ShowTirDialog(playerid);
case dTirD1:
{
if(!response) return true;
if(GetPlayerMoneyEx(playerid) < TGunInfo[listitem][tgCost]) return SendClientMessage(playerid,CGRAY,"Недостаточно средств");
ResetPlayerWeapons(playerid);
PlayerTir[playerid] = TirPlayer[playerid];
new tir = PlayerTir[playerid];
for(new i;i < 5;i ++)
{
HitPoint[playerid][i] = false;
HitCount[playerid][i] = 0;
}
TargetCount[playerid] = 0;
TirBusy[tir] = true;
TimerTime[playerid] = 10000; //10000
if(TargetTimer[tir] != -1) KillTimer(TargetTimer[tir]);
TargetTimer[tir] = SetTimerEx("MoveTarget", 1000, false, "i", playerid);
TirGun[playerid] = TGunInfo[listitem][tgGunid];
TransferMoney(playerid,-1,TGunInfo[listitem][tgCost]);
new id = pTemp[playerid][pSelectedBusinessID];
gBusiness[id][busiBank] += TGunInfo[listitem][tgCost];
gBusiness[id][busiProduct] -= TGunInfo[listitem][tgCost] - 5;
UpdateDynamic3DTextLabelText(TirText[tir],CGREEN,"-== Тир ==-\n\n{AFAFAF}Занято");
TextDrawShowForPlayer(playerid, TirBGDraw);
for(new idxf=0, i=0; idxf<cvector_size(players); idxf++)
{
i = cvector_get(players, idxf);
if(!IsPlayerConnected(i)) continue;
TogglePlayerDynamicCP(i, Tir_CP[tir], false);
}
}
PHP:
for(new i;i < sizeof(TirInfo);i ++)
{
Tir_CP[i] = CreateDynamicCP(TirInfo[i][tirPos][0], TirInfo[i][tirPos][1], TirInfo[i][tirPos][2], 1.0, TirInfo[i][tirWorld], TirInfo[i][tirInt], -1, 10.0);
TirText[i] = CreateDynamic3DTextLabel("-== Тир ==-\n\n{FFFFFF}Место для стрельбы",CGREEN,TirInfo[i][tirPos][0], TirInfo[i][tirPos][1], TirInfo[i][tirPos][2],5.0,INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, TirInfo[i][tirWorld], TirInfo[i][tirInt]);
Target_Object[i] = CreateDynamicObject(1586, TirInfo[i][tirTPos][0], TirInfo[i][tirTPos][1], TirInfo[i][tirTPos][2], TirInfo[i][tirTPos][3], TirInfo[i][tirTPos][4], TirInfo[i][tirTPos][5], TirInfo[i][tirWorld], TirInfo[i][tirInt]);
}
TirBGDraw = TextDrawCreate(518,341,"-");
TextDrawUseBox(TirBGDraw,1);
TextDrawColor(TirBGDraw,0xFFFFFFFF);//
TextDrawBackgroundColor(TirBGDraw,0x00000000);
TextDrawBoxColor(TirBGDraw,0x00000055);
TextDrawTextSize(TirBGDraw,105.0,40.0);
TextDrawAlignment(TirBGDraw,2);
TextDrawLetterSize(TirBGDraw,0.00,5.09);
TextDrawSetOutline(TirBGDraw,1);
TextDrawFont(TirBGDraw,0);
TirDraw[0] = TextDrawCreate(499, 300, "-");
TextDrawFont(TirDraw[0], 1);
TextDrawLetterSize(TirDraw[0], 3.5, 8.7);
TextDrawColor(TirDraw[0], 0xFFFFFFFF);
TextDrawBackgroundColor(TirDraw[0],0xAFAFAFFF);
TextDrawSetOutline(TirDraw[0], 1);
TirDraw[1] = TextDrawCreate(500, 315, "-");
TextDrawFont(TirDraw[1], 1);
TextDrawLetterSize(TirDraw[1], 1.47, 8.7);
TextDrawColor(TirDraw[1], 0xFFFFFFFF);
TextDrawBackgroundColor(TirDraw[1],0xAFAFAFFF);
TextDrawSetOutline(TirDraw[1], 1);
TirDraw[2] = TextDrawCreate(520, 315, "-");
TextDrawFont(TirDraw[2], 1);
TextDrawLetterSize(TirDraw[2], 1.47, 8.7);
TextDrawColor(TirDraw[2], 0xFFFFFFFF);
TextDrawBackgroundColor(TirDraw[2],0xAFAFAFFF);
TextDrawSetOutline(TirDraw[2], 1);
TirDraw[3] = TextDrawCreate(500, 330, "-");
TextDrawFont(TirDraw[3], 1);
TextDrawLetterSize(TirDraw[3], 1.47, 8.7);
TextDrawColor(TirDraw[3], 0xFFFFFFFF);
TextDrawBackgroundColor(TirDraw[3],0xAFAFAFFF);
TextDrawSetOutline(TirDraw[3], 1);
TirDraw[4] = TextDrawCreate(520, 330, "-");
TextDrawFont(TirDraw[4], 1);
TextDrawLetterSize(TirDraw[4], 1.47, 8.7);
TextDrawColor(TirDraw[4], 0xFFFFFFFF);
TextDrawBackgroundColor(TirDraw[4],0xAFAFAFFF);
TextDrawSetOutline(TirDraw[4], 1);
PHP:
stock CheckTir(playerid)
{
new tir = PlayerTir[playerid];
if(tir != -1)
{
if(TirBusy[tir])
{
TirBusy[tir] = false;
TargetTimer[tir] = -1;
TargetGo[tir] = false;
if(TargetTimer[tir] != -1) KillTimer(TargetTimer[tir]);
DestroyDynamicObject(Target_Object[tir]);
Target_Object[tir] = CreateDynamicObject(1586, TirInfo[tir][tirTPos][0], TirInfo[tir][tirTPos][1], TirInfo[tir][tirTPos][2], TirInfo[tir][tirTPos][3], TirInfo[tir][tirTPos][4], TirInfo[tir][tirTPos][5], TirInfo[tir][tirWorld], TirInfo[tir][tirInt]);
UpdateDynamic3DTextLabelText(TirText[tir],CGREEN,"-== Тир ==-\n\n{FFFFFF}Место для стрельбы");
for(new idxf=0, i=0; idxf<cvector_size(players); idxf++)
{
i = cvector_get(players, idxf);
if(!IsPlayerConnected(i)) continue;
TogglePlayerDynamicCP(i, Tir_CP[tir], true);
}
}
ResetPlayerWeapons(playerid);
PlayerTir[playerid] = -1;
for(new i;i < 5;i ++)
{
HitPoint[playerid][i] = false;
HitCount[playerid][i] = 0;
}
TargetCount[playerid] = 0;
TargetMoveSpeed[playerid] = 0.5; //1.0
TimerTime[playerid] = 20000; //10000
StartCount[playerid] = 4;
TextDrawHideForPlayer(playerid, TirDraw[0]);
TextDrawHideForPlayer(playerid, TirDraw[1]);
TextDrawHideForPlayer(playerid, TirDraw[2]);
TextDrawHideForPlayer(playerid, TirDraw[3]);
TextDrawHideForPlayer(playerid, TirDraw[4]);
TextDrawHideForPlayer(playerid, TirBGDraw);
}
return true;
}
PHP:
stock ShowSkills(playerid, giveplayerid)
{
new str[500],string[50];
format(string,sizeof(string),"{FFFFFF}Pistol: \t\t\t{10F441}%d/100%%\n",pData[giveplayerid][pPistol]/100);
strcat(str,string);
format(string,sizeof(string),"{FFFFFF}Desert Eagle: \t\t{10F441}%d/100%%\n",pData[giveplayerid][pEagle]/100);
strcat(str,string);
format(string,sizeof(string),"{FFFFFF}ShotGun: \t\t{10F441}%d/100%%\n",pData[giveplayerid][pShotgun]/100);
strcat(str,string);
format(string,sizeof(string),"{FFFFFF}MP5: \t\t\t{10F441}%d/100%%\n",pData[giveplayerid][pMP5]/100);
strcat(str,string);
format(string,sizeof(string),"{FFFFFF}AK47: \t\t\t{10F441}%d/100%%\n",pData[giveplayerid][pAK47]/100);
strcat(str,string);
format(string,sizeof(string),"{FFFFFF}M4A1: \t\t\t{10F441}%d/100%%\n",pData[giveplayerid][pM4]/100);
strcat(str,string);
format(string,sizeof(string),"{FFFFFF}Sniper: \t\t\t{10F441}%d/100%%\n",pData[giveplayerid][pSniper]/100);
strcat(str,string);
ShowPlayerDialog(playerid,dMes,0,"{"#cGREEN"}ТИР:{"#cWHITE"} выписка",str,"Закрыть","");
return true;
}
stock SetPlayerSkills(playerid)
{
SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL, pData[playerid][pPistol]/10);
SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE, pData[playerid][pEagle]/10);
SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN, pData[playerid][pShotgun]/10);
SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5, pData[playerid][pMP5]/10);
SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47, pData[playerid][pAK47]/10);
SetPlayerSkillLevel(playerid,WEAPONSKILL_M4, pData[playerid][pM4]/10);
SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE, pData[playerid][pSniper]/10);
return true;
}
stock ShowTirTutDialog(playerid, tirid)
{
new string[600];
strcat(string, "{FFD700}Здравствуйте! {FFFFFF}Вы заглянули в тир.\n");
strcat(string, "В тире вы можете практиковать свои навыки стрельбы.\n");
strcat(string, "Для стрельбы вам будет предложено несколько видов оружия.\n");
strcat(string, "Выбрав одно из них, нужно будет стрелять по мишени.\n");
strcat(string, "На мишени отмечены 5 точек, в которые нужно попадать.\n");
strcat(string, "Успешные пападания будут отображены в нижнем правом углу.\n");
strcat(string, "Для усложнения, мишень будет двигаться на вас.\n\n");
strcat(string, "{FF6322}1. Попасть надо во все 5 точек определенное кол-во раз.\n");
strcat(string, "{FF6347}2. С каждым разом скорость будет увеличиваться\n\n");
strcat(string, "{AFAFAF}\t\tНажмите 'Далее' для продолжения.\n");
TirPlayer[playerid] = tirid;
ShowPlayerDialog(playerid, dTirD, 0, "Тир | Вступление", string, "Далее", "Закрыть");
return true;
}
stock ShowTirDialog(playerid)
{
new str[500], string[70];
for(new g; g < sizeof(TGunInfo);g ++)
{
format(string,sizeof(string),"%i. %s $%d\n", g+1, TGunInfo[g][tgGunname], TGunInfo[g][tgCost]);
strcat(str, string);
}
ShowPlayerDialog(playerid, dTirD1, 2, "Тир | Выберите оружие", str, "Выбор", "Закрыть");
return true;
}
stock GetTirAmmo(weaponid)
{
new ammo;
switch(weaponid)
{
case 22: ammo = 25;
case 23: ammo = 25;
case 24: ammo = 20;
case 25: ammo = 15;
case 29: ammo = 50;
case 30: ammo = 50;
case 31: ammo = 50;
case 34: ammo = 10;
}
return ammo;
}
Прошу помочь разобраться
P.S Я еще не очень опытен
P.S Я еще не очень опытен
