Brain_Voker
Умник
Привет всем, решил поправить коды некоторых участников данного форума, и как мне кажется это будет лучше дабы не портить авторитет форума и не давать ложные советы новичкам.
Решил начать с Работы доярки от Botan'a ( http://pawno-info.ru/showthread.php?t=184219 )
Посмотрел данный код и ужаснулся, может сам и не про, но то жесть
Автор: Botan
Автор доработки: Brain_Voker(#Kalashnikov)
Место нахождения: Ферма 0.
Думаю начнем:
Ко всем #define:
Ко всем new:
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):
В public OnPlayerPickUpPickup(playerid, pickupid):
В public OnPlayerEnterCheckpoint(playerid):
Ко всем public:
В public OnGameModeInit():
P.S: Saibot, iWors оставили полезные комментарии, если вы новичок прочитайте.
Поправил string в SendMes
Решил начать с Работы доярки от Botan'a ( http://pawno-info.ru/showthread.php?t=184219 )
Посмотрел данный код и ужаснулся, может сам и не про, но то жесть
Автор: Botan
Автор доработки: Brain_Voker(#Kalashnikov)
Место нахождения: Ферма 0.
Думаю начнем:
Ко всем #define:
PHP:
new format_string[144];
#define SendMes(%0,%1,%2,%3) format(format_string, format_string,sizeof(format_string), %2,%3), SendClientMessage(%0, %1, format_string)
#define publics:%0(%1) forward %0(%1); public %0(%1)
#define MONEY_DOIKI 3//3$ за литр + рандом до 20
PHP:
new Float:cDoikiJob[][3] = {
{-284.0849,-1380.6089,10.0154},
{-310.5776,-1411.9600,14.0516},
{-216.8332,-1375.4652,6.8356},
{-237.2563,-1339.7296,8.2130},
{-251.1372,-1321.1127,9.7137},
{-297.3181,-1349.6071,7.8895},
{-261.3127,-1357.4972,8.8070},
{-237.2100,-1399.8905,9.1191},
{-205.1850,-1401.7838,6.0466},
{-215.7505,-1323.4077,10.2098}
};
new
Text3D:MilkSklad,//Текст Склада
DoikiPick[2],//Пикапы Устройства/Инфа
milk = 0;//Склад молока(Может сделать себе сохранения)
PHP:
case 12:
{
if(!response) return true;
if(!GetPVarInt(playerid,"JobDoiki"))
{
DelGun(playerid);//Если у Вас мод RLS То вам это подойдет, дабы обнулить оружие
SetPVarInt(playerid,"JobDoiki",1);
SetPVarInt(playerid,"ProgressDoiki",0);
SetPVarInt(playerid,"JobDoikiKG",0);
switch(PlayerInfo[playerid][pSex])//Здесь поменяйте если у Вас не так ПОЛ
{
case 1: { new job_skin[2] = {94, 95}; SetPlayerSkin(playerid, job_skin[random(2)]); } //Мужские скины
case 2: SetPlayerSkin(playerid, 56);//Женские скины
}
SendClientMessage(playerid, 0x33CCFFAA, "Вы начали работу Доярки! На вашей карте отмечен Чекпоинт.");
ApplyAnimation(playerid,"BOMBER","BOM_Plant",4.0,1,1,1,1,0);
ClearAnimations(playerid);//Очистка анимации
new P = random(sizeof(cDoikiJob));
SetPlayerCheckpoint(playerid,cDoikiJob[P][0],cDoikiJob[P][1],cDoikiJob[P][2],1.0);
}
else
{
//Возвращаем игроку скин
if(!PlayerInfo[playerid][pPlayerMember]) SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);//Если он не во фракции
else SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);//Если во фракции
//
DisablePlayerCheckpoint(playerid);//Удаляем чекпоинт
GiveMoney(playerid,GetPVarInt(playerid,"JobDoikiKG")*MONEY_DOIKI);//Выдача денег
SendMes(playerid, 0x33CCFFAA, "Вы заработали %d$. Приходите ещё!",GetPVarInt(playerid,"JobDoikiKG")*MONEY_DOIKI);
DeletePVar(playerid,"ProgressDoiki");
DeletePVar(playerid,"JobDoiki");
DeletePVar(playerid,"JobDoikiKG");
}
return true;
}
PHP:
if(pickupid == DoikiPick[0])
{
if(!GetPVarInt(playerid,"JobDoiki")) ShowPlayerDialog(playerid, 12, 0,"{ffcc00}Работа доярки","{FFFFFF}Вы хотите начать работу доярки ?","Начать","Отмена");
else ShowPlayerDialog(playerid, 12, 0,"{ffcc00}Работа доярки","{FFFFFF}Вы хотите покинуть работу доярки ?","Покинуть","Отмена");
}
if(pickupid == DoikiPick[1])
{
ShowPlayerDialog(playerid, 9999, 0, "Информация о работе","Здесь вы можете поработать Дояркой. \nЧтобы приступить к сбору молока, вам надо переодеться,\nдля этого подойдите к Раздевалке и нажмите 'Начать'.\nЧтобы закончить работу 'Покинуть'. Удачного вам заработка!", "Спасибо", "");
}
PHP:
if(GetPVarInt(playerid,"JobDoiki"))
{
if(PlayerToPoint(1.0, playerid,-284.0849,-1380.6089,10.0154) || PlayerToPoint(1.0, playerid,-310.5776,-1411.9600,14.0516) || PlayerToPoint(1.0, playerid,-216.8332,-1375.4652,6.8356)
|| PlayerToPoint(1.0, playerid,-237.2563,-1339.7296,8.2130) || PlayerToPoint(1.0, playerid,-251.1372,-1321.1127,9.7137) || PlayerToPoint(1.0, playerid,-297.3181,-1349.6071,7.8895)
|| PlayerToPoint(1.0, playerid,-261.3127,-1357.4972,8.8070) || PlayerToPoint(1.0, playerid,-237.2100,-1399.8905,9.1191) || PlayerToPoint(1.0, playerid,-205.1850,-1401.7838,6.0466)
|| PlayerToPoint(1.0, playerid,-215.7505,-1323.4077,10.2098)) // 1 ???????
{
SetPVarInt(playerid,"ProgressDoiki",1);
ClearAnimations(playerid);
DisablePlayerCheckpoint(playerid);
ApplyAnimation(playerid,"BOMBER","BOM_Plant",4.0,1,1,1,1,0);
SetTimerEx("TimerJob",4000+random(4000),false,"d",playerid);//Процес - 4 секунды стандарт + Рандом до 4 сек
return true;
}
else if(PlayerToPoint(2.0, playerid,-365.5118,-1429.0254,25.7266))
{
if(IsPlayerAttachedObjectSlotUsed(playerid,3)) RemovePlayerAttachedObject(playerid,3);
SetPVarInt(playerid,"ProgressDoiki",0);
new MilkKG = 3+random(20);
SetPVarInt(playerid,"JobDoikiKG", GetPVarInt(playerid,"JobDoikiKG")+MilkKG);
SendMes(playerid, 0x33CCFFAA, "Вы принесли %d литров молока. Заработано: %d$",MilkKG,GetPVarInt(playerid,"JobDoikiKG")*MONEY_DOIKI);
milk+=MilkKG;
UpdateMilkSklad();
ApplyAnimation(playerid,"PED","IDLE_tired",4.1,1,0,0,0,2500);
new P = random(sizeof(cDoikiJob));
SetPlayerCheckpoint(playerid,cDoikiJob[P][0],cDoikiJob[P][1],cDoikiJob[P][2],1.0);
format(string,sizeof(string),"На складе {ffffff}%d литров {FFFF00}молока",milk);
UpdateDynamic3DTextLabelText(MilkSklad,0xFFFF00FF,string);
return true;
}
}
PHP:
publics: TimerJob(playerid)
{
if(GetPVarInt(playerid,"ProgressDoiki"))
{
SetPlayerAttachedObject(playerid, 3, 1668, 6, 0.003288, 0.105444, 0.187527, 1.000000,1.000000,1.000000,1.000000,1.000000);
SetPlayerCheckpoint(playerid,-365.5118,-1429.0254,25.7266,2.0);
ClearAnimations(playerid);
}
return true;
}
PHP:
//Пикапы
DoikiPick[0] = CreatePickup(1275, 23,-382.7202,-1426.2949,26.2546);
DoikiPick[1] = CreatePickup(1239, 23,-382.7521,-1438.9415,26.2520);
//3D Text
new string[64];
format(string,sizeof(string),"На складе {ffffff}%d литров {FFFF00}молока",milk);
MilkSklad = CreateDynamic3DTextLabel(string,0xFFFF00FF,-365.5118,-1429.0254,25.7266,45.0,INVALID_PLAYER_ID,INVALID_PLAYER_ID,0,-1,-1,-1,100.0);
//Объекты коров
CreateDynamicObject(16442,-214.5406,-1324.3490,10.1783,0.00000000,0.00000000,0.00000000);
CreateDynamicObject(16442,-250.9313,-1319.5408,9.9085,0.00000000,0.00000000,50.00000000);
CreateDynamicObject(16442,-269.5100,-1334.9557,7.6010,0.00000000,0.00000000,9.99877930);
CreateDynamicObject(16442,-261.1975,-1356.0355,8.6382,0.00000000,0.00000000,49.99755859);
CreateDynamicObject(16442,-216.6282,-1373.8949,6.7746,0.00000000,0.00000000,49.99328613);
CreateDynamicObject(16442,-177.3974,-1386.1050,4.0533,0.00000000,0.00000000,289.99328613);
CreateDynamicObject(16442,-204.7996,-1403.2201,5.7875,0.00000000,0.00000000,249.98962402);
CreateDynamicObject(16442,-238.7021,-1400.0217,9.2586,0.00000000,0.00000000,149.98840332);
CreateDynamicObject(16442,-266.7166,-1410.2797,10.2336,0.00000000,0.00000000,219.98535156);
CreateDynamicObject(16442,-284.4882,-1382.0657,10.0488,0.00000000,0.00000000,219.98474121);
CreateDynamicObject(16442,-297.7948,-1351.1189,7.9629,0.00000000,0.00000000,219.98474121);
CreateDynamicObject(16442,-291.0052,-1320.3877,8.8163,0.00000000,0.00000000,219.98535156);
CreateDynamicObject(16442,-249.4786,-1372.2765,10.3827,0.00000000,0.00000000,249.98962402);
CreateDynamicObject(16442,-237.1099,-1338.2253,8.4105,0.00000000,0.00000000,49.99755859);
CreateDynamicObject(16442,-309.3080,-1411.1079,14.0147,0.00000000,0.00000000,0.00000000);
Поправил string в SendMes
Если полезно ставь +
Последнее редактирование:
