• Страница 1 из 1
  • 1
Форум » PAWNO » Уроки Pawno » Работа шахтёра
Работа шахтёра
Дмитрий Дата: Понедельник, 27.08.2012, 14:03 | Сообщение # 1 | Сообщить о нерабочей теме


Аватар для Дмитрий

Всем Привет, Данный урок я сделал вырезав его из одного мода это мой первый урок!

За основу взял другой скрипт и переделал его до неузнаваемости !



Изменены пикапы!
Изменены цвета 3D текстов!
Зайти на склад не работая шахтёром теперь нельзя!


Приступим
Ко всем new Добавим

Code
new obj;  
new string[256];  
new name[MAX_PLAYER_NAME];  
new minerpick;  
new prinesmet[MAX_PLAYERS];  
new countmet[MAX_PLAYERS];  
new Oldminerskin[MAX_PLAYERS];  


Далее в public OnFilterScriptInit()

Code
{  
     /* Создаём 3D тексты */  
     Create3DTextLabel("{FF0000}Место добычи руды\n{FF9F00}Для начала добычи встаньте на пикап и нажминте {009F00}ЛКМ",0x008080FF,-1831.4911,-1660.4895,21.7500,70.0,0);  
     Create3DTextLabel("{FF0000}Место добычи руды\n{FF9F00}Для начала добычи встаньте на пикап и нажминте {009F00}ЛКМ",0x008080FF,-1798.6451,-1645.2279,28.2090,70.0,0);  
     Create3DTextLabel("{FF0000}Место добычи руды\n{FF9F00}Для начала добычи встаньте на пикап и нажминте {009F00}ЛКМ",0x008080FF,-1795.8649,-1660.5333,28.4148,70.0,0);  
     Create3DTextLabel("{FF0000}Место добычи руды\n{FF9F00}Для начала добычи встаньте на пикап и нажминте {009F00}ЛКМ",0x008080FF,-1778.4910,-1653.5758,26.1707,70.0,0);  
     Create3DTextLabel("{FF0000}Место добычи руды\n{FF9F00}Для начала добычи встаньте на пикап и нажминте {009F00}ЛКМ",0x008080FF,-1787.6511,-1636.2915,26.2763,70.0,0);  
     Create3DTextLabel("{FF0000}••{FFB700}Офис{FF0000}••",0x008080FF,-1891.6418,-1649.3176,22.8547,40.0,0);  
     Create3DTextLabel("{FF0000}••{FFB700}Склад{FF0000}••",0x008080FF,-1857.1989, -1628.8000, 21.8999,40.0,0);  
     /* Создаём пикапы */  
     minerpick = CreatePickup(1210,2,-1891.6418,-1649.3176,22.8547,0);  
        CreatePickup(3930,23,-1831.4911,-1660.4895,21.7500,0);  
     CreatePickup(3930,23,-1798.6451,-1645.2279,28.2090,0);  
     CreatePickup(3930,23,-1795.8649,-1660.5333,28.4148,0);  
     CreatePickup(3930,23,-1778.4910,-1653.5758,26.1707,0);  
     CreatePickup(3930,23,-1787.6511,-1636.2915,26.2763,0);  
     /* Создаём объекты */  
     CreateObject(13635, -1836, -1658, 23.799999237061, 0, 0, 52);  
     CreateObject(896, -1795.5999755859, -1648.1999511719, 22.299999237061, 0, 0, 316);  
     CreateObject(898, -1794.4000244141, -1657.3000488281, 23.299999237061, 0, 0, 332);  
     CreateObject(899, -1782.3000488281, -1645, 21, 0, 0, 0);  
     CreateObject(5262, -1865.0999755859, -1611, 23.700000762939, 0, 0, 0);  
     CreateObject(5260, -1864.8000488281, -1622, 22.60000038147, 0, 0, 0);  
     CreateObject(3796, -1855.5999755859, -1611, 20.799999237061, 0, 0, 88);  
     CreateObject(3798, -1859.0999755859, -1611.5999755859, 20.799999237061, 0, 0, 0);  
     obj = CreateObject(11327,-1857.19921875,-1627.09960938,23.50000000,0.00000000,0.00000000,90  .00000000);  
     CreateObject(18234, -1888.5999755859, -1644.5999755859, 20.799999237061, 0, 0, 90);  
     SetTimer("NameTimer", 1000, 1);//где nametimer название таймера  
     return true;  
}  


