PDA

Просмотр полной версии : [Вопрос] Насчет аренды..



Redo
04.12.2016, 14:06
Здравствуйте,такой вопрос - как сделать что бы вот фразы "начал работу развозчика топлива" и "Вы арендовали грузовик. Для просмотра доступных заказов подъезжайте к маркеру на радаре." писало только после того как я арендовал грузовик..а если отказался от аренды то просто выпихивало из авто..


else if(vehicleid >= jobfuel[0] && vehicleid <= jobfuel[1])
{
if(pData[playerid][pJob] != 6)
{
SendClientMessage(playerid,COLOR_RED,"Вы не работаете развосчиком топлива");
RemovePlayerFromVehicle(playerid);
return 1;
}
if(pData[playerid][pFraction] >= 1)
{
SendClientMessage(playerid,CGRAY,"Вы cостоите в организации");
RemovePlayerFromVehicle(playerid);
return 1;
}
new carid = vehicleid;
if(carid >= jobfuel[0] && carid <= jobfuel[1])
{
ShowPlayerDialog(playerid,1,
DIALOG_STYLE_MSGBOX,
!"Аренда Транспорта",
!"Ты можешь арендовать этот транспорт за $1000",
!"Аренда", !"Отмена");
}
if(!GetPVarInt(playerid, "FuelID") && !GetPVarInt(playerid, "FuelCar"))
{
new mes[128];
format(mes,sizeof(mes),"%s начал работу развозчика топлива",pData[playerid][pNickname]);
ProxDetector(15.0, playerid, mes, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SendClientMessage(playerid,0x66CC00FF,"Вы арендовали грузовик. Для просмотра доступных заказов подъезжайте к маркеру на радаре.");
SetPlayerCheckpoint(playerid,249.3104,1395.4984,10.5859,4.0);
pTemp[playerid][pGPS] = true;
PlayerPlaySound(playerid, 4601, 0.0, 0.0, 0.0);
TextDrawShowForPlayer(playerid, GPSON[playerid]);
SetPVarInt(playerid, "FuelCar",1);
new vehicleidfuel = GetPlayerVehicleID(playerid);
pTemp[playerid][pFuelID] = vehicleidfuel;
}
if(GetPVarInt(playerid, "FuelID"))
{
new i = FuelInfo[GetPVarInt(playerid, "FuelID")][pBizzidfuel],string[54];
FuelTime[playerid] = 0;
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid, 1, gFillings[i][fillX],gFillings[i][fillY],gFillings[i][fillZ], 0.0,0.0,0.0,6);
format(string, 54, "{66CC00}Доставка топлива\n{FFCD00}%i из 5000 л.", FuelInfo[GetPVarInt(playerid, "FuelID")][pTillfuel]);
FUELS[playerid] = Create3DTextLabel(string, COLOR_WHITE, 0.0, 0.0, 0.0, 30.0, 0, 1);
Attach3DTextLabelToVehicle(FUELS[playerid], GetPlayerVehicleID(playerid), 0, -2.0, 2.7);
}
}

Skyline
04.12.2016, 14:14
Делаешь это все в действии Диалога.
Т.е. когда нажимаешь Аренда, появляются все действии, а у тебя и диалог и весь текст одновременно появляется.

Redo
04.12.2016, 14:37
Делаешь это все в действии Диалога.
Т.е. когда нажимаешь Аренда, появляются все действии, а у тебя и диалог и весь текст одновременно появляется.

Что то у меня не выходит..

Skyline
04.12.2016, 14:50
Как делаешь?

Redo
04.12.2016, 14:53
Как делаешь?

Если не затруднит,то напиши как нужно,а я по твоему шаблончику буду остальные мне нужные аренды делать,просто не могу вникнуть...И еще какой функцией снимать деньги за аренду?
Вот весь код


new carid = vehicleid;
if(carid >= jobfuel[0] && carid <= jobfuel[1])
{
ShowPlayerDialog(playerid,1,
DIALOG_STYLE_MSGBOX,
!"Аренда Транспорта",
!"Ты можешь арендовать этот транспорт за $1000",
!"Аренда", !"Отмена");
}
if(!GetPVarInt(playerid, "FuelID") && !GetPVarInt(playerid, "FuelCar"))
{
new mes[128];
format(mes,sizeof(mes),"%s начал работу развозчика топлива",pData[playerid][pNickname]);
ProxDetector(15.0, playerid, mes, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SendClientMessage(playerid,0x66CC00FF,"Вы арендовали грузовик. Для просмотра доступных заказов подъезжайте к маркеру на радаре.");
SetPlayerCheckpoint(playerid,249.3104,1395.4984,10.5859,4.0);
pTemp[playerid][pGPS] = true;
PlayerPlaySound(playerid, 4601, 0.0, 0.0, 0.0);
TextDrawShowForPlayer(playerid, GPSON[playerid]);
SetPVarInt(playerid, "FuelCar",1);
new vehicleidfuel = GetPlayerVehicleID(playerid);
pTemp[playerid][pFuelID] = vehicleidfuel;
}
if(GetPVarInt(playerid, "FuelID"))
{
new i = FuelInfo[GetPVarInt(playerid, "FuelID")][pBizzidfuel],string[54];
FuelTime[playerid] = 0;
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid, 1, gFillings[i][fillX],gFillings[i][fillY],gFillings[i][fillZ], 0.0,0.0,0.0,6);
format(string, 54, "{66CC00}Доставка топлива\n{FFCD00}%i из 5000 л.", FuelInfo[GetPVarInt(playerid, "FuelID")][pTillfuel]);
FUELS[playerid] = Create3DTextLabel(string, COLOR_WHITE, 0.0, 0.0, 0.0, 30.0, 0, 1);
Attach3DTextLabelToVehicle(FUELS[playerid], GetPlayerVehicleID(playerid), 0, -2.0, 2.7);
}
}

