Zheka_Cheshev
Компетентный
Всем привет, вот решил выложить нормальную систему выбора скина при регистрации, делал для своего мода, решил выложить т.к забросил свой проэкт.
и так начнём!
шаг 1.
ко всем new:
BomjPed - скины мужчин бомжей in's можете заменить на свои
если добовляете то в new BomjPed[9][0],[9] прибавить столько сколько добавили скинов
например:
BomjPedMale - женские скины in's можете заменить на свои
шаг 2.
в PlayerInfo :
в public OnPlayerRegister и в OnPlayerSave(ваш паблик сохранения) :
в public OnPlayerRegister :
в public OnPlayerLogin :
шаг 3.
в OnPlayerSpawn или SetPlayerSpawn(у кого как) :
в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) :
шаг 4.
в public OnPlayerSelectedMenuRow(playerid, row) :
в public OnGameModeInit :
в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) :
Автор системы:Zheka_Cheshev
за основу брал магазин одежды от Barni
если понравилось от +сиков не откажусь!
будут ошибки пишите помогу исправить!
и так начнём!
шаг 1.
ко всем new:
PHP:
new ChosenSkin[MAX_PLAYERS];
new TutTime[MAX_PLAYERS];
new gOoc[MAX_PLAYERS];
new gFam[MAX_PLAYERS];
new gLogin[MAX_PLAYERS];
new Float:gInviteSpawns[0][4] = {
{222.3489,-8.5845,1002.2109,266.7302}
};
new Menu:Bomj;
new BomjPed[9][0] = {
{26},
{25},
{35},
{36},
{50},
{96},
{143},
{262},
{2}
};
new BomjPedMale[5][0] = {
{12},
{55},
{69},
{90},
{93}
};
если добовляете то в new BomjPed[9][0],[9] прибавить столько сколько добавили скинов
например:
PHP:
new BomjPed[10][0] = {
{26},
{25},
{35},
{36},
{50},
{96},
{143},
{262},
{2},
{77}
};
шаг 2.
в PlayerInfo :
PHP:
pRega
PHP:
ini_setInteger(iniFile, "Rega", PlayerInfo[playerid][pRega]);
PHP:
PlayerInfo[playerid][pRega] = 0;
PHP:
ini_getInteger(iniFile, "Rega", PlayerInfo[playerid][pRega]);
в OnPlayerSpawn или SetPlayerSpawn(у кого как) :
PHP:
if(PlayerInfo[playerid][pRega] == 0)
{
SetPlayerInterior(playerid,0);
SetPlayerHealthAC(playerid, 100);
SetPlayerPos(playerid,222.3489,-8.5845,1002.2109);
SetPlayerFacingAngle(playerid, 266.7302);
PlayerInfo[playerid][pHealth] =100;
SetPlayerCameraPos(playerid,-932.2150,573.0827,44.0786);
SetPlayerCameraLookAt(playerid,-1856.5886,875.8010,198.8736);
ShowPlayerDialog(playerid,15,DIALOG_STYLE_MSGBOX," Ваш пол ","Какого пола будет Ваш персонаж:\n","Мужчина","Женщина");
TogglePlayerControllable(playerid, 0);
return 1;
}
PHP:
if(dialogid == 15)//------------------------------------ [ Мужчина ] -------------------------------------------------//
{
if(response)
{
new rand = random(sizeof(gInviteSpawns));
SetPlayerPos(playerid, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
SetPlayerFacingAngle(playerid, gInviteSpawns[rand][3]);
SetPlayerCameraPos(playerid,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
SetPlayerCameraLookAt(playerid,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
PlayerInfo[playerid][pSex] = 0;//Парень
PlayerInfo[playerid][pMember] = 0;
PlayerInfo[playerid][pLeader] = 0;
PlayerInfo[playerid][pRank] = 0;
SetPlayerInterior(playerid,5);
ShowMenuForPlayer(Bomj,playerid);
ChosenSkin[playerid] = 230;
TutTime[playerid] = 0;
gOoc[playerid] = 0; gFam[playerid] = 0; gLogin[playerid] = 0;
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid, COLOR_WHITE, "Используйте клавишу 'Быстрый бег'");
SendClientMessage(playerid, COLOR_WHITE, "Используйте клавишу 'Вверх,вниз'");
SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
SelectChar[playerid] = 255;
SelectCharPlace[playerid] = 1;
PlayerInfo[playerid][pSkin] = ChosenSkin[playerid];
new skin =2 + random(100);
SetPlayerVirtualWorld(playerid,skin);
OnPlayerSave(playerid);//заменяем на паблик сохранения
return 1;
}
else//------------------------------------ [ Девушка] -------------------------------------------------
{
new rand = random(sizeof(gInviteSpawns));
SetPlayerPos(playerid, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]); // Warp the player
SetPlayerFacingAngle(playerid, gInviteSpawns[rand][3]);
SetPlayerCameraPos(playerid,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
SetPlayerCameraLookAt(playerid,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
PlayerInfo[playerid][pSex] = 1;
PlayerInfo[playerid][pMember] = 0;
PlayerInfo[playerid][pLeader] = 0;
PlayerInfo[playerid][pRank] = 0;
ChosenSkin[playerid] = 90;
SetPlayerInterior(playerid,5);
ShowMenuForPlayer(Bomj,playerid);
TutTime[playerid] = 0;
gOoc[playerid] = 0; gFam[playerid] = 0; gLogin[playerid] = 0;
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid, COLOR_WHITE, "Используйте клавишу 'Быстрый бег'");
SendClientMessage(playerid, COLOR_WHITE, "Используйте клавишу 'Вверх,вниз'");
SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
SelectChar[playerid] = 255;
SelectCharPlace[playerid] = 1;
PlayerInfo[playerid][pSkin] = ChosenSkin[playerid];
new skin =2 + random(100);
SetPlayerVirtualWorld(playerid,skin);
OnPlayerSave(playerid);//заменяем на паблик сохранения
return 1;
}
}
в public OnPlayerSelectedMenuRow(playerid, row) :
PHP:
if(Current == Bomj)
{
switch(row)
{
case 0:// при нажатии на Next
{
if(PlayerInfo[playerid][pSex] == 0)//Если игрока мужик то..
{
ChangeSkin[playerid]++;//Увелчиваем переменную..
if(ChangeSkin[playerid] >= 9)//Если переменная равна ил более 6 то..
{
ChangeSkin[playerid] = 0;//Обнуляем её.. т.е. переходим к скину 0
}
SetPlayerSkin(playerid,BomjPed[ChangeSkin[playerid]][0]);//Меняем игроку скин на тот каторый он выбрал
}
if(PlayerInfo[playerid][pSex] == 1)//Если игрока мужчина то
{
ChangeSkin[playerid]++;//увеличиваем переменную
if(ChangeSkin[playerid] >= 5)//Если переменная равна или больше 5 то
{
ChangeSkin[playerid] = 0;//Обнуляем её т.е. переходим к скину 0
}
SetPlayerSkin(playerid,BomjPedMale[ChangeSkin[playerid]][0]);//Меняем её скин на выбраный
}
ShowMenuForPlayer(Bomj, playerid);//показываем игроку меню
}
case 1://Если нажал на кнопку Назад
{
if(PlayerInfo[playerid][pSex] == 0)//Если игрока мужчина то:
{
ChangeSkin[playerid]--;//Увелчиваем переменную
if(ChangeSkin[playerid] <= 0)//Если переменная равна ил больше 6 то:
{
ChangeSkin[playerid] = 9;//Обнуляем её.. т.е. переходим к скину 0
ShowMenuForPlayer(Bomj, playerid);//Показываем меню игроку
}
SetPlayerSkin(playerid,BomjPed[ChangeSkin[playerid]][0]);//Меняем игроку скин на тот каторый он выбрал
}
if(PlayerInfo[playerid][pSex] == 1)//Если игрока мужик то..
{
ChangeSkin[playerid]--;//велчиваем переменную
if(ChangeSkin[playerid] <= 0)//Если переменная равна или более 5 то
{
ChangeSkin[playerid] = 5;//Обнуляем её т.е. переходим к скину 0
ShowMenuForPlayer(Bomj, playerid);//Показываем меню игроку
}
SetPlayerSkin(playerid,BomjPedMale[ChangeSkin[playerid]][0]);//Меняем её скин на выбранный
}
ShowMenuForPlayer(Bomj, playerid);//Показываем меню игроку
}
case 2://Если игрока нажал на кнопку << Back
{
if(PlayerInfo[playerid][pSex] == 0)//Если он мужчина то:
{
PlayerInfo[playerid][pSkin] = GetPlayerSkin(playerid);//Узнаём его скин и записываем в акаунт
SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);//Меняем ему скин на тот каторый он выбрал
TogglePlayerControllable(playerid, 1);//Размораживаем его
SetCameraBehindPlayer(playerid);//Ставим нормально камеру
SetPlayerPos(playerid,221.7944,-8.4229,1002.2109);//Меняем позицию
SetPlayerFacingAngle(playerid,273.5792);//Меняем поворот головы
SetPlayerInterior(playerid,5);//Даём 5 интерьер
OnPlayerSave(playerid);//заменяем на паблик сохранения
PlayerInfo[playerid][pRega] = 1;
}
if(PlayerInfo[playerid][pSex] == 1)//Если игрока девушка то :
{
PlayerInfo[playerid][pSkin] = GetPlayerSkin(playerid);//Узнаём её скин и записваем в акаунт
SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);//Меняем ей скин каторый она выбрала
TogglePlayerControllable(playerid, 1);//Размораживаем
SetCameraBehindPlayer(playerid);//Ставим камеру нормально
SetPlayerPos(playerid,221.7944,-8.4229,1002.2109);//Меняем позицию
SetPlayerFacingAngle(playerid,273.5792);//Меняем поворт головы
SetPlayerInterior(playerid,5);//Даём 5 интерьер
OnPlayerSave(playerid);//заменяем на паблик сохранения
PlayerInfo[playerid][pRega] = 1;
}
}
}
}
PHP:
Bomj = CreateMenu("Victim", 1, 50.0, 160.0, 90.0);
AddMenuItem(Bomj ,0,">> Next");
AddMenuItem(Bomj ,0,"<< Back");
AddMenuItem(Bomj ,0,"Save");
PHP:
if(newkeys == 16)
{
if(PlayerInfo[playerid][pRega] == 0)
{
ShowMenuForPlayer(Bomj,playerid);
}
}
за основу брал магазин одежды от Barni
если понравилось от +сиков не откажусь!
будут ошибки пишите помогу исправить!
