Приветствую Вас, Гость! Регистрация RSS
Вторник, 17.06.2025
[ Главная страница · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Архив - только для чтения
Урок 3. LVL,EXP, PayDay и первая комманда...
po61Дата: Пятница, 28.09.2012, 12:45 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 9

И так, после небольшого перерыва, я готов написать статью о системе PayDay и LVL...
Первым делом мы должны добавить две переменные в
Code
pInfo

Code
pLvl,
и
Code
pExp,
...
После идем в new ( Если нету, то надо после pInfo создать... )
Пишем
Code
new lvl;
new exp = PlayerInfo[i][pExp];
new expup = 12;


Далее идем в конец мода, и добовляем стоки

Code
stock PayDay()
{
      new string[128];
      new sendername[MAX_PLAYER_NAME];
      for(new i=0;i<MaxPlayers;i++)
      {   if(exp == expup)
        {
         PlayerInfo[i][pLvl] += 1;
         PlayerInfo[i][pExp] = 0;
        }
                   }
return true;
}

stock OnPlayerUpdateRL(playerid)
{
    if(IsPlayerConnected(playerid))
    {
     if(gPlayerLogged[playerid] == true)
     {
      new string3[39];
      new playername3[MAX_PLAYER_NAME];
      GetPlayerName(playerid, playername3, sizeof(playername3));
      format(string3, sizeof(string3), "acc/%s.ini", playername3);
      new File = ini_openFile(string3);
      if(!File)
      {
      ini_setString(iniFile,"Pass",Player[playerid][pPass]);
      }}}return true;}


Далее идем в паблик
Code
public OnGameModeInit()

и после
Code
SetGameModeText("Blank Script");

Добавляем
Code
SetTimer("Obnov",1000,1);
  new tmphour, tmpminute, tmpsecond;
  gettime(tmphour, tmpminute, tmpsecond);
  FixHour(tmphour);
  tmphour = shifthour;
  ghour = tmphour;
  SetWorldTime(tmphour);

и далее в конец мода добавляем
Code

forward Obnov();
public Obnov()
{
      for(new i=0;i<MaxPlayers;i++)
      {
                   gettime(tmphour, tmpminute, tmpsecond);
      FixHour(tmphour);
      tmphour = shifthour;
      if ((tmphour > ghour) || (tmphour == 0 && ghour == 23))
      {
       format(string, sizeof(string), "Сейчас времени%d:00 Минут",tmphour);
       BroadCast(COLOR_WHITE,string);
       ghour = tmphour;
       PayDay();
       for(new i=0;i<MaxPlayers;i++)
       if (realtime){SetWorldTime(tmphour);}
      }
                   }
}

Теперь опять идем в конец мода, и добавляем сток
Code
stock ScoreUpdate()
{
      new LevScore;
      for(new i=0;i<MaxPlayers;i++)
      {
       LevScore = PlayerInfo[i][pLevel];
       SetPlayerScore(i, LevScore);
      }
      return true;
}


Теперь идем в паблик
Code
public OnPlayerConnect(playerid)

и после
Code
PlayerInfo[playerid][pReg] = 0;

Добавляем

Code
       PlayerInfo[playerid][pLvl] = 0;
            PlayerInfo[playerid][pExp] = 0;


Дальше идем в паблик
Code
public OnPlayerRegister(playerid, password[])

и вставляем после
Code
ini_setString(iniFile,"Pass",Player[playerid][pPass]);


Code
ini_setString(iniFile,"Lvl",Player[playerid][pLvl]);
ini_setString(iniFile,"Exp",Player[playerid][pExp]);


После в сток
Code
stock OnPlayerUpdateRL(playerid)

и после
Code
ini_setString(iniFile,"Pass",Player[playerid][pPass]);

добавляем
Code
ini_setString(iniFile,"Lvl",Player[playerid][pLvl]);
ini_setString(iniFile,"Exp",Player[playerid][pExp]);


Опять идем в паблик

Code
public OnPlayerLogin(playerid,password[])  


и после
Code
ini_getString(iniFile,"Pass",pass,64);  


Добавляем
Code
ini_getString(iniFile,"Lvl",Player[playerid][pLvl]);        
ini_getString(iniFile,"Lvl", Player[playerid][pExp]);  


Теперь идем в паблик
Code
public OnPlayerCommandText(playerid, cmdtext[])


и после скобочки добавляем

Code
if (strcmp("/stats", cmdtext, true, 6) == 0)
     {
            GetPlayerName(targetid, name, sizeof(name));
     format(string,sizeof(string),"accounts/%s.ini",name);
            new Float:px,Float:py,Float:pz;
     GetPlayerPos(targetid, px, py, pz);
     new str[6],sctring[1200];
            format(str,sizeof(str),"{ff0000}ФИО: {FFFFFF}%s ( Отчество не указано... )\n",name);
     strcat(sctring,str);
            format(str,sizeof(str),"{ff0000}Level: {FFFFFF}%s \n",lvl);
     strcat(sctring,str);
     format(str,sizeof(str),"{ff0000}Часов до следующего Lvl (Exp) {00FF00}%s{ffffff}: %s \n",exp, expup);
     strcat(sctring,str);
            ShowPlayerDialog(playerid,10004,DIALOG_STYLE_MSGBOX,lol,sctring,"Îê","");
      return true;
     }
 
po61Дата: Пятница, 28.09.2012, 21:41 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 9

Перенес из-за неправильного написания... в будущем попрошу перенести обратно в раздел...

ТРЕБУЕТ ДОРАБОТКИ....
 
  • Страница 1 из 1
  • 1
Поиск:

Вверх