Skyline
04.12.2016, 15:03
if(vehicleid >= jobfuel[0] && vehicleid <= jobfuel[1])
{
if(pData[playerid][pJob] != 6)
{
SendClientMessage(playerid,COLOR_RED,"Вы не работаете развосчиком топлива");
RemovePlayerFromVehicle(playerid);
return 1;
}
if(pData[playerid][pFraction] >= 1)
{
SendClientMessage(playerid,CGRAY,"Вы cостоите в организации");
RemovePlayerFromVehicle(playerid);
return 1;
}
ShowPlayerDialog(playerid,1,
DIALOG_STYLE_MSGBOX,
!"Аренда Транспорта",
!"Ты можешь арендовать этот транспорт за $1000",
!"Аренда", !"Отмена");
}

case 1: // ID диалога измени на свой, дал пример, т.к. у тебя может пересекаться.
{
if(!response) return RemovePlayerFromVehicle(playerid);
if(!GetPVarInt(playerid, "FuelID") && !GetPVarInt(playerid, "FuelCar"))
{
new mes[128];
format(mes,sizeof(mes),"%s начал работу развозчика топлива",pData[playerid][pNickname]);
ProxDetector(15.0, playerid, mes, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SendClientMessage(playerid,0x66CC00FF,"Вы арендовали грузовик. Для просмотра доступных заказов подъезжайте к маркеру на радаре.");
SetPlayerCheckpoint(playerid,249.3104,1395.4984,10.5859,4.0);
pTemp[playerid][pGPS] = true;
PlayerPlaySound(playerid, 4601, 0.0, 0.0, 0.0);
TextDrawShowForPlayer(playerid, GPSON[playerid]);
SetPVarInt(playerid, "FuelCar",1);
new vehicleidfuel = GetPlayerVehicleID(playerid);
pTemp[playerid][pFuelID] = vehicleidfuel;
}
if(GetPVarInt(playerid, "FuelID"))
{
new i = FuelInfo[GetPVarInt(playerid, "FuelID")][pBizzidfuel],string[54];
FuelTime[playerid] = 0;
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid, 1, gFillings[i][fillX],gFillings[i][fillY],gFillings[i][fillZ], 0.0,0.0,0.0,6);
format(string, 54, "{66CC00}Доставка топлива\n{FFCD00}%i из 5000 л.", FuelInfo[GetPVarInt(playerid, "FuelID")][pTillfuel]);
FUELS[playerid] = Create3DTextLabel(string, COLOR_WHITE, 0.0, 0.0, 0.0, 30.0, 0, 1);
Attach3DTextLabelToVehicle(FUELS[playerid], GetPlayerVehicleID(playerid), 0, -2.0, 2.7);
}
GivePlayerMoney(playerid, -1000);
}

Redo
04.12.2016, 15:13
Спасибо большое,Все понял..Только запутался с "ID диалога измени на свой, дал пример, т.к. у тебя может пересекаться."

Skyline
04.12.2016, 15:20
ShowPlayerDialog(playerid,1,
DIALOG_STYLE_MSGBOX,
!"Аренда Транспорта",
!"Ты можешь арендовать этот транспорт за $1000",
!"Аренда", !"Отмена");

Поставь любой другой, которого нет в моде вместо 1, 5555 например...
Тогда и тут будет..

case 5555:

Redo
04.12.2016, 15:30
Что-то я накосячил....выдает вот такие ошибки..
warning 217: loose indentation
error 014: invalid statement; not in switch
warning 215: expression has no effect
error 001: expected token: ";", but found ":"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line

Skyline
04.12.2016, 15:39
Покажи где ошибка

Redo
04.12.2016, 15:45
Тут


if(vehicleid >= jobfuel[0] && vehicleid <= jobfuel[1])

и тут


case 321: // ID диалога измени на свой, дал пример, т.к. у тебя может пересекаться.

Skyline
04.12.2016, 15:52
Тут


if(vehicleid >= jobfuel[0] && vehicleid <= jobfuel[1])

Выровняй строку. Табуляция (TAB)
и тут



case 321: // ID диалога измени на свой, дал пример, т.к. у тебя может пересекаться.


выше или ниже покажи строку. Возможно что 321 ID так же используется

Redo
04.12.2016, 15:57
я сделал вот так..это (16935) строка..


case 3321: // ID диалога измени на свой, дал пример, т.к. у тебя может пересекаться.

и вот что выдает
(16935) : error 014: invalid statement; not in switch
(16935) : warning 215: expression has no effect
(16935) : error 001: expected token: ";", but found ":"
(16935) : error 029: invalid expression, assumed zero
(16935) : fatal error 107: too many error messages on one line

Skyline
05.12.2016, 10:42
У тебя casе твой в конструкции switch не находится.

Redo
05.12.2016, 11:21
У тебя casе твой в конструкции switch не находится.
Все..разобрался..а проверку нпоможешьапоможешь поставить?аарендован ли этот грузовик иарендуешь ли ты такай же грузовик