в public OnPlayerConnect(playerid)

Code
{  
     SetPVarInt(playerid,"GoMinerJob",0);  
     SetPVarInt(playerid,"Na4alRaboty",0);  
     return true;  
}  
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)  
{  
     if(newkeys == 4)//Левая кнопка мыши  
     {  
         if(GetPVarInt(playerid,"GoMinerJob") == 1)  
         {  
             if(GetPVarInt(playerid,"Na4alRaboty") == 0)  
             {  
                 GoMinerDob(playerid);  
                 return 1;  
             }  
         }  
     }  
     return 1;  
}  


Далее добавляем в public OnPlayerPickUpPickup(playerid, pickupid)

Code
{  
     if(pickupid ==  minerpick)  
     {  
         if(GetPVarInt(playerid,"GoMinerJob")==0)  
         {  
             return ShowPlayerDialog(playerid,1000,DIALOG_STYLE_MSGBOX  ,"{FF0000}<<<{00FF00}Работа шахтёра{FF0000}>>>","{00AFFF}Вы хотите устроиться на работу шахтёра?","Да","Нет");  
         }  
         else  
         {  
             return ShowPlayerDialog(playerid,1001,DIALOG_STYLE_MSGBOX  ,"{FF0000}<<<{00FF00}Работа шахтёра{FF0000}>>>","{00AFFF}Вы хотите уволится с работы шахтёра и получить зарплату?","Да","Нет");  
         }  
     }  
      return 1;  
}  


Добавляем Forward

Code
forward minertimer(playerid);  


в public minertimer(playerid)

Code
{  
     if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);  
     SendClientMessage(playerid,-1,"{FF0000}[Информация]: {FF9700}Вы добыли руду, теперь отнесите её на склад!");  
     ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);  
     SetPlayerAttachedObject( playerid, 4, 1271, 1, 0.391314, 0.579003, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 );  
     SetPlayerCheckpoint(playerid, -1855.7689,-1613.2925,21.7578, 5.0);  
     return 1;  
}  


в public OnPlayerEnterCheckpoint(playerid)

Code
{  
     if(GetPVarInt(playerid,"Na4alRaboty") == 1)  
     {  
         DisablePlayerCheckpoint(playerid);  
         prinesmet[playerid] = random(60)+50;  
         countmet[playerid] = countmet[playerid] + prinesmet[playerid];  
         SendClientMessage(playerid,-1,"{FF0000}[Информация]: {FF9700}Вы отнесли руду!");  
         new text[150];  
         format(text,sizeof(text),"{FF0000}[Информация]: {FF9700}Вы принесли {00FF74}%d{FF9700} кг руды, всего принесено {00FF74}%d{FF9700} кг руды!",prinesmet[playerid],countmet[playerid]);  
         SendClientMessage(playerid,-1,text);  
         prinesmet[playerid] = 0;  
         SendClientMessage(playerid, 0x33AA33AA, "{FF0000}[Информация]: {FF9700}Вы можете уволиться в офисе и забрать зарплату или продолжить работать!");  
         SetPVarInt(playerid,"Na4alRaboty",0);  
         if(IsPlayerAttachedObjectSlotUsed(playerid, 4)) RemovePlayerAttachedObject(playerid, 4);  
         SetPlayerAttachedObject( playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );  
         return 1;  
     }  
     return 1;  
}  


в public OnPlayerSpawn(playerid)

Code
{  
     return ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);  
}  

stock GoMinerDob(playerid)  
{  
     if(IsPlayerInRangeOfPoint(playerid, 0.5, -1831.4911,-1660.4895,21.7500))//1-е место добычи  
     {  
         SendClientMessage(playerid,-1,"{FF0000}[Информация]: {FF9700}Вы начали добывать руду!");  
         ApplyAnimation(playerid,"SWORD","sword_4",4.1,1,1,1,0,0);  
         SetPVarInt(playerid,"Na4alRaboty",1);  
         SetTimerEx("minertimer",6000,0,"%d",playerid);  
         return 1;  
     }  
     else if(IsPlayerInRangeOfPoint(playerid, 0.5, -1798.6451,-1645.2279,28.2090))//2-е место добычи  
     {  
         if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);  
         ApplyAnimation(playerid,"SWORD","sword_4",4.1,1,1,1,0,0);  
         SendClientMessage(playerid,-1,"{FF0000}[Информация]: {FF9700}Вы начали добывать руду!");  
         SetPVarInt(playerid,"Na4alRaboty",1);  
         SetTimerEx("minertimer",3000,0,"%d",playerid);  
         return 1;  
     }  
     else if(IsPlayerInRangeOfPoint(playerid, 0.5, -1795.8649,-1660.5333,28.4148))//3-е место добычи  
     {  
         if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);  
         ApplyAnimation(playerid,"SWORD","sword_4",4.1,1,1,1,0,0);  
         SendClientMessage(playerid,-1,"{FF0000}[Информация]: {FF9700}Вы начали добывать руду!");  
         SetPVarInt(playerid,"Na4alRaboty",1);  
         SetTimerEx("minertimer",2000,0,"%d",playerid);  
         return 1;  
     }  
     else if(IsPlayerInRangeOfPoint(playerid, 0.5, -1778.4910,-1653.5758,26.1707))//4-е место добычи  
     {  
         if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);  
         ApplyAnimation(playerid,"SWORD","sword_4",4.1,1,1,1,0,0);  
         SendClientMessage(playerid,-1,"{FF0000}[Информация]: {FF9700}Вы начали добывать руду!");  
         SetPVarInt(playerid,"Na4alRaboty",1);  
         SetTimerEx("minertimer",2000,0,"%d",playerid);  
         return 1;  
     }  
     else if(IsPlayerInRangeOfPoint(playerid, 0.5, -1787.6511,-1636.2915,26.2763))//5-е место добычи  
     {  
         if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);  
         ApplyAnimation(playerid,"SWORD","sword_4",4.1,1,1,1,0,0);  
         SendClientMessage(playerid,-1,"{FF0000}[Информация]: {FF9700}Вы начали добывать руду!");  
         SetPVarInt(playerid,"Na4alRaboty",1);  
         SetTimerEx("minertimer",2000,0,"%d",playerid);  
         return 1;  
     }  
     return 1;  
}  


в public OnPlayerDisconnect(playerid, reason)

Code
{  
     SetPVarInt(playerid,"Na4alRaboty",0);  
     SetPVarInt(playerid,"GoMinerJob",0);  
     prinesmet[playerid] = 0;  
     countmet[playerid] = 0;  
     if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);  
     if(IsPlayerAttachedObjectSlotUsed(playerid, 4)) RemovePlayerAttachedObject(playerid, 4);  
     return 1;  
}  

forward NameTimer(playerid);//название таймера  
public NameTimer(playerid)  
{  
     if(GetPVarInt(playerid,"GoMinerJob")==1)  
     {  
         if(IsPlayerInRangeOfPoint(playerid, 5, -1857.19921875,-1627.09960938,23.50000000)) //radius - радиус на котором будут открываться ворота; далее координаты закрытых ворот  
         {  
         SetObjectPos(obj, -1857.19995117,-1627.09997559,26.79999924);  
         }else{  
         SetObjectPos(obj, -1857.19921875,-1627.09960938,23.50000000);  
          }  
     }  
     else  
     {  
         if(IsPlayerInRangeOfPoint(playerid, 5, -1857.19921875,-1627.09960938,23.50000000))  
         {  
              return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}[Информация]: {FF9700}Ты не шахтёр!");  
         }  
     }  
     return 1;  
}  


Автор:DimanCC


From Russia With Love!
Форум » PAWNO » Уроки Pawno » Работа шахтёра
  • Страница 1 из 1
  • 1
Поиск: