Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Полноценная сис-ма очков

Статус
В этой теме нельзя размещать новые ответы.

Joker

Умник
Доброго времени суток! Сегодня я расскажу как сделать систему очков.

1)Для начала занесём в аккаунт переменную очков
В
PHP:
enum pInfo
вставить
PHP:
pOch,
2)Обнуляем очки при коннекте игрока
В
PHP:
public OnPlayerConnect(playerid)
вставляем
PHP:
PlayerInfo[playerid][pOch] = 0;
3)В
PHP:
OnPlayerRegister(playerid, password[])
вставляем
PHP:
format(var, 32, "Och=%d\n",PlayerInfo[playerid][pOch]);fwrite(hFile, var);
4)В OnPlayerUpdate или в вашу функцию обновления вставляем
PHP:
format(var, 32, "Och=%d\n",PlayerInfo[playerid][pOch]);fwrite(hFile, var);
5)В
PHP:
OnPlayerLogin(playerid,password[])
вставляем
PHP:
if( strcmp( key , "Och" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pOch] = strval( val ); }
6)Теперь сделаем саму команду очков
В
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;
	}
	}
7)Теперь сделаем команду покупки очков
В вашу /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;
			}
Собственно, всё! Если будут вопросы, задавайте их в этой теме, разберёмся! :)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу