Sanek_Matvienko
Компетентный
Всем привет!
Сегодня я выложу систему лидерки из моего мода.
Пожалуй начнем.
Идем в pInfo
Далее идем в LoginCallback(playerid, password[]) у вас это возможно просто OnPlayerLogin.
Теперь переходим в SavePlayer, опять же, у вас она может называться по другому.
Там же должна быть строчка, что-то типа этого:
Сюда тоже добавляем, и получается примерно как у меня:
Далее идем в public OnPlayerSpawn(playerid)
Если игрок не лидер, он спавнится на бомжатнике
Теперь идем в конец мода, и туда:
И туда же:
Опять же идет в OnPlayerSpawn
В конец мода:
Вроде как все 
Если есть какие либо вопросы, или ошибки, пишите в скайп: vadim.kostashhuk
Сегодня я выложу систему лидерки из моего мода.
Пожалуй начнем.
Идем в pInfo
PHP:
pSetLeader,
pMember,
pRang
PHP:
PlayerInfo[playerid][pSetLeader] = cache_get_field_content_int(0,"setleader");
PlayerInfo[playerid][pMember] = cache_get_field_content_int(0,"member");
PlayerInfo[playerid][pRang] = cache_get_field_content_int(0,"rang");
PHP:
PlayerInfo[playerid][pSetLeader],
PlayerInfo[playerid][pMember],
PlayerInfo[playerid][pRang],
Код:
mysql_format(CHDL,query,512,"UPDATE `"TABLE_ACCOUNT"` SET `level`='%d',`sex`='%d',`model`='%d' WHERE `Name`='%s'",
HTML:
mysql_format(CHDL,query,512,"UPDATE `"TABLE_ACCOUNT"` SET `level`='%d',`sex`='%d',`model`='%d',`setleader`='%d',`member`='%d',`rang`='%d' WHERE `Name`='%s'",
PHP:
if(PlayerInfo[playerid][pSetLeader] == 0 || PlayerInfo[playerid][pMember] == 0)
{
if(PlayerInfo[playerid][pLevel] >= 1 && PlayerInfo[playerid][pLevel] < 3)
{
SetPlayerPos(playerid,1760.7921,-1900.1312,13.5636);
SetPlayerFacingAngle(playerid,270.02);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return true;
}
}
Теперь идем в конец мода, и туда:
PHP:
CMD:r(playerid,params[])
{
if(sscanf(params, "s[84]", params[0])) return SendClientMessage(playerid, -1, "Комманда была использована не верно. Пишите: /r [text]");
new string[145];
switch(PlayerInfo[playerid][pMember])
{
case 1:
{
switch(PlayerInfo[playerid][pRang])
{
case 10: format(string, sizeof(string),"[R] Шериф %s: %s", GN(playerid),params[0]);
case 9: format(string, sizeof(string),"[R] Полковник %s: %s", GN(playerid),params[0]);
case 8: format(string, sizeof(string),"[R] Подполковник %s: %s", GN(playerid),params[0]);
case 7: format(string, sizeof(string),"[R] Майор %s: %s", GN(playerid),params[0]);
case 6: format(string, sizeof(string),"[R] Лейтенант %s: %s", GN(playerid),params[0]);
case 5: format(string, sizeof(string),"[R] Мл.Лейтенант %s: %s", GN(playerid),params[0]);
case 4: format(string, sizeof(string),"[R] Офицер %s: %s", GN(playerid),params[0]);
case 3: format(string, sizeof(string),"[R] Прапорщик %s: %s", GN(playerid),params[0]);
case 2: format(string, sizeof(string),"[R] Сержант %s: %s", GN(playerid),params[0]);
case 1: format(string, sizeof(string),"[R] Кадет %s: %s", GN(playerid),params[0]);
}
}
default: SendClientMessage(playerid, -1, "{ff0000}[X]{FFFFFF} Вам не доступна данная команда");
}
SendRadioMessage(PlayerInfo[playerid][pMember], COLOR_BLUE, string);
return true;
}
PHP:
CMD:setleader(playerid, params[])
{
if(sscanf(params, "ud", params[0], params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Комманда была использована не верно. Пишите: /setleader [id] [№ раздела]"); }
static fracname[100], string[150];
{
if(PlayerInfo[playerid][pSex] == 1)
{
if(params[1] == 1) fracname = "Los Santos Police Deportament", Player[params[0]][pModel] = 288;
}
else
{
if(params[1] == 1) fracname = "Los Santos Police Deportament", Player[params[0]][pModel] = 219;
}
}
format(string, sizeof(string), "{FFFF00}Вы назначили %s руководить организацией \"%s\"", PlayerName(playerid), fracname);
SendClientMessage(playerid, COLOR_ORANGE, string);
format(string, sizeof(string), "{FFFF00}Администратор %s назначил вас руководить организацией \"%s\"", Player[playerid][pSendername], fracname);
SendClientMessage(params[0], COLOR_ORANGE, string);
PlayerInfo[params[0]][pSetLeader] = params[1];
PlayerInfo[params[0]][pMember] = params[1];
PlayerInfo[params[0]][pRang] = 10;
SetPlayerToTeamColor(params[0]);
SetPlayerSkin(params[0], PlayerInfo[params[0]][pModel]);
mysql_format(CHDL,query, 512,"UPDATE `"TABLE_ACCOUNT"` SET `setleader`='%d',`model`='%d',`member`='%d',`rang`='%d' WHERE `Name` = '%s'", PlayerInfo[params[0]][pSetLeader], PlayerInfo[params[0]][pModel], PlayerInfo[params[0]][pMember], PlayerInfo[params[0]][pRang], PlayerName(params[0]));
mysql_function_query(CHDL, query, false, "","d", params[0]);
return true;
}
PHP:
if(PlayerInfo[playerid][pSetLeader] == 1 || PlayerInfo[playerid][pMember] == 1)
{
SetPlayerPos(playerid, 2496.1079,-1709.6730,1014.7422);
SetPlayerInterior(playerid, 3);
SetPlayerVirtualWorld(playerid, 1);
SetPlayerFacingAngle(playerid, 0);
SetCameraBehindPlayer(playerid);
SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
}
PHP:
stock GN(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
stock SendRadioMessage(fracion, color, string[])
{
foreach(Player,i)
{
switch(PlayerInfo[i][pMember])
{
case 1:
{
if(PlayerInfo[i][pMember] == fracion || PlayerInfo[i][pSetLeader] == fracion)
{
SendClientMessage(i, color, string);
}
}
}
}
return true;
}
CMD:invite(playerid,params[])
{
if(sscanf(params, "ud", params[0])) return SendClientMessage(playerid, -1, "Используйте: /invite [playerid]");
if(PlayerInfo[playerid][pSetLeader] == 0) return SendClientMessage(playerid,-1,"Вы не лидер организации");
if(PlayerInfo[params[0]][pMember] != 0) return SendClientMessage(playerid,-1,"Игрок уже состоит в организации");
PlayerInfo[params[0]][pMember] = PlayerInfo[playerid][pMember];
new string[145];
switch(PlayerInfo[params[0]][pMember])
{
case 1:
{
if(PlayerInfo[params[0]][pSex] == 1)
{
PlayerInfo[params[0]][pModel] = 265;
}
else PlayerInfo[params[0]][pModel] = 219;
PlayerInfo[params[0]][pRang] = 1;
format(string, sizeof(string),"Вас приняли в организацию Los Santos Police Deportament. Лидер организации %s.", GN(playerid));SendClientMessage(params[0],COLOR_SERVER,string);
format(string, sizeof(string),"Вы приняли %s в свою организацию.", GN(params[0]));SendClientMessage(playerid,COLOR_SERVER,string);
}
}
return true;
}
CMD:uninvite(playerid,params[])
{
if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, -1, "Используйте: /uninvite [playerid]");
if(PlayerInfo[playerid][pSetLeader] == 0) return SendClientMessage(playerid,-1,"Вы не лидер организации");
if(params[0] == playerid) return SendClientMessage(playerid,-1,"Вы не можете уволить самого себя");
if(PlayerInfo[params[0]][pMember] != PlayerInfo[playerid][pMember]) return SendClientMessage(playerid,-1,"Игрок не состоит в вашей организации");
PlayerInfo[params[0]][pMember] = 0;
PlayerInfo[params[0]][pSetLeader] = 0;
PlayerInfo[params[0]][pRang] = 0;
PlayerInfo[params[0]][pModel] = 0;
new string[145];
SendClientMessage(params[0],COLOR_SERVER,"Вы были уволены из организации.");
format(string, sizeof(string),"Вы уволили %s из своей организации.", GN(params[0]));SendClientMessage(playerid,COLOR_YELLLOW,string);
return true;
}
Если есть какие либо вопросы, или ошибки, пишите в скайп: vadim.kostashhuk
Последнее редактирование:
