Вся активность

Лента обновляется автоматически   

  1. Вчера
  2. Объясню всю ситуацию, пишу систему смерти игрока но она не работает. Решил по приколу написать туда обычный вывод текста SCM(playerid, COLOR_RED, "Вы умерли"); Но однако после смерти текст не выводиться. Не работает абсолютно все. Кто знает как решить эту проблему?
  3. Хороший способ дрессировки. Спасибо, но не нужно: могу и сам себе поставить. К сожалению, без кода не могу сказать, что вы не так сделали.
  4. Я не могу понять в чем ошибка помогите пожалуйста C:\Users\Deze{s\Desktop\arzdd\gamemodes\arizonarp.pwn(50864) : error 037: invalid string (possibly non-terminated string) Pawn compiler 3.10.8 Copyright (c) 1997-2006, ITB CompuPhase 1 Error. Уже почитал Что в этой строке мне просто нужно было 2 запятые поставить,Кто первый ответит тому положительный оставлю
  5. Последняя неделя
  6. Уфф хорошие вы разработчики ребята, допускаете ошибку даже в регистрации)) Не имею понятия зачем вы позиционируете себя хорошими разработчиками если мод полон банальных багов, для новичков точно не подойдёт)
  7. Можете докапаться до истины и стать тем самым хорошим человеком, который поделится подробным мануалом. Уверяю: народ вас не забудет.
  8. @moffes, не совсем. Идея в том, чтобы можно было сопоставить данные из таблиц users и admins на основе общего поля (идентификатора аккаунта) через операторы соединения (JOIN). Таблица users должна иметь следующие столбцы: id (уникальный идентификатор аккаунта). name. password. sex. skin. money. regip. lastip. Обратите внимание на отсутствие столбца admin! Таблица admins должна иметь следующие столбцы: id (уникальный номер записи). accountid (уникальный идентификатор аккаунта, аналогичный полю id таблицы users. password. level. Теперь для выдачи прав администратора игроку нужно создать новую запись в таблице admins. Для изменения текущих прав администратора нужно, соответственно, изменить существующую запись. Удаление записи влечет лишение игрока прав администратора. Для того, чтобы при подключении игрока к серверу одним запросом получить всю информацию как из таблицы users, так и из таблицы admins, нужно соединить обе этих таблицы по столбцу admins. Например, вот так: "SELECT * FROM users LEFT JOIN admins ON users.id = admins.accountid WHERE users.name = '%s' and users.password = '%s'", PlayerInfo[playerid][pAccountID], PlayerInfo[playerid][pPassword] Пример выше очень примитивен и не учитывает тот факт, что, скажем, хранение паролей в базе данных "как есть" мягко говоря плохое решение.
  9. @Rumi Channel, все верно: когда вы выходите из здания, вы попадаете на пикап, через который осуществляется вход. Так вы попадаете внутрь здания на координатах пикапа, через который осуществляется выход, - так вас возвращает обратно на улицу из здания. Раньше эту проблему решали путем ввода смещения при входе/выходе из здания (в SetPlayerPos указываете координаты пикапа и прибавляете по осям x и y небольшое смещение). Далее, поскольку иногда решение из пункта 1 приводило к тому, что игрок оказывался в стене здания или даже за его пределами, в массивах хранили не две точки (входа и выхода), а четыре (точка перехода внутрь, точка появления внутри, точка перехода наружу, точка появления снаружи). На сегодняшний день большинство проектов вновь вернулись к реализованному изначально (аналогично вашему) решению, но для перехода (отработки действия пикапа) стало нужно нажимать какую-нибудь клавишу (например, ALT). Что из перечисленного выбирать - решать вам.
  10. @Yandex_Shirogane, выше вам привели в пример две прекрасные библиотеки, примеры работы с которыми присутствуют на просторах сети Интернет. На этой основе вы попробовали сделать чтение каких-нибудь параметров из конфигурационного файла? Либо, если за минувшую неделю уже все сделали сами, мы порадуемся за вас и разойдемся
  11. Ради всего святого, не храните так данные в MySQL. Пересматривайте архитектуру вашей базы данных таким образом, чтобы каждому из перечисленных спецификаторов соответствовал свой столбец в таблице базы данных. В идеале создаете таблицу accessories, которая будет включать следующие поля: id (порядковый номер записи (первичный ключ, уникальное значение). accountid (ID аккаунта игрока, для которого предназначена текущая запись (первичный ключ). accessoryid (ID аксессуара). boneid (видимо, идентификатор части тела). fOffsetX. fOffsetY. fOffsetZ. fRotX. fRotY. fRotZ. fScaleX. fScaleY. fScaleZ. Теперь для того, чтобы проверить, есть ли свободные слоты у игрока, вы просто подсчитываете количество строк, удовлетворяющих условию: "ID аккаунта эквивалентно идентификатору аккаунта рассматриваемого игрока"): если их больше-равно четырем, значит свободных слотов нет. Ну, и для отображения всех аксессуаров просто загружаете на основе того же условия все строки из базы данных. Такой подход способствует не только развитию правильной архитектуре в вашей базе данных, но и вносит некую гибкость: так, например, вы можете для некоторых игроков делать лимит по слотам больше (скажем, для игроков с VIP-статусом, будь они не ладны). Либо можете вовсе отказаться от лимитов - вас теперь не ограничивает ничего. Для подсчета используйте возможности SQL-запросов - ни в коем случае не загружайте все-все записи, чтобы потом их посчитать на стороне сервера. Далее приведен пример. "SELECT COUNT(id) FROM acessories WHERE accountid = %d", PlayerInfo[playerid][pAccountID] Поправите все оговоренное выше убедитесь в работоспособности выдачи, сохранения и загрузки - рассмотрим следующую обозначенную вами проблему. upd. Пока писал это сообщение, пользователь @moffes вместил в одно предложение все то, о чем сказал и я. Здорово, когда мысли людей сходятся. И вам, автор, звоночек, что такое решение действительно правильнее и лучше по многим факторам.
  12. Создай таблицу именно для акссесуаров, легче будет
  13. Если я правильно понял, то: Создать в таблицу admins: mysql_format(mysql, query, sizeof query, "INSERT INTO admins (name, password, level) VALUES (%s, %d, '%d')", name, password, level); mysql_query(mysql, query, false); Изменить в Users: mysql_format(mysql, query, sizeof query, "UPDATE users SET admin=%d", admin); mysql_query(mysql, query, false); только все замени под себя Если я все же правильно тебя понял, то нужно сделать проверку на то, есть ли уже в admins строка
  14. @Surfer_Selectrum, это называется избыточность: вы в двух таблицах храните и уровень прав администратора, и имя пользователя. В вашем случае правильнее хранить в столбце admin таблицы users идентификатор дескриптора (описателя) прав администратора в таблице admins. Тогда таблица admins не будет содержать столбец name, а таблица users в столбце admin не будет хранить уровень прав администратора текущего пользователя. Тем не менее, дабы все-таки ответить на ваш вопрос, сообщаю, что в приведенном вами фрагменте кода отсутствуют какие-либо функции для записи данных в базу данных. Возможно, InfoPlayer какой-то навороченный макрос, а может быть сохранение текущих данных в базу данных осуществляется по флагу от какого-нибудь таймера, либо по событию.
  15. здравствуйте, подскажите как сделать так, чтобы команда /makeadmin после назначения игрока на админа, или повышение админа, добавляла в базу данных админку игроку, чтобы в таблице users меняла уровень админки, а в таблице admins добавляла игрока и также изменяла уровень. Code: CMD:makeadmin(playerid, params[]) { new string[128]; if(GetAdmin(playerid, adminLogin) == false) return SCM(playerid, 0xA3A3A3FF, "{C20000}[Ошибка]"C_GREY" Вы не являетесь администратором"); if(GetAdmin(playerid, adminLevel) < 6) return SCM(playerid, 0xA3A3A3FF, "{C20000}[Ошибка]"C_GREY" Вы не можете использовать данную команду."); if(sscanf(params, "ii", params[0], params[1])) return SCM(playerid, 0xA3A3A3AA, "{C20000}[Ошибка]"C_GREY" Введите: /makeadmin [ID] [Level]."); if(!IsPlayerConnected(params[0])) return SCM(playerid, 0xA3A3A3FF, "{C20000}[Ошибка]"C_GREY" Данный игрок не в сети!"); if(params[1] < 0 || params[1] > 8) return SCM(playerid, 0xA3A3A3FF, "{C20000}[Ошибка]"C_GREY" Уровень администратора [0-8]"); InfoPlayer[params[0]][pAdmin] = params[1]; format(string, sizeof(string), "Администратор %s изменил ваш уровень администратора на: %d", InfoPlayer[playerid][pName], params[1]); SCM(params[0], 0xFFFFFFAA, string); return true; } Screens - click
  16. @dante34538 дай пж эти файлы
  17. Доброго времени суток! Я основатель проекта New York Life. Ищу 3д модельера для главной степени реализации моего проекта, моей идеи. Необходимо создать город Нью-Йорк, естественно, в минималистичном размере для GTA:SA. Прошу писать мне и предоставлять ваше портфолио, ваши работы сразу, дабы не тратить ни ваше, ни моё время. Для связи, мой тг — @McReesberg
  1. Загрузить ещё активность