danya_white

Grand RolePlay | ver

В теме 8 сообщений

Grand RolePlay | ver


Доброго времени суток уважаемые пользователи Pawno-Rus,

сегодня я выкладываю на продажу копию мода Grand RolePlay, которую я разрабатывал на протяжении полугода,

и по сей день продолжается активная работу над данной копией, на данном этапе мод находиться в beta версии. 

 

Дополнительная информация:

Версия MySQL - R41-4

Стример - Streamer Plugin v2.9.4 by Incognito

Командный процессор - Pawn CMD

Основа мода - new.pwn

Используется include mdialog для повышение удобства при работе с диалогами

Проект разделен на модули, что трудно будет понять для новичков

 

Основные системы которые присутствуют в данном моде (ver 1.0.0):

● Регистрация / Авторизация персонажа (+)
● Полностью написаны все работы, которые присутствуют на проекте:
— Работы для новичков: лесорубом, шахтером, на мясокомбинате, на заводе, на ферме, на мебельном заводе.
— Работы в Центре занятости: автобусником, таксистом, рыболовом, инкссатором, механиком.

● Полностью разработана квестовая линия (+):
Стартовый капитал (квест лесоруб), Мастер вождения (сдача на права), Мясное ассорти (квест на мясокомбинате), 
Копилка (создание банковского счета), Заработай себе на жизнь (работа автобусника).

● Система домов (+-):
На данном этапе разработке, готово:
— Покупка дома
— Улучшения: подвал - сделан, сейф - сделан, сигнализация - сделана, гараж - сделан.
— Ремонт и покупка мебели - в разработке.

● Система бизнесов (+-):
На данном этапе разработке, готово:
— Покупка бизнеса
— Магазин Одежды - полностью готов.
— Магазин 24/7 - частично готов.

● Система фракций (+):
Фракции которые уже готовы: 
● Центральная Больница (Система смерти, Лечения - сделано, Койки в палаатах - сделано.
Команды у медиков: heal — вылечить игрока, не включая лидерских команд).

