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

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

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

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

Система скилов как на Samp-RP

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

Maxim_Shmakov

Компетентный
Скажу сразу что я знаю такой урок уже есть! но, не всем удалось сделать по нему скилы, у меня у самого изначально ничего не получалось! тут код слегка другой.
Если модераторы посчитают эту тему лишней то удаляйте, я не чего против не имею!


Итак начнем:

Ищем в pinfo

PHP:
pDesert,
pSmg,
pAk,
pM4,
pShot,
И заменяем на:

PHP:
pSDPistol,
pDesertEagle,
pShotGun,
pMP5,
pAK47,
pM4,
в public OnPlayerRegister ищем

PHP:
ini_setInteger(File,"Desertl",PlayerInfo[playerid][pDesert]);
ini_setInteger(File,"SMG",PlayerInfo[playerid][pSmg]);
ini_setInteger(File,"AK47",PlayerInfo[playerid][pAk]);
ini_setInteger(File,"M4",PlayerInfo[playerid][pM4]);
ini_setInteger(File,"pShot",PlayerInfo[playerid][pShot]);
И заменяем на:

PHP:
ini_setInteger(File,"SDPistol",PlayerInfo[playerid][pSDPistol]);
ini_setInteger(File,"DesertEagle",PlayerInfo[playerid][pDesertEagle]);
ini_setInteger(File,"ShotGun",PlayerInfo[playerid][pShotGun]);
ini_setInteger(File,"MP5",PlayerInfo[playerid][pMP5]);
ini_setInteger(File,"AK47",PlayerInfo[playerid][pAK47]);
ini_setInteger(File,"M4",PlayerInfo[playerid][pM4]);
В public OnPlayerUpdateRL(playerid) ищем:

PHP:
ini_getInteger(File,"Desert",PlayerInfo[playerid][pDesert]);
ini_getInteger(File,"Smg",PlayerInfo[playerid][pSmg]);
ini_getInteger(File,"Ak47",PlayerInfo[playerid][pAk]);
ini_getInteger(File,"M4",PlayerInfo[playerid][pM4]);
ini_getInteger(File,"pShot",PlayerInfo[playerid][pShot]);
И заменяем на:

PHP:
ini_getInteger(File,"SDPistol",PlayerInfo[playerid][pSDPistol]);
ini_getInteger(File,"DesertEagle",PlayerInfo[playerid][pDesertEagle]);
ini_getInteger(File,"ShotGun",PlayerInfo[playerid][pShotGun]);
ini_getInteger(File,"MP5",PlayerInfo[playerid][pMP5]);
ini_getInteger(File,"AK47",PlayerInfo[playerid][pAK47]);
ini_getInteger(File,"M4",PlayerInfo[playerid][pM4]);
public OnPlayerLogin ищем:

PHP:
ini_getInteger(File,"Desert",PlayerInfo[playerid][pDesert]);
ini_getInteger(File,"Smg",PlayerInfo[playerid][pSmg]);
ini_getInteger(File,"Ak47",PlayerInfo[playerid][pAk]);
ini_getInteger(File,"M4",PlayerInfo[playerid][pM4]);
ini_getInteger(File,"pShot",PlayerInfo[playerid][pShot]);
И заменяем на:

PHP:
ini_getInteger(File,"SDPistol",PlayerInfo[playerid][pSDPistol]);
ini_getInteger(File,"DesertEagle",PlayerInfo[playerid][pDesertEagle]);
ini_getInteger(File,"ShotGun",PlayerInfo[playerid][pShotGun]);
ini_getInteger(File,"MP5",PlayerInfo[playerid][pMP5]);
ini_getInteger(File,"AK47",PlayerInfo[playerid][pAK47]);
ini_getInteger(File,"M4",PlayerInfo[playerid][pM4]);
Далее изменяем команду /myskill на эту:

PHP:
if(strcmp(cmd, "/myskill", true) == 0)
    {
            new stringskill[1000];
        new points[6];
        points[0] = 100 - PlayerInfo[playerid][pSDPistol];
        points[1] = 100 - PlayerInfo[playerid][pDesertEagle];
        points[2] = 100 - PlayerInfo[playerid][pShotGun];
        points[3] = 100 - PlayerInfo[playerid][pMP5];
        points[4] = 100 - PlayerInfo[playerid][pAK47];
        points[5] = 100 - PlayerInfo[playerid][pM4];
         format(stringskill,1000,"SDPistol:\t[%s]%d%\nDeagle:\t[%s]%d%\nShotGun:\t[%s]%d%\nMP5\t\t[%s]%d%\nAK47:\t\t[%s]%d%\nM4A1:\t\t[%s]%d%",
         ToDevelopSkills(PlayerInfo[playerid][pSDPistol],points[0]),PlayerInfo[playerid][pSDPistol],
         ToDevelopSkills(PlayerInfo[playerid][pDesertEagle],points[1]),PlayerInfo[playerid][pDesertEagle],
         ToDevelopSkills(PlayerInfo[playerid][pShotGun],points[2]),PlayerInfo[playerid][pShotGun],
         ToDevelopSkills(PlayerInfo[playerid][pMP5],points[3]),PlayerInfo[playerid][pMP5],
         ToDevelopSkills(PlayerInfo[playerid][pAK47],points[4]),PlayerInfo[playerid][pAK47],
         ToDevelopSkills(PlayerInfo[playerid][pM4],points[5]),PlayerInfo[playerid][pM4]);
         ShowPlayerDialog(playerid,43,DIALOG_STYLE_MSGBOX,"<< Навыки владением оружия>>",stringskill,"Готово","");
        return true;
}
В конец мода добавляем:

PHP:
stock ToDevelopSkills(Slashes,Points)
{
    new SlashesAndPoints[160];
    new Slash[2] = "|";
    new Point[2] = "'";
    for(new i = 0; i < Slashes; i++) strcat(SlashesAndPoints, Slash);
    for(new i = 0; i < Points; i++) strcat(SlashesAndPoints, Point);
    return SlashesAndPoints;
}
stock SetPlayerSkills(playerid)
{
    if(PlayerInfo[playerid][pSDPistol] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, 1000); else SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, 0);
    if(PlayerInfo[playerid][pDesertEagle] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, 1000); else SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, 0);
    if(PlayerInfo[playerid][pShotGun] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, 1000); else SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, 0);
    if(PlayerInfo[playerid][pMP5] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, 1000); else SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, 0);
    if(PlayerInfo[playerid][pAK47] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, 1000); else SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, 0);
    if(PlayerInfo[playerid][pM4] >= 100) SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, 1000); else SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, 0);
    return true;
}
public OnPlayerAmmoChange(playerid, newammo, oldammo)
{
    if(newammo < oldammo)
    {
        Shot[playerid]++;
        switch(GetPlayerWeapon(playerid))
        {
            case 24: if(Shot[playerid] >= 25 && PlayerInfo[playerid][pDesertEagle] < 100) PlayerInfo[playerid][pDesertEagle]++, Shot[playerid] = 0, SaveAccounts();
            case 23: if(Shot[playerid] >= 25 && PlayerInfo[playerid][pSDPistol] < 100) PlayerInfo[playerid][pSDPistol]++, Shot[playerid] = 0, SaveAccounts();
            case 25: if(Shot[playerid] >= 50 && PlayerInfo[playerid][pShotGun] < 100) PlayerInfo[playerid][pShotGun]++, Shot[playerid] = 0, SaveAccounts();
            case 29: if(Shot[playerid] >= 50 && PlayerInfo[playerid][pMP5] < 100) PlayerInfo[playerid][pMP5]++, Shot[playerid] = 0, SaveAccounts();
            case 30: if(Shot[playerid] >= 50 && PlayerInfo[playerid][pAK47] < 100) PlayerInfo[playerid][pAK47]++, Shot[playerid] = 0, SaveAccounts();
            case 31: if(Shot[playerid] >= 50 && PlayerInfo[playerid][pM4] < 100) PlayerInfo[playerid][pM4]++, Shot[playerid] = 0, SaveAccounts();
        }
    }
    return true;
}

Ко всем forward Добавляем:

PHP:
forward OnPlayerAmmoChange(playerid, newammo, oldammo);
У некоторых еще есть public SavessAkk
Если есть то в него:

PHP:
ini_setInteger(File,"SDPistol",PlayerInfo[playerid][pSDPistol]);
ini_setInteger(File,"DesertEagle",PlayerInfo[playerid][pDesertEagle]);
ini_setInteger(File,"ShotGun",PlayerInfo[playerid][pShotGun]);
ini_setInteger(File,"MP5",PlayerInfo[playerid][pMP5]);
ini_setInteger(File,"AK47",PlayerInfo[playerid][pAK47]);
ini_setInteger(File,"M4",PlayerInfo[playerid][pM4]);

Внимание! что бы качались скиллы у вас должны кончаться патроны (Удалите чит!)
Если есть ошибки, пишите
Если вам так и не удалось поставить скиллы пишите в скайп maxi-cool6
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу