/coin - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: [CM]OlegEhtler, Getbackthere, Phoenixxx_Czar  
/coin
eastwood63 Дата: Понедельник, 28.12.2015, 16:19 | Сообщение # 1
Боец
Сообщений: 283
Статус: Offline
Команда сделана в 2 версиях: обычная и для zcmd (также подойдёт и для других обработчиков команд типа lifecmd, tcmd и т.п.)
Подойдёт практически для любого мода.
Оптимизация и комментарии к коду прилагаются.


Обычная:
Код
if(0 == strcmp(cmd, "/coin", true))
    {
        // если денег нет - отсечка
        if(playerinfo[playerid][pmoney] <= 0)
            return sendclientmessage(playerid, 0xb0b0b000, "у вас нет монеток.");
        // строки сделаны в константах для автоматического подсчёта длины string
        static const    coin_str0[] = " подбросил монетку, выпал",
                        coin_str1[] = "а \"решка\".", coin_str2[] = " \"орёл\".";
        // ячеек будет выделено ровно столько, сколько нужно
        new    string[max_player_name+(sizeof(coin_str0)-1)+(sizeof(coin_str1)-1)+1];
        // переменные для сравнения местоположений игроков
        new i = getmaxplayers(),
            inter = getplayerinterior(playerid),
            world = getplayervirtualworld(playerid),
            float:x, float:y, float:z;
        // составление строки сообщения
        getplayername(playerid, string, sizeof(string));
        strcat(string, coin_str0);
        strcat(string, (random(2)) ? (coin_str1) : (coin_str2));
        // показ сообщения игрокам
        getplayerpos(playerid, x, y, z);
        do{
            if(isplayerconnected(--i) == 0
            || getplayervirtualworld(i) != world
            || getplayerinterior(i) != inter
            || isplayerinrangeofpoint(i, 8.0, x, y, z) == 0) continue;
            sendclientmessage(i, 0xc8a8e000, string);
        }while(i);
        return 1;
    }  


Zcmd:

Код
         CMD:coin(playerid, params[])
{
    // если денег нет - отсечка
    if(PlayerInfo[playerid][pMoney] <= 0)
        return SendClientMessage(playerid, 0xB0B0B000, "У вас нет ни одной монеты.");
    // строки сделаны в константах для автомагического подсчёта длины string
    static const    coin_str0[] = " подбросил монетку, выпал",
                    coin_str1[] = "а \"решка\".", coin_str2[] = " \"орёл\".";
    // автоматический подсчёт необходимой длины строки
    new    string[MAX_PLAYER_NAME+(sizeof(coin_str0)-1)+(sizeof(coin_str1)-1)+1];
    // переменные для сравнения местоположений игроков
    new i = GetMaxPlayers(),
        inter = GetPlayerInterior(playerid),
        world = GetPlayerVirtualWorld(playerid),
        Float:x, Float:y, Float:z;
    // составление строки сообщения
    GetPlayerName(playerid, string, sizeof(string));
    strcat(string, coin_str0);
    strcat(string, (random(2)) ? (coin_str1) : (coin_str2));
    // показ сообщения игрокам
    GetPlayerPos(playerid, x, y, z);
    do{
        if(IsPlayerConnected(--i) == 0
        || GetPlayerVirtualWorld(i) != world
        || GetPlayerInterior(i) != inter
        || IsPlayerInRangeOfPoint(i, 8.0, x, y, z) == 0) continue;
        SendClientMessage(i, 0xC8A8E000, string);
    }while(i);
    return 1;
}  



Скриншоты из игры:

Когда нет денег


Орёл/решка


Автор: Daniel_Cortez


[AHK] Все биндеры для всех фракций DRP, ARP, SRP
[DRP] Ездим на такси бесплатно
[ARP] ЧИТЕРИМ ГАН С БОМЖА (1ЛВЛ)
[DRP] Оплачиваем дом с твинка
[DRP] Лучшая работа для 1 уровня
[CLEO] Мои темы с разработками
[Cheater] Все мои видео читинга
Accardo Дата: Воскресенье, 10.04.2016, 10:00 | Сообщение # 2
Новичок
Сообщений: 22
Статус: Offline
Полезно.
  • Страница 1 из 1
  • 1
Поиск: