$continue$ (21.01.2016) BadPawn (21.01.2016)
Поздравляю, своей попыткой перевести стрелки вы только что признали, что вы пустослов и к вашему "экспертному мнению" не следует прислушиваться.
Медленнее, но оптимизация будет иметь смысл только при написании наиболее критичного ко времени выполнения кода (например, в OnPlayerUpdate, в таймерах с перебором всех игроков или в командах).
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Спасибо , можешь расписать что за что отвечает
PHP код:
if (SelectCharPlace[playerid] == 1) { // Ну эт я понял скок всего скинов от 1 до 8
SelectCharPlace[playerid] = 8; // Ну эт я понял скок всего скинов от 1 до 8
} else {
SelectCharPlace[playerid]--; // За что отвечает ?
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0]; // За что отвечает ?
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
Для начала нужно сделать по очереди скины в JoinPed по фракциям
к примеру:
По скольку женских скинов мало, то чередуй их или если 1 то ставь везде 1PHP код:
static const JoinPed[][] = {
{скин лспд м,скин лспд ж},//0
{скин лспд м,скин лспд ж},//1
{скин лспд м,скин лспд ж},//2
{скин лспд м,скин лспд ж},//3
{скин лспд м,скин лспд ж},//4
{скин лспд м,скин лспд ж},//5
{скин лспд м,скин лспд ж},//6
{скин лспд м,скин лспд ж},//7
{скин fbi м,скин fbi ж}, //8
{скин fbi м,скин fbi ж}, //9
{скин fbi м,скин fbi ж}, //10
{скин fbi м,скин fbi ж}, //11
{скин fbi м,скин fbi ж}, //12
{скин fbi м,скин fbi ж}, //13
{скин Army SF м,скин Army SF ж}, //14
{скин Army SF м,скин Army SF ж}, //15
{скин Army SF м,скин Army SF ж}, //16
{скин Medics SF м,скин Medics SF ж}, //16
.....
};
Да кстати если мне не кажется то JoinPed[SelectCharPlace[playerid]][0] 0 отвечат за М / Ж .. т.е можешь сделать так что бы переменная пола М равнялась 0, а переменная пола Ж равнялась 1
Пример
PHP код:
new bool:Player_Sex[MAX_PLAYERS];
Player_Sex[playerid] = true; // женщина
Player_Sex[playerid] = false; // мужик
Примерно так, думаю понятно объяснил далее сможешь сам.PHP код:
if(clickedid == SkinRabLeft) // <<
{
SelectCharPlace[playerid]--;
switch (SelectCharID[playerid])
{
case 1:if (SelectCharPlace[playerid] < 0) SelectCharPlace[playerid] = 7; // LSPD 0 начало скинов 7 конец
case 2:if (SelectCharPlace[playerid] < 8) SelectCharPlace[playerid] = 13; // FBI 8 начало скинов фбр // 13 конец
case 3:if (SelectCharPlace[playerid] < 14) SelectCharPlace[playerid] = 16; // ARMY SF 14 начало скинов армии // 16 конец
}
SetPlayerSkin(playerid, JoinPed[SelectCharPlace[playerid]][Player_Sex[playerid]]);
SetPVarInt(playerid,"InviteSkin",JoinPed[SelectCharPlace[playerid]][Player_Sex[playerid]]);
}
if(clickedid == SkinRabRight) // >>
{
SelectCharPlace[playerid]++;
switch (SelectCharID[playerid])
{
case 1:if (SelectCharPlace[playerid] > 7) SelectCharPlace[playerid] = 0; // LSPD 0 начало скинов 7 конец
case 2:if (SelectCharPlace[playerid] > 13) SelectCharPlace[playerid] = 8; // FBI 8 начало скинов фбр // 13 конец
case 3:if (SelectCharPlace[playerid] > 16) SelectCharPlace[playerid] = 14; // ARMY SF 14 начало скинов армии // 16 конец
}
SetPlayerSkin(playerid, JoinPed[SelectCharPlace[playerid]][Player_Sex[playerid]]);
SetPVarInt(playerid,"InviteSkin",JoinPed[SelectCharPlace[playerid]][Player_Sex[playerid]]);
}
Вот по 1 способу как напсиали сделал и у меня получается везде скины токо 1 фраки lspd
PHP код:
case 1: // LSPD
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 8;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 2: // FBI
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 6;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
я всё переделал по твоему коду и изменил кол скинов
а скины все 1PHP код:
if(clickedid == SkinRabLeft)
{
switch (SelectCharID[playerid])
{
case 1: // LSPD
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 8;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 2: // FBI
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 6;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 3: // Army SF
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 3;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 4: // Medics SF
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 5;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 5: // La Cosa Nostra
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 6;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 6: // Yakuza
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 6;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 7: // Goverment
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 5;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 8: // Casino Caligula
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 3;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 10: // SFPD
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 8;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 11: // Instructors
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 5;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 12: // Ballas
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 4;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 13: // Vagos
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 4;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 14: // Russian Mafia
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 6;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 15: // Grove
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 8;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 16: // SA News
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 4;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 17: // Aztek
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 5;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 18: // Rifa
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 6;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 19: // Army LV
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 3;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 21: // LVPD
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 8;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
case 22: // Õèòìàíû
{
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 4;
} else {
SelectCharPlace[playerid]--;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
}
}
Зачем ты пытаешься делать по методу ziggi если у тебя скины в JoinPed в разброс стоят, естественно ничего не выйдет
да и к тому же, что ты сделал?
У тебя при первой проверки SekectCharPlace будет равняться 8 и все ничего более делаться не будет.PHP код:
if (SelectCharPlace[playerid] == 1) {
SelectCharPlace[playerid] = 8;
} else {
SelectCharPlace[playerid]--;
}
Не ленись перепиши JoinPed по порядку по фракциям и будет тебе оптимизация на уровне.
Не знаешь где узнать скин ид для проверки?
https://wiki.sa-mp.com/wiki/Skins:All
#EDIT#
либо создай новую переменную для скинов фракции
и делай по моему примеруPHP код:
static const JoinFped[][] = {...
};
Последний раз редактировалось seriu; 21.01.2016 в 14:09.
ALIT13 (21.01.2016)
Сделал по образцу фракций 6 идёт всё правильно потом скины берутся из -1 назад примеру мент , потом баллас , баллас 1 скин потом менты идут
PHP код:
if(clickedid == SkinRabLeft)
{
SelectCharPlace[playerid]--;
switch (SelectCharID[playerid])
{
case 1:if (SelectCharPlace[playerid] < 1) SelectCharPlace[playerid] = 8;
case 2:if (SelectCharPlace[playerid] < 9) SelectCharPlace[playerid] = 14;
case 3:if (SelectCharPlace[playerid] < 15) SelectCharPlace[playerid] = 16;
case 4:if (SelectCharPlace[playerid] < 17) SelectCharPlace[playerid] = 21;
case 5:if (SelectCharPlace[playerid] < 22) SelectCharPlace[playerid] = 25;
case 6:if (SelectCharPlace[playerid] < 26) SelectCharPlace[playerid] = 29;
case 7:if (SelectCharPlace[playerid] < 30) SelectCharPlace[playerid] = 34;
case 8:if (SelectCharPlace[playerid] < 35) SelectCharPlace[playerid] = 42;
case 9:if (SelectCharPlace[playerid] < 43) SelectCharPlace[playerid] = 46;
case 10:if (SelectCharPlace[playerid] < 47) SelectCharPlace[playerid] = 48;
case 11:if (SelectCharPlace[playerid] < 49) SelectCharPlace[playerid] = 52;
case 12:if (SelectCharPlace[playerid] < 53) SelectCharPlace[playerid] = 60;
case 13:if (SelectCharPlace[playerid] < 61) SelectCharPlace[playerid] = 65;
case 14:if (SelectCharPlace[playerid] < 66) SelectCharPlace[playerid] = 71;
case 15:if (SelectCharPlace[playerid] < 72) SelectCharPlace[playerid] = 74;
case 16:if (SelectCharPlace[playerid] < 75) SelectCharPlace[playerid] = 77;
case 17:if (SelectCharPlace[playerid] < 78) SelectCharPlace[playerid] = 80;
case 18:if (SelectCharPlace[playerid] < 81) SelectCharPlace[playerid] = 82;
case 19:if (SelectCharPlace[playerid] < 83) SelectCharPlace[playerid] = 84;
case 20:if (SelectCharPlace[playerid] < 85) SelectCharPlace[playerid] = 88;
case 21:if (SelectCharPlace[playerid] < 89) SelectCharPlace[playerid] = 104;
case 22:if (SelectCharPlace[playerid] < 105) SelectCharPlace[playerid] = 109;
}
new skinid = JoinPed[ SelectCharPlace[playerid] - 1 ][0];
SetPlayerSkin(playerid, skinid);
SetPVarInt(playerid,"InviteSkin", skinid);
}
PHP код:
static const JoinPed[110][1] =
{
{280},//LSPD1
{281},//LSPD2
{282},//LSPD3
{283},//LSPD4
{284},//LSPD5
{285},//LSPD6
{288},//LSPD7
{76},//LSPD8
//============
{286},//FBI1
{163},//FBI2
{164},//FBI3
{165},//FBI4
{166},//FBI5
{141},//FBI6
//============
{287},//ArmySF1
{191},//ArmySF2
//============
{70},//Mediks1
{274},//Mediks2
{275},//Mediks3
{276},//Mediks4
{219},//Mediks5
//============
{223},//LCN1
{124},//LCN2
{113},//LCN3
{214},//LCN4
//============
{120},//YAKUZA1
{123},//YAKUZA3
{169},//YAKUZA2
{186},//YAKUZA4
//============
{57},//Goverment1
{150},//Goverment2
{98},//Goverment3
{187},//Goverment4
{147},//Goverment5
//============
{280},//SFPD1
{281},//SFPD2
{282},//SFPD3
{283},//SFPD4
{284},//SFPD5
{285},//SFPD6
{288},//SFPD7
{76},//SFPD8
//===========
{250},//SFNEWS1
{261},//SFNEWS2
{211},//SFNEWS3
{217},//SFNEWS4
//===========
{171},//Casino1
{11},//Casino2
//===========
{59},//Instructors1
{172},//Instructors2
{189},//Instructors3
{240},//Instructors4
//==========
{280},//LVPD1
{281},//LVPD2
{282},//LVPD3
{283},//LVPD4
{284},//LVPD5
{285},//LVPD6
{288},//LVPD7
{76},//LVPD8
//==========
{112},//RussianMafia1
{111},//RussianMafia2
{125},//RussianMafia4
{272},//RussianMafia3
{214},//RussianMafia5
//==========
{105},//GROOVE1
{106},//GROOVE2
{107},//GROOVE3
{269},//GROOVE4
{270},//GROOVE5
{271},//GROOVE6
//==========
{114},//Aztecas1
{115},//Aztecas2
{116},//Aztecas3
//==========
{102},//BALLAS1
{103},//BALLAS2
{104},//BALLAS3
//==========
{173},//RIFA1
{174},//RIFA2
{175},//RIFA3
//==========
{108},//VAGOS1
{109},//VAGOS2
{110},//VAGOS3
//==========
{287},//ArmyLV1
{191},//ArmyLV2
//==========
{250},//LSNEWS1
{261},//LSNEWS2
{211},//LSNEWS3
{217},//LSNEWS4
//==========
{287},//PED1
{287},//PED2
{191},//PED3
{287},//PED4
{287},//PED5
{191},//PED6
{287},//PED7
{200},//PED8
{230},//PED9
{137},//PED10
{212},//PED11
{79},//PED12
{78},//PED13
{96},//PED14
{90},//PED15
{55},//PED16
//==========
{247},//Bikers1
{248},//Bikers2
{254},//Bikers3
{298},//Bikers4
{201}//Bikers5
};
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)