Дота 2 в сампе?!

chapo

чопа сребдс // @moujeek
Автор темы
Модератор
8,868
11,572
Всем хай, я тут решил начать писать доту в сампе с нуля. Если вы хотите помочь с разработкой / добавить что-то свое, то можете использовать мини апи для создания предметов!
(позже выложу в эту тему такое же "апи" для создания героев)
каждый предмет лежит в отдельном скрипте, например: moonloader/dota/item/dlink_dagger.lua.
1691333115602.png

В этой теме вы можете выложить свои предметы и я вставлю их в скрипт.

Скрипт представляет из себя "мини модуль", который возвращает таблицу со следующими значениями:
Lua:
---@enum ItemType
local ItemType = {
    PASSIVE = 0,
    VECTOR = 1,
    TARGET_ENTITY = 2,
    TARGET_ENEMY = 3,
    TARGET_TEAM = 4,
    TARGET_POINT = 5,
    INSTANT = 6,
    TOGGLEABLE = 7
};

---@enum PlayerStat
local PlayerStat = {
    maxHealth = 0,
    maxMana = 1,
    healthRegen = 2,
    manaRegen = 3,
    damage = 4,
    attackSpeed = 5,
    speed = 6,
    attackRange = 7,
}

---@class Item
---@field stats table<PlayerStat, number>? Статы которые дает предмет
---@field name string Название предмета
---@field manaRequired boolean? Мана, необходимая для использования предмета
---@field type ItemType | number Тип предмета
---@field targetRange number? Радиус применения
---@field toggled boolean? Включен ли предмет
---@field onWaitForTarget fun(...)? Функция выполняемая при ожидании выбора цели (только для ItemType.TARGET_*)
---@field category 'main' | 'upgrades' Категория предмета для магазина
---@field subCategory 'resources' | 'attributes' | 'gear' | 'other' | 'accessories' | 'support' | 'magic' | 'armour' | 'weapon' | 'artefact' подкатегоря в магазине
---@field iconBase85 string? Иконка в base85
---@field icon any Текстура для ImGui
---@field onUse fun(...): boolean? Функция выполняемая после выбора цели / переключения и т.д.. В качестве параметров передает: TARGET_POINT/VECTOR - положение курсора в 3д мире, TARGET_* - хендл выбранного игрока, при остальных типах передает nil
---@field onUseThread boolean? Вызывать функцию через lua_thread.create
---@field storage table? Локальные данные
---@field cooldown number? Время перезарядки
---@field lastUsed number?
Пример блинка:
Lua:
local Controls = require('dota.controls');

---@type Item
local blink_dagger = {
    type = require('dota.types').ItemType.TARGET_POINT,
    category = 'main',
    subCategory = 'other',
    name = 'Blink Dagger',
    cooldown = 20,
    targetRange = 10,
    onUse = function(point)
        if (point) then
            setCharCoordinates(PLAYER_PED, point.x, point.y, point.z);
            msg('teleported')
            return true;
        end
    end
};

return blink_dagger;

Результат:
1691333076612.png
 

Char

Известный
348
122
Всем хай, я тут решил начать писать доту в сампе с нуля. Если вы хотите помочь с разработкой / добавить что-то свое, то можете использовать мини апи для создания предметов!
(позже выложу в эту тему такое же "апи" для создания героев)
каждый предмет лежит в отдельном скрипте, например: moonloader/dota/item/dlink_dagger.lua.

В этой теме вы можете выложить свои предметы и я вставлю их в скрипт.

Скрипт представляет из себя "мини модуль", который возвращает таблицу со следующими значениями:
Lua:
---@enum ItemType
local ItemType = {
    PASSIVE = 0,
    VECTOR = 1,
    TARGET_ENTITY = 2,
    TARGET_ENEMY = 3,
    TARGET_TEAM = 4,
    TARGET_POINT = 5,
    INSTANT = 6,
    TOGGLEABLE = 7
};

---@enum PlayerStat
local PlayerStat = {
    maxHealth = 0,
    maxMana = 1,
    healthRegen = 2,
    manaRegen = 3,
    damage = 4,
    attackSpeed = 5,
    speed = 6,
    attackRange = 7,
}

---@class Item
---@field stats table<PlayerStat, number>? Статы которые дает предмет
---@field name string Название предмета
---@field manaRequired boolean? Мана, необходимая для использования предмета
---@field type ItemType | number Тип предмета
---@field targetRange number? Радиус применения
---@field toggled boolean? Включен ли предмет
---@field onWaitForTarget fun(...)? Функция выполняемая при ожидании выбора цели (только для ItemType.TARGET_*)
---@field category 'main' | 'upgrades' Категория предмета для магазина
---@field subCategory 'resources' | 'attributes' | 'gear' | 'other' | 'accessories' | 'support' | 'magic' | 'armour' | 'weapon' | 'artefact' подкатегоря в магазине
---@field iconBase85 string? Иконка в base85
---@field icon any Текстура для ImGui
---@field onUse fun(...): boolean? Функция выполняемая после выбора цели / переключения и т.д.. В качестве параметров передает: TARGET_POINT/VECTOR - положение курсора в 3д мире, TARGET_* - хендл выбранного игрока, при остальных типах передает nil
---@field onUseThread boolean? Вызывать функцию через lua_thread.create
---@field storage table? Локальные данные
---@field cooldown number? Время перезарядки
---@field lastUsed number?
Пример блинка:
Lua:
local Controls = require('dota.controls');

---@type Item
local blink_dagger = {
    type = require('dota.types').ItemType.TARGET_POINT,
    category = 'main',
    subCategory = 'other',
    name = 'Blink Dagger',
    cooldown = 20,
    targetRange = 10,
    onUse = function(point)
        if (point) then
            setCharCoordinates(PLAYER_PED, point.x, point.y, point.z);
            msg('teleported')
            return true;
        end
    end
};

return blink_dagger;
Это пиздец..
 

sekrieruthegod

Потрачен
2
18
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
дотаплюс с подписочкой разработай
 
  • Нравится
  • Клоун
Реакции: Char и 1NEXPL1CA

GRACHOVE

Известный
575
211
ждем выпуска а ещё если оно все же выйдет оно будет с игроками сервера? тоесть можно будет зайти на условный феникс в луа нажать кнопку поиск игры и те кто на фениксе захотят поиграть тоже нажмут поиск то можно будет с ними играть в доту? блен я не умею играть в доту:(
 
  • Клоун
Реакции: Char

chapo

чопа сребдс // @moujeek
Автор темы
Модератор
8,868
11,572
Добавил мини апи для создания героев. К посту прикрепил сфа, пуджа и тинкера
Lua:
---@class Animation
---@field file string
---@field name string

---@enum HeroType
local HeroType = {
    MELEE = 1,
    RANGE = 2
}

---@class PlayerStats
---@field maxHealth number
---@field maxMana number
---@field healthRegen number
---@field manaRegen number
---@field damage number
---@field attackSpeed number
---@field speed number
---@field attackRange number

---@enum PlayerStat
local PlayerStat = {
    maxHealth = 0,
    maxMana = 1,
    healthRegen = 2,
    manaRegen = 3,
    damage = 4,
    attackSpeed = 5,
    speed = 6,
    attackRange = 7,
}

---@class Hero
---@field abilities Ability[]
---@field name string
---@field imageBase85 string?
---@field image any
---@field loop fun()?
---@field model number
---@field weapon number?
---@field animations { walk: Animation, fight: Animation }?
---@field stats PlayerStats
---@field lastAttack number?
---@field storage table?

---@class Ability
---@field name string
---@field imageBase85 string?
---@field image any
---@field type AbilityType
---@field waitForTarget boolean?
---@field storage table?
---@field cooldown number?
---@field manaRequired number?
---@field lastUsed number?
---@field toggled boolean?
---@field useThread boolean?
---@field targetRange number?
---@field onUse fun(...): boolean?
---@field onToggle fun(...)?
---@field whileActive fun(...)?
---@field onScriptUnload fun()?
 

Вложения

  • pudge.lua
    4.1 KB · Просмотры: 13
  • shadow_fiend.lua
    2.9 KB · Просмотры: 9
  • tinker.lua
    3.2 KB · Просмотры: 8
  • Нравится
  • Клоун
Реакции: Char, Parothn и oliburn

puredrug

Участник
36
28
нет пожалуйста не надо прошу тебя умоляю я не хочу опять доту
я так много играл в доту, что мне уже не нужна дота, чтобы играть в доту
 
  • Клоун
Реакции: Char

cloused2

Известный
396
130
Шок! Скоро все игроки арз будут дотеры! Аааа!
Всем хай, я тут решил начать писать доту в сампе с нуля. Если вы хотите помочь с разработкой / добавить что-то свое, то можете использовать мини апи для создания предметов!
(позже выложу в эту тему такое же "апи" для создания героев)
каждый предмет лежит в отдельном скрипте, например: moonloader/dota/item/dlink_dagger.lua.
Посмотреть вложение 210823
В этой теме вы можете выложить свои предметы и я вставлю их в скрипт.

Скрипт представляет из себя "мини модуль", который возвращает таблицу со следующими значениями:
Lua:
---@enum ItemType
local ItemType = {
    PASSIVE = 0,
    VECTOR = 1,
    TARGET_ENTITY = 2,
    TARGET_ENEMY = 3,
    TARGET_TEAM = 4,
    TARGET_POINT = 5,
    INSTANT = 6,
    TOGGLEABLE = 7
};

---@enum PlayerStat
local PlayerStat = {
    maxHealth = 0,
    maxMana = 1,
    healthRegen = 2,
    manaRegen = 3,
    damage = 4,
    attackSpeed = 5,
    speed = 6,
    attackRange = 7,
}

---@class Item
---@field stats table<PlayerStat, number>? Статы которые дает предмет
---@field name string Название предмета
---@field manaRequired boolean? Мана, необходимая для использования предмета
---@field type ItemType | number Тип предмета
---@field targetRange number? Радиус применения
---@field toggled boolean? Включен ли предмет
---@field onWaitForTarget fun(...)? Функция выполняемая при ожидании выбора цели (только для ItemType.TARGET_*)
---@field category 'main' | 'upgrades' Категория предмета для магазина
---@field subCategory 'resources' | 'attributes' | 'gear' | 'other' | 'accessories' | 'support' | 'magic' | 'armour' | 'weapon' | 'artefact' подкатегоря в магазине
---@field iconBase85 string? Иконка в base85
---@field icon any Текстура для ImGui
---@field onUse fun(...): boolean? Функция выполняемая после выбора цели / переключения и т.д.. В качестве параметров передает: TARGET_POINT/VECTOR - положение курсора в 3д мире, TARGET_* - хендл выбранного игрока, при остальных типах передает nil
---@field onUseThread boolean? Вызывать функцию через lua_thread.create
---@field storage table? Локальные данные
---@field cooldown number? Время перезарядки
---@field lastUsed number?
Пример блинка:
Lua:
local Controls = require('dota.controls');

---@type Item
local blink_dagger = {
    type = require('dota.types').ItemType.TARGET_POINT,
    category = 'main',
    subCategory = 'other',
    name = 'Blink Dagger',
    cooldown = 20,
    targetRange = 10,
    onUse = function(point)
        if (point) then
            setCharCoordinates(PLAYER_PED, point.x, point.y, point.z);
            msg('teleported')
            return true;
        end
    end
};

return blink_dagger;

Результат:
Посмотреть вложение 210822
Скоро сделаем из сампа Gta 6, кстати идея хорошая. Жду конца разработки!
 
  • Клоун
Реакции: Char