Создание транспорта через новый textdraw-диалог (0.3x)

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

gcode

нестандартное звание звание звание звание звани...
Автор темы
Друг
789
357
В паблике можно найти подобный скрипт, но сделан он ужасно - без оптимизации, через case.
На моём сервере данная команда предоставлена всем игрокам, поэтому я ограничил кол-во создаваемых игроком машин, если он захочет создать другую машину, то старая пропадёт, не забыл добавить удаление транспорта при выходе игрока. Исключена возможность создания транспорта во время выбора скина. Также сам список транспорта оптимизирован, добавлены все доступные модели (кроме танка, апача, воробья и т.п), улучшен внешний вид отображаемых миниатюр. Файл veh.txt в папку scriptfiles. Файл mselection.inc в папку pawno/includes.

pSpF7Y0B35.png

В начало мода/скрипта добавляем:
PHP:
#include <mSelection>
 
new menu1 = mS_INVALID_LISTID;
new yourvehicle[MAX_PLAYERS];
new bool:yourvehiclestate[MAX_PLAYERS];
new bool:connectvehstate[MAX_PLAYERS];
new randomintcar,randomintcardva;
new Float:xx,Float:yy,Float:zz,Float:xz;

OnFilterScriptInit (Если мод, то gamemodeinit)
PHP:
menu1 = LoadModelSelectionMenu("veh.txt");

OnPlayerCommandText
PHP:
if(connectvehstate[playerid])
{
if(strcmp(cmdtext, "/car", true) == 0)
{
  ShowModelSelectionMenu(playerid, menu1, "Add Vehicle");
  return 1;
}
}

OnPlayerDisconnect
PHP:
if(yourvehiclestate[playerid])
{
  DestroyVehicle(yourvehicle[playerid]);
  yourvehiclestate[playerid] = false;
}

OnPlayerRequestClass и OnPlayerDeath
PHP:
connectvehstate[playerid] = false;

OnPlayerSpawn
PHP:
connectvehstate[playerid] = true;

Добавляем новый паблик (если такого нет)
PHP:
public OnPlayerModelSelection(playerid, response, listid, modelid)
{
GetPlayerPos(playerid,xx,yy,zz);
GetPlayerFacingAngle(playerid, xz);
if(listid == menu1)
{
  if(response)
  {
  if(connectvehstate[playerid])
  {
      if(yourvehiclestate[playerid])
      {
          DestroyVehicle(yourvehicle[playerid]);
          yourvehiclestate[playerid] = false;
      }
randomintcar = random(256);
randomintcardva = random(256);
yy = yy - 4.0;
zz = zz + 2.5;
yourvehicle[playerid] = CreateVehicle(modelid, xx, yy, zz, xz, randomintcar, randomintcardva, 240);
yourvehiclestate[playerid] = true;
  }
  return 1;
}
}
return 1;
}
 

Вложения

  • veh.txt
    3.8 KB · Просмотры: 69
  • mSelection.rar
    4.8 KB · Просмотры: 52
Статус
В этой теме нельзя размещать новые ответы.