Простая система рангов

Описание: Уроки по скриптингу
Модератор: SJplayer

SJplayer M
Автор темы, Модератор
Модератор
Аватара
SJplayer M
Автор темы, Модератор
Модератор
Сообщения: 196
Зарегистрирован: 25 мая 2013
С нами: 10 лет 10 месяцев

#1 SJplayer » 6 января 2014, 14:17

Автор: Nirzor
Это очень простая система рангов, в которой используется только SendClientMessage

Чтобы начать нужно определить цвет, в начале вашего скрипта дефайним:

Код: Выделить всё

#define COLOR_GREEN 0x008000FF
#define COLOR_BLUE 0x0000FFFF
#define COLOR_BRIGHTRED 0xFF000AAA
#define COLOR_AQUA 0x00FFFFAA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_BEIGE 0xFFF8DCAA
#define COLOR_BLACK 0x000000AA
#define COLOR_LIGHTERBLUE 0x00BFFFAA
#define COLOR_BLUELIGHT 0x1E90FFAA
#define COLOR_BLUEMEDIUM 0x0000CDAA
#define COLOR_BLUEDARK 0x00008BAA
#define COLOR_PINK 0xFF1493AA
#define COLOR_PINKDARK 0xFF00FFAA
#define COLOR_GREENLIGHT 0x00FF00AA
#define COLOR_GREENDARK 0x006400AA
#define COLOR_MAROON 0x800000AA
#define COLOR_OKER 0x808000AA
#define COLOR_ORANGE 0xFF4500AA
#define COLOR_ORANGELIGHT 0xFF8C00AA
#define COLOR_PURPLE 0x800080AA
#define COLOR_VIOLETDARK 0x9400D3AA
#define COLOR_INDIGO 0xAB0082AA
#define COLOR_RED 0xFF0000AA
#define COLOR_SAND 0xFFDEADAA
#define COLOR_SILVER 0xC0C0C0AA
#define COLOR_TEAL 0x008080AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GOLD 0xFFD700AA
#define COLOR_BROWN 0x8B4513AA
#define COLOR_BROWNLIGHT 0xA0522DAA
#define COLOR_GRAY 0xA9A9A9AA
#define COLOR_GRAYDARK 0x696969AA
#define COLOR_INVISIBLE 0xFFFFFF00 


Так как я уже говорил я сделаю сообщениями, так что я начинаю с:

Код: Выделить всё

public OnPlayerCommandText(playeridcmdtext[]) 


Поэтому в первую очередь я собираюсь сделать myrank команду, чтобы увидеть каков Ваш ранг, как я использую ZCMD

I Will скрипта у меня есть 3 зЗвания. Предположим теперь, что я делаю так:

Код: Выделить всё

CMD:myrank(playeridparams[])
{
    if (
GetPlayerScore(playerid) >= && GetPlayerScore(playerid) <= 100)
    {
    
SendClientMessage(playeridCOLOR_RED,"Your Are A Soldier");
    }
    if (
GetPlayerScore(playerid) >= 100 && GetPlayerScore(playerid) <= 200)
    {
    
SendClientMessage(playeridCOLOR_RED,"Your Are A Colonel");
    }
    if (
GetPlayerScore(playerid) >= 200)
    {
    
SendClientMessage(playeridCOLOR_RED,"Your Are A Commander");
    }
    return 
1;


Итак, как вы знаете - это переменная, если:

Код: Выделить всё

if (GetPlayerScore(playerid) >= && GetPlayerScore(playerid) <= 100


Как мы делаем простой ранг системы мы должны дать оценку в баллах популярность. Так что если игрока со счетом 0 они получат

Сообщение от

Код: Выделить всё

SendClientMessage


Переменная это что игроки ранг Солдат С, как у нас

Очков 0 + Но 100 низкий, мы дали этому && 100 признать, что если ниже 100 и более чем 0 Тогда Игроки

Ранг Will Be Солдат Так же самое происходит и с остальной 2 рангах И последний из них вы видели, что мы только дали 200 А

Не && Потому За 200 + показатель является ранг командующего To End ранг системы мы сделали это:
Шаг 2


Сегодня на шаге 2 мы должны поставить команду так что игроки могут увидеть, сколько Звания Там ли и сколько Счет

Нужен для того, что Популярность для приготовления, что я использую простую систему Диалог Ok часы


Код: Выделить всё

CMD:ranks(playeridparams[])
{
ShowPlayerDialog(playerid12516DIALOG_STYLE_MSGBOX,"{FFFF00}Ranks","{FFF000}Rank 1 Soldier (0 Scores)\n{F235FF}Rank 2 Colonel (100 Scores)\n{00FF32}Rank 3 Colonel (200 Scoores))","Okay","");
return 
1;


Так я использовал систему Advanced Dialog Для создания этой, как это делает Звания выглядят удивительными! Поэтому я думаю,

Вы, ребята, не нужно никаких объяснений его, как вы Ребята уже знаете, я просто положить в именах For It


Шаг 3 Заключительный шаг


Так мы закончили наш простой ранг Система 90% Таким образом, последний шаг Это мы собираемся добавить некоторые функции Для

Это, как я Использование На игрока Spawn здесь смотреть:

Код: Выделить всё

public OnPlayerSpawn(playerid)
{
    if (
GetPlayerScore(playerid) >= && GetPlayerScore(playerid) <= 100)
    {
    
SetPlayerHealth(playerid100);
    
SendClientMessage(playeridCOLOR_RED,"Your Rank Is Soldier Therefore You Spawn With 100 Health");
    }
    if (
GetPlayerScore(playerid) >= 100 && GetPlayerScore(playerid) <= 200)
    {
    
SetPlayerHealth(playerid100);
    
SetPlayerArmour(playerid50);
    
SendClientMessage(playeridCOLOR_RED,"Your Rank Is Colonel Therefore You Spawn With 100 Health And 50 Armour");
    }
    if (
GetPlayerScore(playerid) >= 200)
    {
    
SetPlayerHealth(playerid100);
    
SetPlayerArmour(playerid100);
    
SendClientMessage(playeridCOLOR_RED,"Your Rank Is Commander Therefore You Spawn With 100 Health And 100 Armour");
    }
    return 
1;


Итак, как вы видите, я использую:

Код: Выделить всё

if (GetPlayerScore(playerid) >= && GetPlayerScore(playerid) <= 100


Опять Потому Помните, когда я использовал 0 Оценка упомянуть, что это такое Солдат ранг Поэтому, когда игрока Spawn Он Получает

100 Здоровье Как Его рейтинг ниже 100, но выше 0 так что он получает сообщение, когда все Spawn, что в Его Популярность

Является Солдат Он имеет 100 здоровья, такие похожие к следующему я просто дал 50 Броня больше бонусных Так Там ли

Написанная в SendClientMessage Это Ваш ранг полковник Поэтому Вы Spawn С 100 здоровья и 50 Armour

Так что игроки знают, что это 50 Броня такое опыту ранга полковника, но никто не может выяснить это очень

Простой ранг системы и аналогичные в следующем мы дали:

Код: Выделить всё

if (GetPlayerScore(playerid) >= 200

без

Нет && Поскольку 200 + Score Если игрока Spawn он получит такое же сообщение за то, что когда-либо Оценка Он


Так, когда вы закончите Это Ваш Простой ранг Теперь система готова И с 1 Характеристика с ним.
Код

Код: Выделить всё

// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>
#include <zcmd>

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    print(
"\n--------------------------------------");
    print(
" Blank Filterscript by your name here");
    print(
"--------------------------------------\n");
    return 
1;
}

public 
OnFilterScriptExit()
{
    return 
1;
}

#else

main()
{
    print(
"\n----------------------------------");
    print(
" Blank Gamemode by your name here");
    print(
"----------------------------------\n");
}
#define COLOR_GREEN 0x008000FF
#define COLOR_BLUE 0x0000FFFF
#define COLOR_BRIGHTRED 0xFF000AAA
#define COLOR_AQUA 0x00FFFFAA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_BEIGE 0xFFF8DCAA
#define COLOR_BLACK 0x000000AA
#define COLOR_LIGHTERBLUE 0x00BFFFAA
#define COLOR_BLUELIGHT 0x1E90FFAA
#define COLOR_BLUEMEDIUM 0x0000CDAA
#define COLOR_BLUEDARK 0x00008BAA
#define COLOR_PINK 0xFF1493AA
#define COLOR_PINKDARK 0xFF00FFAA
#define COLOR_GREENLIGHT 0x00FF00AA
#define COLOR_GREENDARK 0x006400AA
#define COLOR_MAROON 0x800000AA
#define COLOR_OKER 0x808000AA
#define COLOR_ORANGE 0xFF4500AA
#define COLOR_ORANGELIGHT 0xFF8C00AA
#define COLOR_PURPLE 0x800080AA
#define COLOR_VIOLETDARK 0x9400D3AA
#define COLOR_INDIGO 0xAB0082AA
#define COLOR_RED 0xFF0000AA
#define COLOR_SAND 0xFFDEADAA
#define COLOR_SILVER 0xC0C0C0AA
#define COLOR_TEAL 0x008080AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GOLD 0xFFD700AA
#define COLOR_BROWN 0x8B4513AA
#define COLOR_BROWNLIGHT 0xA0522DAA
#define COLOR_GRAY 0xA9A9A9AA
#define COLOR_GRAYDARK 0x696969AA
#define COLOR_INVISIBLE 0xFFFFFF00

#endif

public OnGameModeInit()
{
    
// Don't use these lines if it's a filterscript
    
SetGameModeText("Blank Script");
    
AddPlayerClass(01958.37831343.157215.3746269.1425000000);
    return 
1;
}

public 
OnGameModeExit()
{
    return 
1;
}

public 
OnPlayerRequestClass(playeridclassid)
{
    
SetPlayerPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraLookAt(playerid1958.37831343.157215.3746);
    return 
1;
}

public 
OnPlayerConnect(playerid)
{
    return 
1;
}

public 
OnPlayerDisconnect(playeridreason)
{
    return 
1;
}

public 
OnPlayerSpawn(playerid)
{
    if (
GetPlayerScore(playerid) >= && GetPlayerScore(playerid) <= 100)
    {
    
SetPlayerHealth(playerid100);
    
SendClientMessage(playeridCOLOR_RED,"Your Rank Is Soldier Therefore You Spawn With 100 Health");
    }
    if (
GetPlayerScore(playerid) >= 100 && GetPlayerScore(playerid) <= 200)
    {
    
SetPlayerHealth(playerid100);
    
SetPlayerArmour(playerid50);
    
SendClientMessage(playeridCOLOR_RED,"Your Rank Is Colonel Therefore You Spawn With 100 Health And 50 Armour");
    }
    if (
GetPlayerScore(playerid) >= 200)
    {
    
SetPlayerHealth(playerid100);
    
SetPlayerArmour(playerid100);
    
SendClientMessage(playeridCOLOR_RED,"Your Rank Is Commander Therefore You Spawn With 100 Health And 100 Armour");
    }
    return 
1;
}

public 
OnPlayerDeath(playeridkilleridreason)
{
    return 
1;
}

public 
OnVehicleSpawn(vehicleid)
{
    return 
1;
}

public 
OnVehicleDeath(vehicleidkillerid)
{
    return 
1;
}

public 
OnPlayerText(playeridtext[])
{
    return 
1;
}

public 
OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/mycommand"cmdtexttrue10) == 0)
    {
        
// Do something here
        
return 1;
    }
    return 
0;
}
CMD:myrank(playeridparams[])
{
    if (
GetPlayerScore(playerid) >= && GetPlayerScore(playerid) <= 100)
    {
    
SendClientMessage(playeridCOLOR_RED,"Your Are A Soldier");
    }
    if (
GetPlayerScore(playerid) >= 100 && GetPlayerScore(playerid) <= 200)
    {
    
SendClientMessage(playeridCOLOR_RED,"Your Are A Colonel");
    }
    if (
GetPlayerScore(playerid) >= 200)
    {
    
SendClientMessage(playeridCOLOR_RED,"Your Are A Commander");
    }
    return 
1;
}
CMD:ranks(playeridparams[])
{
    
ShowPlayerDialog(playerid12516DIALOG_STYLE_MSGBOX,"{FFFF00}Ranks","{FFF000}Rank 1 Soldier (0 Scores)\n{F235FF}Rank 2 Colonel (100 Scores)\n{00FF32}Rank 3 Colonel (200 Scoores))","Okay","");
    return 
1;
}


public 
OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
    return 
1;
}

public 
OnPlayerExitVehicle(playeridvehicleid)
{
    return 
1;
}

public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    return 
1;
}

public 
OnPlayerEnterCheckpoint(playerid)
{
    return 
1;
}

public 
OnPlayerLeaveCheckpoint(playerid)
{
    return 
1;
}

public 
OnPlayerEnterRaceCheckpoint(playerid)
{
    return 
1;
}

public 
OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 
1;
}

public 
OnRconCommand(cmd[])
{
    return 
1;
}

public 
OnPlayerRequestSpawn(playerid)
{
    return 
1;
}

public 
OnObjectMoved(objectid)
{
    return 
1;
}

public 
OnPlayerObjectMoved(playeridobjectid)
{
    return 
1;
}

public 
OnPlayerPickUpPickup(playeridpickupid)
{
    return 
1;
}

public 
OnVehicleMod(playeridvehicleidcomponentid)
{
    return 
1;
}

public 
OnVehiclePaintjob(playeridvehicleidpaintjobid)
{
    return 
1;
}

public 
OnVehicleRespray(playeridvehicleidcolor1color2)
{
    return 
1;
}

public 
OnPlayerSelectedMenuRow(playeridrow)
{
    return 
1;
}

public 
OnPlayerExitedMenu(playerid)
{
    return 
1;
}

public 
OnPlayerInteriorChange(playeridnewinterioridoldinteriorid)
{
    return 
1;
}

public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    return 
1;
}

public 
OnRconLoginAttempt(ip[], password[], success)
{
    return 
1;
}

public 
OnPlayerUpdate(playerid)
{
    return 
1;
}

public 
OnPlayerStreamIn(playeridforplayerid)
{
    return 
1;
}

public 
OnPlayerStreamOut(playeridforplayerid)
{
    return 
1;
}

public 
OnVehicleStreamIn(vehicleidforplayerid)
{
    return 
1;
}

public 
OnVehicleStreamOut(vehicleidforplayerid)
{
    return 
1;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    return 
1;
}

public 
OnPlayerClickPlayer(playeridclickedplayeridsource)
{
    return 
1;


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Уроки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя
Боты: MailRu [Bot]