Просмотр полной версии : [FS] Стример на языке Pawn через FS
Написал из чистого любопытства стример на языке Pawn
Внимание!
Скрипт писался без перепроверок
Скрипт писался без тестов и писался он просто на быструю руку
Pastebin: http://pastebin.com/UTLj3FCVv0.1
Pastebin: http://pastebin.com/twqsn88q v0.1.1 (исправлен баг)
Pastebin: http://pastebin.com/u1S2cDL7 v0.1.2 Исправлен критический баг + оптимизация
Pastebin: http://pastebin.com/Z26eU4c4 v0.1.3 Оптимизация + поправки от Картеза.
Скажите свое мнение об этом в теме ну и что отредактировать можно.
Использовать:
Создание объекта
CreateDynObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance = 0.0)
И удаление объекта:
DestroyDynObject(objectid)
Удалять можно только то что вернул CreateDynObject !
Salvacore
13.04.2014, 17:23
Давай ты протестишь...
Давай ты протестишь...
Я эту часть предоставляю вам сударь =)
Salvacore
13.04.2014, 17:54
Я эту часть предоставляю вам сударь =)
Мсьё, мне так влом.
Daniel_Cortez
13.04.2014, 19:03
Стример на языке Pawn
Почему же не на C++ или Delphi?
Перейдём к коду:
enum ObjInf
{
modelid2,
used,
Для чего вообще нужно поле "used"? Если ячейка динамического объекта используется, значение поля "modelid" уже будет ненулевым.
Не пробовали делать префиксы перед названиями констант/переменных/функций внутри инклуда? Или хотя бы задавать им параметр static, чтобы они не мешались в глобальной зоне видимости?...
Вот после таких "шедевральных" работ новички удивляются, мол почему же это компилятор ругается на локальные переменные типа "used", "X1", "X2" и начинают выдумывать для переменных всякие бредовые названия типа "stringg", "stringggg", "stringer", etc. - добро пожаловать в клуб нубов-RLSников!
new bool:Created[MAX_PLAYERS][MAX_DYN_OBJECTS];
Использовать массив из bool, чтобы хранить значения, которые имеют всего 2 состояния? Oh please...
Можно расходовать память гораздо эффективнее:
static streamer__CreatedForPlayerFlag[MAX_PLAYERS][MAX_DYN_OBJECTS char];
Итого массив будет занимать в 4 раза меньше пространства, экономия памяти MAX_PLAYERS(500) x MAX_DYN_OBJECTS(1000) x (4-1) = 1500000 байт ~= 1.43 Мб.
Почему же не на C++ или Delphi?
Перейдём к коду:
Для чего вообще нужно поле "used"? Если ячейка динамического объекта используется, значение поля "modelid" уже будет ненулевым.
Точно не помню существует ли моделька номер 0,если нет то вы правы и я это исправлю.
Не пробовали делать префиксы перед названиями констант/переменных/функций внутри инклуда? Или хотя бы задавать им параметр static, чтобы они не мешались в глобальной зоне видимости?...
Вот после таких "шедевральных" работ новички удивляются, мол почему же это компилятор ругается на локальные переменные типа "used", "X1", "X2" и начинают выдумывать для переменных всякие бредовые названия типа "stringg", "stringggg", "stringer", etc. - добро пожаловать в клуб нубов-RLSников!
Я полагал что таких на этом портале нет,но ладно изменю
Использовать массив из bool, чтобы хранить значения, которые имеют всего 2 состояния? Oh please...
Можно расходовать память гораздо эффективнее:
static streamer__CreatedForPlayerFlag[MAX_PLAYERS][MAX_DYN_OBJECTS char];
Итого массив будет занимать в 4 раза меньше пространства, экономия памяти MAX_PLAYERS(500) x MAX_DYN_OBJECTS(1000) x (4-1) = 1500000 байт ~= 1.43 Мб.
ладно,исправлю.
Ну сделал и молодец. А тут то он кому нужен?
Ну сделал и молодец. А тут то он кому нужен?
Чисто для любопытства.
Чисто для любопытства.
Нуок. Хрень) Мог хотя бы реализовать деление по чанкам. А такое любой нуб напишет.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot