Joker
Умник
Доброго времени суток! Сегодня я расскажу как сделать систему очков.
1)Для начала занесём в аккаунт переменную очков
В
вставить
2)Обнуляем очки при коннекте игрока
В
вставляем
3)В
вставляем
4)В OnPlayerUpdate или в вашу функцию обновления вставляем
5)В
вставляем
6)Теперь сделаем саму команду очков
В
7)Теперь сделаем команду покупки очков
В вашу /buy или в команду покупок в 24/7 (у меня всё в диалоге, поэтому покажу на примере диалога)
Собственно, всё! Если будут вопросы, задавайте их в этой теме, разберёмся! 
1)Для начала занесём в аккаунт переменную очков
В
PHP:
enum pInfo
PHP:
pOch,
В
PHP:
public OnPlayerConnect(playerid)
PHP:
PlayerInfo[playerid][pOch] = 0;
PHP:
OnPlayerRegister(playerid, password[])
PHP:
format(var, 32, "Och=%d\n",PlayerInfo[playerid][pOch]);fwrite(hFile, var);
PHP:
format(var, 32, "Och=%d\n",PlayerInfo[playerid][pOch]);fwrite(hFile, var);
PHP:
OnPlayerLogin(playerid,password[])
PHP:
if( strcmp( key , "Och" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pOch] = strval( val ); }
В
PHP:
public OnPlayerCommandText(playerid, cmdtext[])
PHP:
if(strcmp(cmd, "Ваша команда", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pOch] ==1)
{
if(GetPVarInt(playerid, "Och") == 0)
{
SetPlayerAttachedObject(playerid,2, 19033, 2, 0.1, 0.03, 0.0, 0.0, 90.0, 90.0);
format(string, sizeof(string),"%s одел очки", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE);
printf("%s", string);
SetPVarInt(playerid, "Och",1);
}
else if(GetPVarInt(playerid, "Och")==1)
{
RemovePlayerAttachedObject(playerid, 2);
format(string, sizeof(string),"%s снял очки", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE);
printf("%s", string);
SetPVarInt(playerid, "Och",0);
}
else
{
SendClientMessage(playerid,COLOR_GREY,"У вас нет очков");
}
}
return true;
}
}
В вашу /buy или в команду покупок в 24/7 (у меня всё в диалоге, поэтому покажу на примере диалога)
PHP:
if(listitem == ваш порядковый id)
{
if(GetPlayerMoney(playerid) < 300) {SendClientMessage(playerid, COLOR_WHITE, "Не хватает денег!"); return true;}
if(PlayerInfo[playerid][pTraderPerk] > 0)
{
new skill = 5 / 100;
new price = (skill)*(PlayerInfo[playerid][pTraderPerk]);
new payout = 300 - price;
PlayerInfo[playerid][pCash] -= payout;
}
else
{
GivePlayerMoney(playerid, -300);
}
BizzInfo[6][sbKazna] += 300;
PlayerInfo[playerid][pOch] = 1;
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
SendClientMessage(playerid, COLOR_GRAD4,"Вы купили очки (/och)");
return true;
}
