T.McWright
Умник
Здравствуйте, господа.Обнаружил проблему с командой /loadgun
Если я сажусь в фуру, пишу /loadgun - начинается загрузка, но загрузка с чего-то?
То есть, хочу сделать чтобы при заходе на пикап, игроку выдавались материалы, он нес их к пикапу который создала команда /loadgun и в машину добавлялись материалы.
Сама команда есть:
Сама система загрузки:
Сделал Выдачу обьекта. Зашел на сервер, получил объект, подхожу к разгрузке - ошибка. В pawn не силён, прошу не кидаться тапками.
Или просто, чтобы машина подъехала к маркеру и сразу пополнилось кол-во патронов и ед.оружия.
Буду благодарен за помощь! Всем добра :3
Если я сажусь в фуру, пишу /loadgun - начинается загрузка, но загрузка с чего-то?
То есть, хочу сделать чтобы при заходе на пикап, игроку выдавались материалы, он нес их к пикапу который создала команда /loadgun и в машину добавлялись материалы.
Сама команда есть:
PHP:
if(!strcmp(cmd,"/loadgun",true))
{
if(pData[playerid][pFraction] != 8 && !IsGang(pData[playerid][pFraction]) && pData[playerid][pFraction] != 9) return SendClientMessage(playerid,CGRAY,"Вам недоступна эта функция");
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
if((pData[playerid][pFraction] == 8 && GetVehicleModel(vehicleid) != 433) || ((IsGang(pData[playerid][pFraction]) || pData[playerid][pFraction] == 9) && GetVehicleModel(vehicleid) != 482)) return SendClientMessage(playerid,CGRAY,"Вы должны быть за рулем т.с. для перевозки оружия");
if(gVehicleGun[vehicleid][vGunLoading] || gVehicleGun[vehicleid][vGunUnloading]) return SendClientMessage(playerid,CGRAY,"Авто уже стоит на загрузке / разгрузке");
gVehicleGun[vehicleid][vGunVid] = vehicleid;
gVehicleGun[vehicleid][vGunLoading] = true;
RemovePlayerFromVehicle(playerid);
new Float:x, Float:y, Float:z, Float:a;
GetVehiclePos(vehicleid,x,y,z);
GetVehicleZAngle(vehicleid,a);
x = x - (-6.0*floatsin(a,degrees));
y = y - 6.0*floatcos(a,degrees);
gVehicleGun[vehicleid][vGunPickup] = CreateDynamicPickup(19133,1,x,y,z-0.5);
new mes[128];
format(mes,sizeof(mes),"Ед. оружия: {"#cGREEN"}%d\n{"#cWHITE"}Патронов: {"#cGREEN"}%d",gVehicleGun[vehicleid][vGunGunAmount],gVehicleGun[vehicleid][vGunAmmo]);
gVehicleGun[vehicleid][vGunText] = CreateDynamic3DTextLabel(mes,CWHITE,x,y,z+0.5,20.0);
gVehicleGun[vehicleid][vGunArea] = CreateDynamicSphere(x,y,z,1.0);
SendClientMessage(playerid,CGREEN,"Загрузка началась");
}
PHP:
if(pData[playerid][pFraction] == 8 || pData[playerid][pFraction] == 9 || IsGang(pData[playerid][pFraction] ))
{
if(logGang) SendClientMessage(playerid,CGRAY,"Check 2");
for(new i;i<MAX_VEHICLES;i++)
{
if(areaid == gVehicleGun[i][vGunArea])
{
if(logGang) SendClientMessage(playerid,CGRAY,"Check 3");
new mesa[128];
format(mesa,sizeof(mesa),"ID: %d",i);
if(logGang)SendClientMessage(playerid,CWHITE,mesa);
new vehicleid = i;
//if(vehicleid >= aArmy1[0] && vehicleid <= aArmy2[1] && pData[playerid][pFraction] != 8 && !IsGang(pData[playerid][pFraction])) return SendClientMessage(playerid,CWHITE,"Stop 1");;
if(gVehicleGun[i][vGunLoading] == true && (GetPVarInt(playerid,"carrygun") || GetPVarInt(playerid,"carryammo")))
{
if(logGang) SendClientMessage(playerid,CGRAY,"Check 4");
new gunamount = GetPVarInt(playerid,"carrygun");
new ammo = GetPVarInt(playerid,"carryammo");
SetPVarInt(playerid,"carrygun",0);
SetPVarInt(playerid,"carryammo",0);
RemovePlayerAttachedObject(playerid,0);
ApplyAnimation(playerid,"CARRY","putdwn",1.0,0,1,1,0,0,1);
if(gVehicleGun[i][vGunGunAmount] + gunamount > 20000 || gVehicleGun[i][vGunAmmo] + ammo > 20000) return SendClientMessage(playerid,CGRAY,"В т.к. недостаточно места");
if(gunamount) gVehicleGun[i][vGunGunAmount] += gunamount;
if(ammo) gVehicleGun[i][vGunAmmo] += ammo;
new mes[128];
format(mes,sizeof(mes),"Ед. оружия: {"#cGREEN"}%d\n{"#cWHITE"}Патронов: {"#cGREEN"}%d",gVehicleGun[vehicleid][vGunGunAmount],gVehicleGun[vehicleid][vGunAmmo]);
UpdateDynamic3DTextLabelText(gVehicleGun[i][vGunText],CWHITE,mes);
}
else if(gVehicleGun[i][vGunUnloading] == true && !GetPVarInt(playerid,"carrygun") && !GetPVarInt(playerid,"carryammo"))
{
if(logGang) SendClientMessage(playerid,CGRAY,"Check 4.2");
if(gVehicleGun[i][vGunGunAmount] < 200 && gVehicleGun[i][vGunAmmo] < 200) return SendClientMessage(playerid,CGRAY,"В т.с. недостаточно боеприпасов");
if(gVehicleGun[i][vGunGunAmount] >= 200)
{
gVehicleGun[i][vGunGunAmount] -= 200;
SetPVarInt(playerid,"carrygun",200);
}
if(gVehicleGun[i][vGunAmmo] >= 200)
{
gVehicleGun[i][vGunAmmo] -= 200;
SetPVarInt(playerid,"carryammo",200);
}
new mes[128];
format(mes,sizeof(mes),"Ед.Оружия: {"#cGREEN"}%d\n{"#cWHITE"}Патронов: {"#cGREEN"}%d",gVehicleGun[vehicleid][vGunGunAmount],gVehicleGun[vehicleid][vGunAmmo]);
UpdateDynamic3DTextLabelText(gVehicleGun[i][vGunText],CWHITE,mes);
//ClearAnimations(playerid);
ApplyAnimation(playerid,"CARRY","liftup",1.0,0,1,1,0,0,1);
SetTimerEx("CarryDelay",1000,false,"i",playerid);
SetPlayerAttachedObject(playerid,0,2358,6,0.0,0.10,-0.2, -110.0,0.0,78.0);
}
else SendClientMessage(playerid,CGRAY,"Ошибка");
return 1;
}
}
Или просто, чтобы машина подъехала к маркеру и сразу пополнилось кол-во патронов и ед.оружия.
Буду благодарен за помощь! Всем добра :3
Последнее редактирование:
