Chev_chelios | Дата: Воскресенье, 17-Июл-2011, 19:45 | Сообщение # 1 |
Уважаемый человек
Сообщений: 104
Награды: 0
Репутация: 63
Статус:
| Итак сегодня мы будем создавать фракцию!
Итак сразу перейдем к делу:
Для начало создадим скины для фракции, для этого нам понадобяться: 1) ID скинов, можно узнать здесь http://world-of-gta.ru/samp_wiki/index/Category:Skins 2) Допустим создадим банду Grove, их скины: 105,106,107 где 105 позьмем как лидерский
Создаем новую переменную допустим new GrovePed[2][1] = { //Где 3 - это число скинов, а 1 это сколько параметров в скине {106}, {107} //Не забывайте в последнем скине уберать "," };
Мы с вами создали скины для нашей новой фракции Grove
Теперь надо их вставить дял выбора:
Находим if(strcmp(cmd, "/invite", true) == 0)
И видем чуть ниже примерно такие строки: 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 (В стандартном ГФ это Полиция) Для того что бы присвоить нашей новой банде скин последним прописываем следую строчку: else if(PlayerInfo[playerid][pLeader] == ID Новой фракции) { PlayerInfo[para1][pTeam] = ID Новой фракции; ftext = "Grove"; ChosenSkin[para1] = 106; SetPlayerSkin(para1, 106); }
Где 106 - это ID скина участника банды
А так же надо будет поместить наши скины для прокрутки:
Ищем public OnPlayerText(playerid, text[])
Ниже видим примерно такие строки: 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]; } }
И ниже добавляем наши скины:
case ID фракциии: { if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, GrovePed[0][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = GrovePed[0][0]; } else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, GrovePed[1][0]); SelectCharPlace[playerid] = 3; ChosenSkin[playerid] = GrovePed[1][0]; } else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, GrovePed[2][0]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = GrovePed[2][0]; } }
Теперь перейдем к созданию скина для лидера:
1) Найдем в моде такие строки if(strcmp(cmd, "/makeleader", true) == 0)
Эта команда отвечает за присвоения человеку Лидера той или иной фракции
В этой команде видим примерно такие строки: 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 то в конец скинов добавим else if(level == ID фракции) { PlayerInfo[para1][pChar] = 105; }
Важно! Обязательно посматри ID последней Фракции: Например если у вас последний ID был 11, то нашей банде Grove присваиваем 12 ID
Значит вы создали скин лидеру, но на этом мы не заканчиваем работать с командой /makeleader
Так же что бы команда не ругалась, исправляем строчку if(level > Id последней фракции || level < 0)
И вписываем вместо строк "Id последней фракции" ID новой созданной Фракции!
Ту же самую операцию проводим и с PlayerInfo[para1][pTeam] = ID последней фракции;
Наконец то мы сделали скин лидеру! Теперь займемся Чатом Банды:
Ищем if(strcmp(cmd, "/family", true) == 0 || strcmp(cmd, "/f", true) == 0)
Видем ниже что идут Ранги прописываемые людям в чате Дописываем нашу новую фракцию:
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);}
Ну я думаю здесь не надо ничего обьяснять кроме: else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), "** Сопляк %s: %s. )) **", sendername, result); } - это есть условие, Допустим если у игрока Ранг 1, то в чате будет писать Сопляк итд
Чуть ниже так же добавим ранг для Лидера:
else if(leader==ID факции) { format(string, sizeof(string), "** Крестный отец %s: %s. )) **", sendername, result); SendFamilyMessage(PlayerInfo[playerid][pLeader], TEAM_AZTECAS_COLOR, string);}
С чатом мы закончили, перейдем к Оружию!
Ищем public SetPlayerWeapons(playerid)
И ниже добовляем такие строки: 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 Оружия, можно узнать здесь http://world-of-gta.ru/samp_wiki/index/Weapons, а 500 - количество патронов
Теперь добавим место появления Фракции(Спавн)
ищем public SetPlayerSpawn(playerid)
Ниже добавляем такие строки
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)
На этом всё
P.S Не забываем про ))
|
|
| |