● Радиоцентр Los-Santos (доступные команды для репортеров на данный момент:
/ad у игрока /edit (доступно внутри здания, или же в автомобиле)

● Полицейский депортамент Доступные команды для полицейских на данный момент:
(/bc — Бортовой компьютер, /su — Выдать розыск, /m — Мегафон, /putm — Посадить нарушителя,
/ejectm — Вытащить с авто, /search — Найти игрока в розыске, /ticket — Выписать штраф, 
/wanted — Преступники в сети, /cuff — Надеть наручники, /uncuff — Снять наручники,
/arrest — Посадить преступника в тюрьму)

● Национальная Гвардия:
Доступные команды для армейцев на данный момент:
(/sellform — Продать свою форму, /udost — Показать удостоверение)

● ФБР:
Все команды идентичные с организацией PD (/uninvite — нету ограничений)

● Правительство:
— Команды для лидеров/замов на данный момент:
(/invite — принять во фракцию, /giverank — изменить ранг во фракции, /uninvite — уволить со фракции,
/setskin — изменить фракционный скин)

● Система покупки транспорта (+):
— Есть возможность купить транспорт на месте, или же заказать уникальный транспорт.
— Команды /cmenu, /park, /fixcar, /sellcar - сделаны.

IP для желающих протестировать выложу чуть попозже

Более подробнее об обновлениях в моде, вы можете увидеть в моей студии - click


  • Добавил
  • Добавлено
    16.08.2022
  • Категория
  • Автор
    danya_white

 

Отредактировано пользователем danya_white
Причина: изменение темы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вполне, хороший мод, за Ваши старания, +

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UPчик

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Покупая мод, получаешь доступ к обновлениям? Или это платный контент? 
Задумка просто на 5+, исполнение тоже. Но не понятно, только одно, если платные обновы, то это очень прибыльно для скриптера и очень бесполезно для пользователя

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@NikoRiedel обновление от вайта? чегооооооооооооооооооооооооооооооо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 22.11.2022 в 14:08, NikoRiedel сказал:

Покупая мод, получаешь доступ к обновлениям? Или это платный контент? 
Задумка просто на 5+, исполнение тоже. Но не понятно, только одно, если платные обновы, то это очень прибыльно для скриптера и очень бесполезно для пользователя

Мод сейчас в разработке, и пока не продается

22 часа назад, hokageud сказал:

@NikoRiedel обновление от вайта? чегооооооооооооооооооооооооооооооо

и вправду, когда ты что-то своё создашь, и перестанешь оффтопить в моей теме 

Отредактировано пользователем danya_white

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@danya_white и вправду, когда ты начнёшь выпускать обещанные обновления?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Копию Grand Rp я бы приобрел на самом деле, а как вообще понять сроки коды ты пустишь его в продажу? 
Да тем более ты вроде его продаешь, по крайней мере тут на форуме у него price 1500р

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • sergeenko
      От sergeenko
      Если писать просто команду /a, то выдаёт /a [текст]
      А если написать какой-то текст то ничего не просиходит
      Код:
       
      stock SendAdminMessage(color, text[]) {     foreach(new i: Player)     {         if(PI[i][data_CADMIN] != 1||PI[i][data_ADMLVL] >= 1)         {              SendClientMessage(i, color, text);         }     }     return 1; } Команда: CMD:a(playerid, params[]) {     if(PI[playerid][data_ADMLVL] > 1)     {         new text[90];         if(sscanf(params, "s[90]", text))             return SendClientMessage(playerid, CG, "Используйте /a [текст]");         if(antiflood[playerid] > 0)              return SendClientMessage(playerid, COLOR_BLACK,"Пожалуйста, подождите пару секунд...");         antiflood[playerid]++;         if(PI[playerid][data_LOGGED] == false)              return SendClientMessage(playerid, CG, "Вы не авторизированы. Пожалуйста авторизируйтесь.");         new string[19 + (20 + (-2) + 1 + (-2)) + (MAX_PLAYER_NAME + (-2) + 3 + (-2)) + 90];         format(string, sizeof(string), "[%s #%i] %s[%i]: %s", GSName[PI[playerid][data_ADMLVL]], PI[playerid][ADMINSNUMBER], PI[playerid][data_NAME], playerid, text);         return SendAdminMessage(COLOR_BLUE, string);     }     return 1;    }  
    • sergeenko
      От sergeenko
      Как можно сделать худ, спидометр и т.д как на намальске, малиновке, и т.д. На этих проектах подключение происходит не по внешнему подключению, а по локальному (по сборке в игре). Возьмём к примеру Намальск - в сборке игры есть папка namalsk где есть hudimg.txd, в нём есть иконки, худ, спидометр, карта и т.д.
      Как это сделать? Тутора не нашёл
    • sergeenko
      От sergeenko
      Драсте, мне нужен тутор на плагин vehiclesIdFix (снятие лимитов машин), база сан андреас, а сборка крмп.
    • Денис0403
      От Денис0403
      При вводе команды /fly спавнит в непонятном месте.
      Скрин: https://imgur.com/a/jOkD7sl
      cmd:fly(playerid) return SetPlayerFlyStatus(playerid, 2); #if defined _included_fly     #endinput #endif #define _included_fly static     Float:fly_x[MAX_PLAYERS],     Float:fly_y[MAX_PLAYERS],     Float:fly_z[MAX_PLAYERS],     Float:fly_a[MAX_PLAYERS],     fly_world[MAX_PLAYERS],     fly_int[MAX_PLAYERS],     bool:fly_spawn[MAX_PLAYERS],     fly_state[MAX_PLAYERS],     fly_object[MAX_PLAYERS],     fly_last_move[MAX_PLAYERS],     fly_mode[MAX_PLAYERS],     fly_last_ud[MAX_PLAYERS],     fly_last_lr[MAX_PLAYERS],     Float:fly_accelmul[MAX_PLAYERS]; enum {     CAMERA_MODE_NONE    = 0,     CAMERA_MODE_FLY     = 1,     CAMERA_MODE_REVERSE = 2 }; enum {     MOVE_FORWARD = 1,     MOVE_BACK,     MOVE_LEFT,     MOVE_RIGHT,     MOVE_FORWARD_LEFT,     MOVE_FORWARD_RIGHT,     MOVE_BACK_LEFT,     MOVE_BACK_RIGHT }; const     Float:MOVE_SPEED = 100.0,     Float:ACCEL_RATE = 0.03; public OnPlayerConnect(playerid) {     fly_x[playerid] = 0.0;     fly_y[playerid] = 0.0;     fly_z[playerid] = 0.0;     fly_a[playerid] = 0.0;     fly_world[playerid] = 0;     fly_int[playerid] = 0;     fly_state[playerid] = CAMERA_MODE_NONE;     fly_object[playerid] = -1,     bool:fly_spawn[playerid] = false;     fly_last_move[playerid] = 0;     fly_mode[playerid] = 0;     fly_last_ud[playerid] = 0;     fly_last_lr[playerid] = 0;     fly_accelmul[playerid] = 0.0;     #if defined _included_fly_OnPlayerConnect         return _included_fly_OnPlayerConnect(playerid);     #else         return 1;     #endif } #if defined _ALS_OnPlayerConnect     #undef OnPlayerConnect #else     #define _ALS_OnPlayerConnect #endif #define OnPlayerConnect _included_fly_OnPlayerConnect #if defined _included_fly_OnPlayerConnect     forward _included_fly_OnPlayerConnect(playerid); #endif stock SetPlayerFlyStatus(playerid, status = 2) {     if(status == CAMERA_MODE_FLY && fly_state[playerid] == CAMERA_MODE_FLY)         return true;     else if(status == CAMERA_MODE_NONE && fly_state[playerid] == CAMERA_MODE_NONE)         return true;     switch(status)     {         case CAMERA_MODE_NONE:         {             CancelEdit(playerid);             GetPlayerCameraPos(playerid, fly_x[playerid], fly_y[playerid], fly_z[playerid]);             TogglePlayerSpectating(playerid, false);             fly_state[playerid] = CAMERA_MODE_NONE;             fly_spawn[playerid] = true;                  }         case CAMERA_MODE_FLY:         {             GetPlayerPos(playerid, fly_x[playerid], fly_y[playerid], fly_z[playerid]);             fly_world[playerid] = GetPlayerVirtualWorld(playerid);             fly_int[playerid] = GetPlayerInterior(playerid);             GetPlayerFacingAngle(playerid, fly_a[playerid]);             fly_object[playerid] = CreatePlayerObject(playerid, 19300, fly_x[playerid], fly_y[playerid], fly_z[playerid], 0.0, 0.0, 0.0);             TogglePlayerSpectating(playerid, true);             AttachCameraToPlayerObject(playerid, fly_object[playerid]);             fly_state[playerid] = CAMERA_MODE_FLY;         }         case CAMERA_MODE_REVERSE:         {             if(fly_state[playerid] == CAMERA_MODE_NONE)                 return SetPlayerFlyStatus(playerid, CAMERA_MODE_FLY);             else                 return SetPlayerFlyStatus(playerid, CAMERA_MODE_NONE);         }         default:             return SendClientMessage(playerid, -1, "Your argument is not valid.") & 0;     }     return 1; } stock IsPlayerFlying(playerid)     return fly_state[playerid];      public OnPlayerDeath(playerid, killerid, reason) {     if(IsPlayerFlying(playerid))         SetPlayerFlyStatus(playerid, false);     #if defined _included_fly_OnPlayerDeath         return _included_fly_OnPlayerDeath(playerid, killerid, reason);     #else         return 1;     #endif } #if defined _ALS_OnPlayerDeath     #undef OnPlayerDeath #else     #define _ALS_OnPlayerDeath #endif #define OnPlayerDeath _included_fly_OnPlayerDeath #if defined _included_fly_OnPlayerDeath     forward _included_fly_OnPlayerDeath(playerid, killerid, reason); #endif public OnPlayerSpawn(playerid) {     if(fly_spawn[playerid] == true)         SetTimerEx("@OnPlayerSpawnEx", 100, false, "i", playerid);          #if defined _included_fly_OnPlayerSpawn         return _included_fly_OnPlayerSpawn(playerid);     #else         return 1;     #endif } #if defined _ALS_OnPlayerSpawn     #undef OnPlayerSpawn #else     #define _ALS_OnPlayerSpawn #endif #define OnPlayerSpawn _included_fly_OnPlayerSpawn #if defined _included_fly_OnPlayerSpawn     forward _included_fly_OnPlayerSpawn(playerid); #endif @OnPlayerSpawnEx(playerid); @OnPlayerSpawnEx(playerid) {     SetPlayerPos(playerid, fly_x[playerid], fly_y[playerid], fly_z[playerid]);     SetPlayerFacingAngle(playerid, fly_a[playerid]);     SetPlayerVirtualWorld(playerid, fly_world[playerid]);     SetPlayerInterior(playerid, fly_int[playerid]);     fly_spawn[playerid] = false;     return 1; } public OnPlayerUpdate(playerid) {     if(fly_state[playerid] == CAMERA_MODE_FLY)     {         new keys, ud, lr;         GetPlayerKeys(playerid, keys, ud, lr);                  if(fly_mode[playerid] && (GetTickCount() - fly_last_move[playerid] > 100))             MoveCamera(playerid);         if(fly_last_ud[playerid] != ud || fly_last_lr[playerid] != lr)         {             if((fly_last_ud[playerid] != 0 || fly_last_lr[playerid] != 0) && ud == 0 && lr == 0)             {                 StopPlayerObject(playerid, fly_object[playerid]);                 fly_mode[playerid] = 0;                 fly_accelmul[playerid] = 0.0;             }             else             {                 fly_mode[playerid] = GetMoveDirectionFromKeys(ud, lr);                 MoveCamera(playerid);             }         }         fly_last_ud[playerid] = ud;         fly_last_lr[playerid] = lr;         return 0;     }     #if defined _included_fly_OnPlayerUpdate         return _included_fly_OnPlayerUpdate(playerid);     #else         return 1;     #endif } #if defined _ALS_OnPlayerUpdate     #undef OnPlayerUpdate #else     #define _ALS_OnPlayerUpdate #endif #define OnPlayerUpdate _included_fly_OnPlayerUpdate #if defined _included_fly_OnPlayerUpdate     forward _included_fly_OnPlayerUpdate(playerid); #endif stock MoveCamera(playerid) {     new         Float:cam_pos_x, Float:cam_pos_y, Float:cam_pos_z,         Float:cam_front_x, Float:cam_front_y, Float:cam_front_z;              GetPlayerCameraPos(playerid, cam_pos_x, cam_pos_y, cam_pos_z);     GetPlayerCameraFrontVector(playerid, cam_front_x, cam_front_y, cam_front_z);     if(fly_accelmul[playerid] <= 1)         fly_accelmul[playerid] += ACCEL_RATE;     new         Float:speed = MOVE_SPEED * fly_accelmul[playerid],         Float:x, Float:y, Float:z;              GetNextCameraPosition(fly_mode[playerid], cam_pos_x, cam_pos_y, cam_pos_z, cam_front_x, cam_front_y, cam_front_z, x, y, z);     MovePlayerObject(playerid, fly_object[playerid], x, y, z, speed);     fly_last_move[playerid] = GetTickCount();     return 1; } stock GetNextCameraPosition     (         move_mode,         Float:cam_pos_x, Float:cam_pos_y, Float:cam_pos_z,         Float:cam_front_x, Float:cam_front_y, Float:cam_front_z,         &Float:x, &Float:y, &Float:z     ) {     new const         Float:change = 6000.0,         Float:pos_x = cam_front_x * change,         Float:pos_y = cam_front_y * change,         Float:pos_z = cam_front_z * change;     switch(move_mode)     {         case MOVE_FORWARD:         {             x = cam_pos_x + pos_x;             y = cam_pos_y + pos_y;             z = cam_pos_z + pos_z;         }         case MOVE_BACK:         {             x = cam_pos_x - pos_x;             y = cam_pos_y - pos_y;             z = cam_pos_z - pos_z;         }         case MOVE_LEFT:         {             x = cam_pos_x - pos_y;             y = cam_pos_y + pos_x;             z = cam_pos_z;         }         case MOVE_RIGHT:         {             x = cam_pos_x + pos_y;             y = cam_pos_y - pos_x;             z = cam_pos_z;         }         case MOVE_BACK_LEFT:         {             x = cam_pos_x + (-pos_x - pos_y);             y = cam_pos_y + (-pos_y + pos_x);             z = cam_pos_z - pos_z;         }         case MOVE_BACK_RIGHT:         {             x = cam_pos_x + (-pos_x + pos_y);             y = cam_pos_y + (-pos_y - pos_x);             z = cam_pos_z - pos_z;         }         case MOVE_FORWARD_LEFT:         {             x = cam_pos_x + (pos_x  - pos_y);             y = cam_pos_y + (pos_y  + pos_x);             z = cam_pos_z + pos_z;         }         case MOVE_FORWARD_RIGHT:         {             x = cam_pos_x + (pos_x  + pos_y);             y = cam_pos_y + (pos_y  - pos_x);             z = cam_pos_z + pos_z;         }     } } stock GetMoveDirectionFromKeys(ud, lr) {     new         direction = 0;     if(lr < 0)     {         if(ud < 0)             direction = MOVE_FORWARD_LEFT;         else if(ud > 0)             direction = MOVE_BACK_LEFT;         else             direction = MOVE_LEFT;     }     else if(lr > 0)     {         if(ud < 0)             direction = MOVE_FORWARD_RIGHT;         else if(ud > 0)             direction = MOVE_BACK_RIGHT;         else             direction = MOVE_RIGHT;     }     else if(ud < 0)         direction = MOVE_FORWARD;     else if(ud > 0)         direction = MOVE_BACK;     return direction; }  
    • sergeenko
      От sergeenko
      Как добавить на сервер новое авто (не заменяя старый)?
      В самом корне игры я всё настроил,
      мне нужно в самом моде настроить.

      Помогите пожалуйста :0