Это очень простая система рангов, в которой используется только SendClientMessage
Чтобы начать нужно определить цвет, в начале вашего скрипта дефайним:
Code: Select all
#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
Так как я уже говорил я сделаю сообщениями, так что я начинаю с:
Code: Select all
public OnPlayerCommandText(playerid, cmdtext[])
Поэтому в первую очередь я собираюсь сделать myrank команду, чтобы увидеть каков Ваш ранг, как я использую ZCMD
I Will скрипта у меня есть 3 зЗвания. Предположим теперь, что я делаю так:
Code: Select all
CMD:myrank(playerid, params[])
{
if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 100)
{
SendClientMessage(playerid, COLOR_RED,"Your Are A Soldier");
}
if (GetPlayerScore(playerid) >= 100 && GetPlayerScore(playerid) <= 200)
{
SendClientMessage(playerid, COLOR_RED,"Your Are A Colonel");
}
if (GetPlayerScore(playerid) >= 200)
{
SendClientMessage(playerid, COLOR_RED,"Your Are A Commander");
}
return 1;
}
Итак, как вы знаете - это переменная, если:
Code: Select all
if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 100)
Как мы делаем простой ранг системы мы должны дать оценку в баллах популярность. Так что если игрока со счетом 0 они получат
Сообщение от
Code: Select all
SendClientMessage
Переменная это что игроки ранг Солдат С, как у нас
Очков 0 + Но 100 низкий, мы дали этому && 100 признать, что если ниже 100 и более чем 0 Тогда Игроки
Ранг Will Be Солдат Так же самое происходит и с остальной 2 рангах И последний из них вы видели, что мы только дали 200 А
Не && Потому За 200 + показатель является ранг командующего To End ранг системы мы сделали это:
Шаг 2
Сегодня на шаге 2 мы должны поставить команду так что игроки могут увидеть, сколько Звания Там ли и сколько Счет
Нужен для того, что Популярность для приготовления, что я использую простую систему Диалог Ok часы
Code: Select all
CMD:ranks(playerid, params[])
{
ShowPlayerDialog(playerid, 12516, DIALOG_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 здесь смотреть:
Code: Select all
public OnPlayerSpawn(playerid)
{
if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 100)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, COLOR_RED,"Your Rank Is Soldier Therefore You Spawn With 100 Health");
}
if (GetPlayerScore(playerid) >= 100 && GetPlayerScore(playerid) <= 200)
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 50);
SendClientMessage(playerid, COLOR_RED,"Your Rank Is Colonel Therefore You Spawn With 100 Health And 50 Armour");
}
if (GetPlayerScore(playerid) >= 200)
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
SendClientMessage(playerid, COLOR_RED,"Your Rank Is Commander Therefore You Spawn With 100 Health And 100 Armour");
}
return 1;
}
Итак, как вы видите, я использую:
Code: Select all
if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 100)
Опять Потому Помните, когда я использовал 0 Оценка упомянуть, что это такое Солдат ранг Поэтому, когда игрока Spawn Он Получает
100 Здоровье Как Его рейтинг ниже 100, но выше 0 так что он получает сообщение, когда все Spawn, что в Его Популярность
Является Солдат Он имеет 100 здоровья, такие похожие к следующему я просто дал 50 Броня больше бонусных Так Там ли
Написанная в SendClientMessage Это Ваш ранг полковник Поэтому Вы Spawn С 100 здоровья и 50 Armour
Так что игроки знают, что это 50 Броня такое опыту ранга полковника, но никто не может выяснить это очень
Простой ранг системы и аналогичные в следующем мы дали:
Code: Select all
if (GetPlayerScore(playerid) >= 200)
без
Нет && Поскольку 200 + Score Если игрока Spawn он получит такое же сообщение за то, что когда-либо Оценка Он
Так, когда вы закончите Это Ваш Простой ранг Теперь система готова И с 1 Характеристика с ним.
- Код
Code: Select all
// 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(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 100)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, COLOR_RED,"Your Rank Is Soldier Therefore You Spawn With 100 Health");
}
if (GetPlayerScore(playerid) >= 100 && GetPlayerScore(playerid) <= 200)
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 50);
SendClientMessage(playerid, COLOR_RED,"Your Rank Is Colonel Therefore You Spawn With 100 Health And 50 Armour");
}
if (GetPlayerScore(playerid) >= 200)
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
SendClientMessage(playerid, COLOR_RED,"Your Rank Is Commander Therefore You Spawn With 100 Health And 100 Armour");
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
CMD:myrank(playerid, params[])
{
if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 100)
{
SendClientMessage(playerid, COLOR_RED,"Your Are A Soldier");
}
if (GetPlayerScore(playerid) >= 100 && GetPlayerScore(playerid) <= 200)
{
SendClientMessage(playerid, COLOR_RED,"Your Are A Colonel");
}
if (GetPlayerScore(playerid) >= 200)
{
SendClientMessage(playerid, COLOR_RED,"Your Are A Commander");
}
return 1;
}
CMD:ranks(playerid, params[])
{
ShowPlayerDialog(playerid, 12516, DIALOG_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(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
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(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}