[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Stepan23  
Урок Pawno 3 (Добавление фракций в мод GF)
Stepan23Дата: Понедельник, 06.12.2010, 19:30 | Сообщение # 1
Майор
Группа: Администраторы
Сообщений: 91
Репутация: 6
Статус: Offline
Здравствуите с вами снова Stepan23

И сегодня будет урок на тему: (Создание фракций в моде GF)

Ну начнем мы с добавление скинов во фракцию (Иди скинов можно узнать тут Скины)
Допустим, создадим банду Grove, их скины: 105,106,107. 105 возьмем как лидерский
Создаем новый массив со скинами:

Code
new GrovePed[2] = { //Где 2 – это число скинов    
{106},    
{107} //Не забывайте в последнем скине убирать “,”    
};

Мы с вами создали скины для нашей новой фракции Grove
Теперь надо их вставить для выбора:
Находим
Code

if(strcmp(cmd, “/invite”, true) == 0)

И видим чуть ниже примерно такие строки:

Code

if(PlayerInfo[playerid][pLeader] == 1) { PlayerInfo[para1][pTeam] = 1; ftext = “ДПС”; ChosenSkin[para1] = 288; SetPlayerSkin(para1, 288); }    
else if(PlayerInfo[playerid][pLeader] == 2) { PlayerInfo[para1][pTeam] = 2; ftext = “Полиция”; ChosenSkin[para1] = 265; SetPlayerSkin(para1, 265); }

PlayerInfo[playerid][pLeader] == 1 – это есть ID фракции которой будем присваивать скин. В данном случае ID – 1 (В стандартном ГФ это Полиция)
Для того что бы присвоить нашей новой банде скин последним прописываем следую строчку:

Code

else if(PlayerInfo[playerid][pLeader] == ID Новой фракции) { PlayerInfo[para1][pTeam] = ID Новой фракции; ftext = “Grove”; ChosenSkin[para1] = 106; SetPlayerSkin(para1, 106); }

Где 106 – это ID скина участника банды.
А так же надо будет поместить наши скины для прокрутки:
Ищем
Code

public OnPlayerText(playerid, text[])

Ниже видим примерно такие строки:

Code

case 1:    
{    
if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, DPSPed[0][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = DPSPed[0][0]; }    
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, DPSPed[1][0]); SelectCharPlace[playerid] = 3; ChosenSkin[playerid] = DPSPed[1][0]; }    
else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, DPSPed[2][0]); SelectCharPlace[playerid] = 4; ChosenSkin[playerid] = DPSPed[2][0]; }    
else if(SelectCharPlace[playerid] == 4) { SetPlayerSkin(playerid, DPSPed[3][0]); SelectCharPlace[playerid] = 5; ChosenSkin[playerid] = DPSPed[3][0]; }    
else if(SelectCharPlace[playerid] == 5) { SetPlayerSkin(playerid, DPSPed[4][0]); SelectCharPlace[playerid] = 6; ChosenSkin[playerid] = DPSPed[4][0]; }    
else if(SelectCharPlace[playerid] == 6) { SetPlayerSkin(playerid, DPSPed[5][0]); SelectCharPlace[playerid] = 7; ChosenSkin[playerid] = DPSPed[5][0]; }    
else if(SelectCharPlace[playerid] == 7) { SetPlayerSkin(playerid, DPSPed[6][0]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = DPSPed[6][0]; }    
}

И ниже добавляем наши скины:
Code

case ID фракциии:    
{    
if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, GrovePed[0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = GrovePed[0]; }    
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, GrovePed[1]); SelectCharPlace[playerid] = 3; ChosenSkin[playerid] = GrovePed[1]; }    
else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, GrovePed[2]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = GrovePed[2]; }    
}

Теперь перейдем к созданию скина для лидера.
Найдем в моде такие строки

Code

if(strcmp(cmd, “/makeleader”, true) == 0)

Эта команда отвечает за присвоения человеку Лидера той или иной фракции
В этой команде видим примерно такие строки:

Code
if(level == 0) { PlayerInfo[para1][pChar] = 0; }    
else if(level == 1) { PlayerInfo[para1][pChar] = 295; }//Где 1 – это ID фракции, а 295 – это ID скина    
else if(level == 2) { PlayerInfo[para1][pChar] = 287; }

Так как мы с вами взяли скин с ID 105 то в конец скинов добавим

Code
else if(level == ID фракции) { PlayerInfo[para1][pChar] = 105; }

Важно! Обязательно посмотри ID последней Фракции!
Например, если у вас последний ID был 11, то нашей банде Grove присваиваем 12 ID
Значит, вы создали скин лидеру, но на этом мы не заканчиваем работать с командой /makeleader
Так же что бы команда не ругалась, исправляем строчку

Code
if(level > Id последней фракции || level < 0)

И вписываем вместо строк “Id последней фракции” ID новой созданной Фракции!
Ту же самую операцию проводим и с PlayerInfo[para1][pTeam] = ID последней фракции;
Наконец то мы сделали скин лидеру! Теперь займемся Чатом Банды:
Ищем if(strcmp(cmd, “/family”, true) == 0 || strcmp(cmd, “/f”, true) == 0)
Видим ниже, что идут Ранги прописываемые людям в чате
Дописываем нашу новую фракцию:

Code
else if(member==ID Фракции)    
{    
if(PlayerInfo[playerid][pRank] == 6) { format(string, sizeof(string), “** Ас %s: %s. )) **”, sendername, result); }    
else if(PlayerInfo[playerid][pRank] == 5) { format(string, sizeof(string), “** Пилот %s: %s. )) **”, sendername, result); }    
else if(PlayerInfo[playerid][pRank] == 4) { format(string, sizeof(string), “** Гонщик %s: %s. )) **”, sendername, result); }    
else if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), “** Штурман %s: %s. )) **”, sendername, result); }    
else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), “** Уверенный %s: %s. )) **”, sendername, result); }    
else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), “** Сопляк %s: %s. )) **”, sendername, result); }    
else { format(string, sizeof(string), “** Новичок %s: %s. )) **”, sendername, result); }    
SendFamilyMessage(PlayerInfo[playerid][pMember], TEAM_AZTECAS_COLOR, string);}

Ну я думаю здесь не надо ничего обьяснять кроме:
Code
else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), “** Сопляк %s: %s. )) **”, sendername, result); }

– это есть условие, Допустим если у игрока Ранг 1, то в чате будет писать Сопляк итд
Чуть ниже так же добавим ранг для Лидера:
Code

else if(leader==ID факции)    
{    
format(string, sizeof(string), “** Крестный отец %s: %s. )) **”, sendername, result);    
SendFamilyMessage(PlayerInfo[playerid][pLeader], TEAM_AZTECAS_COLOR, string);    
}

С чатом мы закончили, перейдем к Оружию!
Ищем public SetPlayerWeapons(playerid)
И ниже добавляем такие строки:

Code
if(PlayerInfo[playerid][pMember] == ID фракции || PlayerInfo[playerid][pLeader] == ID фракции)    
{    
GivePlayerWeapon(playerid, 29, 500); //Mp5    
GivePlayerWeapon(playerid, 24, 50);//deagle    
GivePlayerWeapon(playerid, 4, 1);//knife    
}

где в GivePlayerWeapon(playerid, 29, 500); 29 – это ID Оружия, можно узнать [img]http://wiki.sa-mp.com/wiki/Weapons[/img]здесь, а 500 – количество патронов
Теперь добавим место появления Фракции(Спавн)
ищем public SetPlayerSpawn(playerid)
Ниже добавляем такие строки

Code

if(PlayerInfo[playerid][pMember] == ID фракции || PlayerInfo[playerid][pLeader] == ID фракции)    
{    
SetPlayerToTeamColor(playerid);    
SetPlayerPos(playerid, 325.9258,307.3484,999.1484);    
SetPlayerFacingAngle(playerid, 122.5681);    
SetPlayerInterior(playerid, 5);    
PlayerInfo[playerid][pInt] = 5;    
return 1;    
}

Где SetPlayerToTeamColor(playerid); – Мы делаем человека невидимым на карте
SetPlayerPos(playerid, 325.9258,307.3484,999.1484); – Это коориданты спавна X,Y,Z(Узнать можно через команду /save в игре)
SetPlayerFacingAngle(playerid, 122.5681); – Угол поворота игрока (от 0 до 360)SetPlayerInterior(playerid, 5); и PlayerInfo[playerid][pInt] = 5; – Это ID интерьера(о интерьерах узнаем в других Уроках, если человек должен появляться на улице то ставим 0)

На этом урок окончен- спасибо всем за внимание

Автор: Stepan23
 
  • Страница 1 из 1
  • 1
Поиск: