 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Вопросы и ответы по GTA SAMP [от 19.03.2013]
| |
| Weddew | Дата: Вторник, 19.03.2013, 15:11 | Сообщение # 1 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| В этой теме вы сможете получить ответы, на многие ваши вопросы по PAWN.
Новичкам:
- Внятно объясняйте Вашу проблему, если Вы получили ошибку, обязательно выкладывайте строки, на которые "ругается" компилятор.
- Задавайте вопросы исключительно по коду, а не по системам, которые имеются у Вас в моде.
- Помощь идет только по желанию пользователя, если человек помог Вам только частично, не нужно начинать поливать его грязью.
- Возможно тип Вашей проблемы уже обсуждался на форуме, воспользуйтесь поиском.
- В этой теме пользователи лишь оказывают помощь в написании кода, а не пишут его за Вас.
- Если Вы хотите отблагодарить пользователя, жмите на кнопку
. (Только для продвинутых, и выше) - Если Вы уже задавали вопрос и не получили на него ответа, то лучше написать в ЛС одному из участников группы
, чем засорять тему. - Если Вы сами решили свою проблему, то напишите, как Вы ее решили.
- Если Вас просят выложить код функций, то используйте для этого сервис pastebin.com
Скриптерам: - Не оскорблять новичков.
- Не засорять тему сообщениями, подобные этому: "Закрой PAWNO и иди делай уроки".
- Не посылать в поиск. Пользователь итак уже пришёл сюда из поиска. Если решение проблемы уже было опубликовано, то указать в какой теме
- Как можно понятней объяснять решение той, или иной проблемы, по возможности приводить примеры.
Инструкции: - [cut noguest=Краткая инструкция для вшивания FS в мод]
1) Все из callback OnFilterScriptInit вставляем в конец callback OnGameModeInit перед словом return. 2) Все из callback OnFilterScriptExit вставляем в конец callback OnGameModeExit перед словом return. 3) Все объявления переменных (new ...) и констант (const ...; #define ... ...) в начало мода. 4) Все прототипы (forward ...(...) ) ко всем прототипам. 5) Все описания нестандартных функций (public ...(...); stock ...(...); ...(...){...} ), которых нет в моде, вставляем в конец мода.
P.S. Данный мануал не гарантирует, что после копирования все будет работать, так как еще потребуется подгонять одни системы под другие. P.P.S Если в одном из callback`ов Вы не обнаружили кода, то переходите к следующему пункту инструкции. [/cut] - [cut noguest=Защита от ботов]
В OnPlayerConnect [pwn]if(GetPlayersSameIp(playerid) > 3) Kick(playerid);[/pwn] В конец мода [pwn]stock GetPlayersSameIp(playerid) {//by Weddew //Возвращает количество подключенных игроков с таким же IP как у playerid new count = 0, p_ip[16], i_ip[16]; GetPlayerIp(playerid, p_ip, sizeof(p_ip)); for(new i = 0; i < MAX_PLAYERS; i++) { GetPlayerIp(playerid, i_ip, sizeof(i_ip)); if(i != playerid) { if(!strcmp(p_ip, i_ip, false)) count++; } } return count; }[/pwn] [/cut] - [cut noguest=Проверка на Role Play ник]
В конец мода: [pwn] stock IsARPNickname(playerid) { //by Weddew new p_n[MAX_PLAYER_NAME], dcount = 0; GetPlayerName(playerid, p_n, sizeof(p_n)) for(i = 0; i < strlen(p_n); i++) { if(p_n[i] == '_') dcount++; } if(dcount != 1 || p_n[0] == '_' || p_n[strlen(p_n)-1] == '_') return false; return true; }[/pwn]
В OnPlayerConnect
[pwn] if(!IsARPNickname(playerid)) Kick(playerid);[/pwn]
P.S.: Не пропустит: _Nick_Name_, _Nick_Name, NickName_ Пропустит: Nick_Name, NICK_NAME, NiCk_name, nick_name[/cut]
www.weddew-shop.ru
Сообщение отредактировал Weddew - Среда, 23.10.2013, 21:45 |
| |
|
|
| artemganin1999 | Дата: Понедельник, 29.07.2013, 16:49 | Сообщение # 1366 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Код if(strcmp(cmdtext, "/in", true) == 0) // Òóò òâîÿ êîìàíäà { if(PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, COLOR_GRAD1, "Òåáå íåëüçÿ"); SetPlayerInterior(playerid, 0); //Òóò èíòåðüåð â êîòîðûé òåëåïîðòèðóåøüñÿ SetPlayerVirtualWorld(playerid,0); //Òóò âèðòóëüíûé ìèð â êîòîðûé òåëåîïðòèðóåøüñÿ new driftscar; //Äëÿ òåëåïîðòà â òðàíñïîðòå driftscar = GetPlayerVehicleID(playerid); //Äëÿ òåëåïîðòà â òðàíñïîðòå if(!GetPlayerVehicleSeat(playerid)) SetVehiclePos(driftscar,-2595.8435,1363.5548,7.0707); //Êîîðäèíàòû òåëåïîðòà â òà÷êå else SetPlayerPos(playerid,-2595.8435,1363.5548,7.0707); //Êîîðäèíàòû òåëåïîðòà ÷åëîâåêîì return 1; } как сделать чтобы можно было телепортироваться только в одном месте
|
| |
|
|
| Dima-kun | Дата: Понедельник, 29.07.2013, 17:12 | Сообщение # 1367 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| artemganin1999, добавь вот ЭТУ проверку
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
Сообщение отредактировал Dima-kun - Понедельник, 29.07.2013, 17:13 |
| |
|
|
| artemganin1999 | Дата: Понедельник, 29.07.2013, 17:32 | Сообщение # 1368 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Цитата (Dima-kun) artemganin1999, добавь вот ЭТУ проверку Вот у меня получилось так [pwn] if(strcmp(cmdtext, "/out", true) == 0) // Òóò òâîÿ êîìàíäà { if(IsPlayerInRangeOfPoint(playerid, 7.0, -2595.8435,1363.5548,7.0707)) { SendClientMessage(playerid,0xFFFFFFFF,"Âû äîëæíû áûòü îêîëî òåêñòà!"); } if(PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, COLOR_GRAD1, "Òåáå íåëüçÿ"); SetPlayerInterior(playerid, 0); //Òóò èíòåðüåð â êîòîðûé òåëåïîðòèðóåøüñÿ SetPlayerVirtualWorld(playerid,0); //Òóò âèðòóëüíûé ìèð â êîòîðûé òåëåîïðòèðóåøüñÿ new driftscar; //Äëÿ òåëåïîðòà â òðàíñïîðòå driftscar = GetPlayerVehicleID(playerid); //Äëÿ òåëåïîðòà â òðàíñïîðòå if(!GetPlayerVehicleSeat(playerid)) SetVehiclePos(driftscar,-2583.3865,1353.0137,7.0438); //Êîîðäèíàòû òåëåïîðòà â òà÷êå else SetPlayerPos(playerid,-2583.3865,1353.0137,7.0438); //Êîîðäèíàòû òåëåïîðòà ÷åëîâåêîì return 1; } if(strcmp(cmdtext, "/in", true) == 0) // Òóò òâîÿ êîìàíäà { if(IsPlayerInRangeOfPoint(playerid, 7.0, -2583.3865,1353.0137,7.0438)) { SendClientMessage(playerid,0xFFFFFFFF,"Âû äîëæíû áûòü îêîëî òåêñòà!"); } if(PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, COLOR_GRAD1, "Òåáå íåëüçÿ"); SetPlayerInterior(playerid, 0); //Òóò èíòåðüåð â êîòîðûé òåëåïîðòèðóåøüñÿ SetPlayerVirtualWorld(playerid,0); //Òóò âèðòóëüíûé ìèð â êîòîðûé òåëåîïðòèðóåøüñÿ new driftscar; //Äëÿ òåëåïîðòà â òðàíñïîðòå driftscar = GetPlayerVehicleID(playerid); //Äëÿ òåëåïîðòà â òðàíñïîðòå if(!GetPlayerVehicleSeat(playerid)) SetVehiclePos(driftscar,-2595.8435,1363.5548,7.0707); //Êîîðäèíàòû òåëåïîðòà â òà÷êå else SetPlayerPos(playerid,-2595.8435,1363.5548,7.0707); //Êîîðäèíàòû òåëåïîðòà ÷åëîâåêîì return 1; }[/pwn] Но я себя подругому это представлял (можно телепортироваться в любом месте, а пишет вообще не тогда когда это надо) короче все на видео http://youtu.be/TZnerBawmRA
|
| |
|
|
| Dima-kun | Дата: Понедельник, 29.07.2013, 18:07 | Сообщение # 1369 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| [pwn]if(IsPlayerInRangeOfPoint(playerid, 7.0, -2595.8435,1363.5548,7.0707)) { SendClientMessage(playerid,0xFFFFFFFF,"Âû äîëæíû áûòü îêîëî òåêñòà!"); } [/pwn] исправь на [pwn]if( !IsPlayerInRangeOfPoint( playerid, 7.0, -2595.8435,1363.5548,7.0707 ) ) return SendClientMessage( playerid, 0xFFFFFFFF, "Âû äîëæíû áûòü îêîëî òåêñòà!" ); [/pwn]
нужно добавить ! перед функцией или == 0 после функции IsPlayerInRangeOfPoint чтобы было "Если игрок НЕ в указанном радиусе вокруг координат". Ну или скобки переставить не много. Но этот вариант неайс.
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
Сообщение отредактировал Dima-kun - Понедельник, 29.07.2013, 18:11 |
| |
|
|
| _BigSm0ke_ | Дата: Понедельник, 29.07.2013, 18:52 | Сообщение # 1370 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус: 
| Кто может дать ссылочку на шарную простенькую ucp без дыр без разницы для какого мода, лишь бы был логин, логаут и просмотр профиля.
LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON Продаю РП мод: подробнее тут Решаю задачи по техническим дисциплинам, подробнее тут
|
| |
|
|
| Fen1ks | Дата: Понедельник, 29.07.2013, 21:24 | Сообщение # 1371 |
|
Новенький
Группа:
Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Здравствуйте! Помогите мне пожалуйста! Нашел единственную хорошую систему регистрации на MySQL, но дело в том что она не сохраняет деньги... В MySQL я шарю процентов 5, кто знает как решить скажите пожалуйста. Код сис-мы ниже [pwn]#include <a_samp> #include <a_mysql> // SQL функции. #include <sscanf2> // Извлечение данных.
#define SQL_HOST "localhost" // IP адресс БД. #define SQL_USER "root" // Login БД. #define SQL_DB "pawno" // Название БД. #define SQL_PASS "" // Пароль БД. #define DIALOG_LOGIN 1 #define DIALOG_REGISTER 2 #define DIALOG_WRONGPAS 3 #define COLOR_LIGHTRED 0xFF6347AA #define COLOR_YELLOW 0xFFFF00AA
enum Variables { aID, aName[MAX_PLAYER_NAME], aPassword[64], bool: aLogged, aWrongPassword, }; new playerVariable[100][Variables]; // 100 - моё кол-во слотов для игроков на сервере.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_LOGIN: { // Диалог авторизации. if(!response) { // Если нажал "Отмена". SendClientMessage(playerid, COLOR_YELLOW, "* Введите /q(uit), чтобы выйти из игры."); Kick(playerid); return 1; } if(!strlen(inputtext)) { // Если поле ввода пустое. new dialog[134+MAX_PLAYER_NAME]; format(dialog, sizeof(dialog), "Добро пожаловать на Сервер!\n\ Этот аккаунт зарегистрирован.\n\n\ Логин: %s\n\ Введите пароль:", playerVariable[playerid][aName]); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Авторизация.", dialog, "Войти", "Отмена"); return 1; } LoadAccount(playerid, inputtext); // Пробуем его авторизовать. } case DIALOG_REGISTER: { // Диалог регистрации. if(!response) { // Если нажал "Отмена". SendClientMessage(playerid, COLOR_YELLOW, "* Введите /q(uit), чтобы выйти из игры."); Kick(playerid); return 1; } if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 64) { // Если пустое поле ввода или пароль имеет меньше 6 или больше 64 символов new dialog[380+24+10]; format(dialog, sizeof(dialog), "Добро пожаловать на Сервер!\n\ Этот аккаунт не зарегистрирован.\n\n\ Логин: %s\n\ Введите пароль и нажмите \"Далее\".\n\n\ Примечания:\n\ - Пароль чувствительный к регистру.\n\ - Длина пароля от 6 до 32 символов.\n\ - В пароле можно использовать символы на кириллице и латинице.\n", playerVariable[playerid][aName]); ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация.", dialog, "Далее", "Отмена"); return 1; } CreateAccount(playerid, inputtext); // Создаём аккаунт. playerVariable[playerid][aLogged] = true; // Авторизуем игрока. } case DIALOG_WRONGPAS: { // Если неверный пароль. if(response) { new dialog[134+MAX_PLAYER_NAME]; format(dialog, sizeof(dialog), "Добро пожаловать на Сервер!\n\ Этот аккаунт зарегистрирован.\n\n\ Логин: %s\n\ Введите пароль:", playerVariable[playerid][aName]); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Авторизация.", dialog, "Войти", "Отмена"); return 1; } else { // Если нажал "Отмена". Kick(playerid); return 1; } } } return 1; } public OnPlayerText(playerid, text[]) { if(playerVariable[playerid][aLogged] == false) return 0; return 1; } public OnPlayerConnect(playerid) { RemovePlayerVariables(playerid); //------------------------------------------------------------------------------ GetPlayerName(playerid, playerVariable[playerid][aName], MAX_PLAYER_NAME); //------------------------------------------------------------------------------ if(GetAccountID(playerid)) { // Аккаунт зарегистрирован new dialog[128+MAX_PLAYER_NAME]; format(dialog, sizeof(dialog), "Добро пожаловать на Сервер!\n\ Этот аккаунт зарегистрирован.\n\n\ Логин: %s\n\ Введите пароль:", playerVariable[playerid][aName]); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Авторизация.", dialog, "Войти", "Отмена"); } else { // Аккаунт не зарегистрирован (return 0, в функции GetAccountID, т.е. не нашло записи с аккаунтом). new dialog[344+MAX_PLAYER_NAME]; format(dialog, sizeof(dialog), "Добро пожаловать на Сервер!\n\ Этот аккаунт не зарегистрирован.\n\n\ Логин: %s\n\ Введите пароль и нажмите \"Далее\".\n\n\ Примечания:\n\ - Пароль чувствительный к регистру.\n\ - Длина пароля от 6 до 32 символов.\n\ - В пароле можно использовать символы на кириллице и латинице.\n", playerVariable[playerid][aName]); ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация.", dialog, "Далее", "Отмена"); } return 1; }
stock ConnectMySQL() { // В OnGameModeInIt вставьте ConnectMySQL(); mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS); // Тут мы используем все данные, которые мы дефайнили. switch(mysql_ping()) { // Проверка на то, что мы подключены к БД. case 1: print("MySQL connection: alive."); // Если подключена БД. case -1: print("MySQL connection: dead."); // Если не подключена БД. } return 1; }
stock DisconnectMySQL() { // Вставьте DisconnectMySQL(); в OnGameModeExit, отключаемся от БД. mysql_close(); print("MySQL connection closed."); }
stock CheckMySQLConnection() { // Этот сток мы будем использовать для проверки, подключена ли БД перед её использованием. if(mysql_ping() == -1) mysql_reconnect(); return 1; } stock CreateAccount(playerid, password[]) { new query[128], // Для запроса. sqlname[MAX_PLAYER_NAME], sqlpassword[32]; mysql_real_escape_string(playerVariable[playerid][aName], sqlname); // Защитит от sql inject mysql_real_escape_string(password, sqlpassword); // Защитит от sql inject format(query, sizeof(query), "INSERT INTO `Accounts` (`Nickname`, `Password`) VALUE ('%s', '%s')", sqlname, sqlpassword); // Добавляем в таблицу запись. // INSERT - добавление записи в таблицу, 1. () - поля. 2. VALUE - значения этих полей. mysql_query(query); // Отправляем запрос. GetAccountID(playerid); // Узнаём ИД аккаунта, будет использоваться для сохранения и прочих операций. strmid(playerVariable[playerid][aPassword], password, 0, 64, 255); // Внедряем в массив аккаунта введенный игроком пароль. playerVariable[playerid][aLogged] = true; // Мы авторизованы. return 1; } stock LoadAccount(playerid, password[]) { new query[128], sqlpass[32], result[5+24+64], dialog[128]; mysql_real_escape_string(password, sqlpass); // Защита от SQL Inject, шифрует кодировку. format(query, sizeof(query), "SELECT * FROM `Accounts` WHERE `Password` = '%s' AND `ID` = '%i'", sqlpass, playerVariable[playerid][aID]); // SELECT * - выбрать, FROM - с таблицы, WHERE - где, пароль равен введенному паролю и ID равен иду ника человека. mysql_query(query); // Отправляем запрос. mysql_store_result(); // Смотрим записи, которые мы выбрали запросом выше. if(mysql_num_rows() == 1) { // Если выбрало только 1 аккаунт с таким паролем и ИД - успех, пароль введен верно, загружаем данные в массив. mysql_fetch_row_format(result, "|"); // split, данные в результате записываются типо "1|Snoowker|parol" sscanf(result, "p<|>is[24]s[32]", // i - ид (int), s[размер] - string, ник и пароль. playerVariable[playerid][aID], playerVariable[playerid][aName], playerVariable[playerid][aPassword]); playerVariable[playerid][aLogged] = true; mysql_free_result(); // Очищаем память. return 1; } else { // Мы ввели неверный пароль. if(playerVariable[playerid][aWrongPassword] == 4) { SendClientMessage(playerid, COLOR_LIGHTRED, "Вы 3 раза ввели неверный пароль и были отключены от сервера."); Kick(playerid); return 1; } format(dialog, sizeof(dialog), "Вы ввели неверный пароль.\n\ У Вас осталось %i/3 попыток ввода.", 3 - playerVariable[playerid][aWrongPassword]); ShowPlayerDialog(playerid, DIALOG_WRONGPAS, DIALOG_STYLE_MSGBOX, "Ошибка.", dialog, "Повтор", "Отмена"); } return 1; } stock GetAccountID(playerid) { new query[128]; format(query, sizeof(query),"SELECT `ID` FROM `Accounts` WHERE `Nickname` = '%s'", playerVariable[playerid][aName]); // Выбираем ID, с таблицы Accounts, где Ник равен нику игрока. mysql_query(query); // Отправляем запрос. mysql_store_result(); // Видим if(mysql_num_rows() == 1) { // Если у нас в результате выбрало 1 запись, т.е. аккаунт игрока. playerVariable[playerid][aID] = mysql_fetch_int(); // ИД игрока равен номеру записи. mysql_free_result(); // Очищаем память. return playerVariable[playerid][aID]; // Возвращаем ИД игрока. } return 0; }
stock SaveAccount(playerid) { // Сохранение аккаунта. if(playerVariable[playerid][aLogged] == true) { // Проверка, если аккаунт авторизован. CheckMySQLConnection(); // Проверяем, подключена ли БД. new query[186], sqlname[MAX_PLAYER_NAME], sqlpass[64]; mysql_real_escape_string(playerVariable[playerid][aName], sqlname); mysql_real_escape_string(playerVariable[playerid][aPassword], sqlpass); format(query, sizeof(query), "UPDATE `Accounts` SET `Nickname` = '%s', `Password` = '%s' WHERE `ID` = '%i'", sqlname, sqlpass, playerVariable[playerid][aID]); mysql_query(query); // Отправляем запрос } return 1; } stock RemovePlayerVariables(playerid) { playerVariable[playerid][aWrongPassword] = 0; playerVariable[playerid][aID] = 0; playerVariable[playerid][aLogged] = false; return 1; }[/pwn]Добавлено (29.07.2013, 21:24) --------------------------------------------- уже не надо, нанял человека.
|
| |
|
|
| HakeRbesT | Дата: Понедельник, 29.07.2013, 21:29 | Сообщение # 1372 |
|
Новенький
Группа:
Пользователи
Сообщений: 72
Награды: 0
Город: Новокузнецк
Репутация: 2
Замечания: 0%
Статус: 
| Использую ZCMD и sscanf2, как сделать, чтобы можно было ввести и id игрока и его ник?Добавлено (29.07.2013, 21:29) --------------------------------------------- Использую ZCMD и sscanf2, как сделать, чтобы можно было ввести и id игрока и его ник?
|
| |
|
|
| Weddew | Дата: Понедельник, 29.07.2013, 22:06 | Сообщение # 1373 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| HakeRbesT, [pwn]CMD:command(playerid, params[]) { new p_id, p_name[MAX_PLAYER_NAME]; if(sscanf(params,"ds", p_id, p_name)) { // Код } else return SendClientMessage(playerid, -1, "/command [ID] [Player Name]"); return true; }[/pwn]
www.weddew-shop.ru
|
| |
|
|
| _BigSm0ke_ | Дата: Вторник, 30.07.2013, 01:52 | Сообщение # 1374 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус: 
| Цитата (_BigSm0ke_) Кто может дать ссылочку на шарную простенькую ucp без дыр без разницы для какого мода, лишь бы был логин, логаут и просмотр профиля. UP! ------------------ И еще.. нашел тут ФС, с помощью которого можно за рулем делать вид от 1 лица, но он поддерживает всего где-то 50 машин, у меня тут возникла идея, а что если например сделать эту систему следующим образом: Создаем вначале объект в голове игрока CreatePlayerObject какой нибудь невидимый , а потом аттачим камеру: AttachCameraToPlayerObject Конечно наверное нужны координаты головы для каждого скина, но ведь все скины очень мало различаются по высоте, да и ничего страшного не будет, если камера приатачится скажем "в шею" вместо головы, зато мод подойдет к любому транспортному средству, даже если заменена модель, так вот, кто подскажет координаты головы?) моя идея вообще осуществима?
LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON Продаю РП мод: подробнее тут Решаю задачи по техническим дисциплинам, подробнее тут
|
| |
|
|
| Geryy | Дата: Вторник, 30.07.2013, 02:05 | Сообщение # 1375 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата (_BigSm0ke_) И еще.. нашел тут ФС, с помощью которого можно за рулем делать вид от 1 лица, но он поддерживает всего где-то 50 машин Вот для всех: http://rghost.net/47762421
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| HakeRbesT | Дата: Вторник, 30.07.2013, 11:49 | Сообщение # 1376 |
|
Новенький
Группа:
Пользователи
Сообщений: 72
Награды: 0
Город: Новокузнецк
Репутация: 2
Замечания: 0%
Статус: 
| Цитата (Weddew) HakeRbesT, Код CMD:command(playerid, params[]) { new p_id, p_name[MAX_PLAYER_NAME]; if(sscanf(params,"ds", p_id, p_name)) { // Код } else return SendClientMessage(playerid, -1, "/command [ID] [Player Name]"); return true; }
Нет, тут нужно ввести одновременно и id и ник, а мне нужно чтобы можно было ввести либо id либо ник. То есть либо /command 45, либо /command mike
|
| |
|
|
| Weddew | Дата: Вторник, 30.07.2013, 14:17 | Сообщение # 1377 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| HakeRbesT, Для этого необходимо использовать функции из utils.inc В начало: [pwn]#include <utils>[/pwn]
Файл utils.inc (закинуть в папку includes (папка pawno)
[pwn]CMD:command(playerid, params[]) { new t_str[MAX_PLAYER_NAME]; if(sscanf(params,"s", t_str)) { new p_id = ReturnUser(t_str); // p_id - ID игрока, из [ID/Player Name] // Код } else return SendClientMessage(playerid, -1, "/command [ID/Player Name]"); return true; }[/pwn]
www.weddew-shop.ru
|
| |
|
|
| Хасан | Дата: Вторник, 30.07.2013, 17:04 | Сообщение # 1378 |
|
Группа:
Модераторы
Сообщений: 2816
Награды: 388
Город: X-Files
Репутация: 2965
Замечания: 0%
Статус: 
| привет,ребят вопрос:был такой ФС как конные бега,кто-то в начале делал.Кто помнит,с меня плюсик.
малі діти недають нам спати - великі діти недають нам жити © Iван Миколайчук
— Вот ты говорил, город — сила, а здесь слабые все. — Город — это злая сила. Сильный приезжает — становится слабым. Город забирает силу. Вот и ты пропал…© Брат
— ...лягушки падают с неба — Видимо у них не раскрылись парашюты. © X-Files
— Разве вы не хотели бы жить вечно? — Если в моде останутся штаны со стрелками то нет.© X-Files
Ибо таковые лжеапостолы, лукавые делатели, принимают вид Апостолов Христовых. И неудивительно: потому что сам сатана принимает вид Ангела света, а потому не великое дело, если и служители его принимают вид служителей правды; но конец их будет по делам их. (2Кор 11:13-15).
|
| |
|
|
| artemganin1999 | Дата: Вторник, 30.07.2013, 22:02 | Сообщение # 1379 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| что лучше для сервера, vps или vds
|
| |
|
|
| Fen1ks | Дата: Вторник, 30.07.2013, 22:37 | Сообщение # 1380 |
|
Новенький
Группа:
Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Помогите, обнаружил баг в моде! Например: Один игрок зашел, взял автомобиль, потом зашел другой игрок так-же взял автомобиль, тогда у первого может пропасть. Мод CoHA. Такая штука, бывает не очень редко но при онлайне 180 уже жалуются. сам код: [pwn]if(dialogid == 9)//car spawning into { if(response)//написано не мной, взято из чьего-то меню, тем не менее - автору спасибо. { new carvlad[80],Float:X,Float:Y,Float:Z,Float:Angle,id,string[256]; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle); switch(listitem) { case 0: carvlad = "Elegy", id = 562; case 1: carvlad = "Sultan", id = 560; case 2: carvlad = "Infernus", id = 411; case 3: carvlad = "Banshee", id = 429; case 4: carvlad = "Buffalo", id = 402; case 5: carvlad = "Huntley", id = 579; case 6: carvlad = "Cheetah", id = 415; case 7: carvlad = "Turismo", id = 451; case 8: carvlad = "Quad", id = 471; case 9: carvlad = "Slamvan", id = 535; case 10: carvlad = "Blade", id = 536; case 11: carvlad = "Bullet", id = 541; case 12: carvlad = "Jester", id = 559; case 13: carvlad = "Hotrina", id = 502; case 14: carvlad = "Bandito", id = 568; case 15: carvlad = "Windsor", id = 555; case 16: carvlad = "Stretch", id = 409; case 17: carvlad = "Sabre", id = 475; case 18: carvlad = "CopCarLA", id = 596; case 19: carvlad = "Kart", id = 571; case 20: carvlad = "SuperGt", id = 506; case 21: carvlad = "Nrg500", id = 522; case 22: carvlad = "Sanchez", id = 468; case 23: carvlad = "Bmx", id = 481; case 24: carvlad = "MtBike", id = 510; case 25: carvlad = "Start", id = 565; case 26: carvlad = "FCR-900", id = 521; case 27: carvlad = "SandKing", id = 495; case 28: carvlad = "Hammer", id = 470; case 29: carvlad = "Broadway", id = 575; case 30: carvlad = "Savanna", id = 567; case 31: carvlad = "ZR-350", id = 477; case 32: carvlad = "PCJ-600", id = 461; case 33: carvlad = "Freeway", id = 463; case 34: carvlad = "Buccaneer", id = 518; case 35: carvlad = "Sweeper", id = 574; case 36: carvlad = "Wayfarer", id = 586; case 37: carvlad = "Bus", id = 437; case 38: carvlad = "Stallion", id = 439; case 39: carvlad = "Landstalker", id = 400; case 40: carvlad = "Seasparrow", id = 447; case 41: carvlad = "Caddy", id = 457; case 42: carvlad = "Solair", id = 458; case 43: carvlad = "Remington", id = 534; case 44: carvlad = "Feltzer", id = 533; case 45: carvlad = "BF-400", id = 581; case 46: carvlad = "DFT-30", id = 578; }
format(string,sizeof(string),"{DEB887}%s {ADFF2F}взят за {1E90FF}15000$",carvlad); SendClientMessage(playerid,0x21DD00FF,string); if(ta4katest[playerid] == 1)DestroyVehicle(ta4ka[playerid]); ta4ka[playerid] = CreateVehicle(id,X,Y,Z,Angle,-1,-1,50000); if(GetPlayerInterior(playerid)) LinkVehicleToInterior(ta4ka[playerid],GetPlayerInterior(playerid)); SetVehicleVirtualWorld(ta4ka[playerid],GetPlayerVirtualWorld(playerid)); PutPlayerInVehicle(playerid,ta4ka[playerid],0); GivePlayerMoney(playerid, -15000); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ta4katest[playerid] = 1; } return 1; }[/pwn] давно заметил это дело, но внимая не подавал. Теперь же надоело, но сам не пойму в чем проблема...
|
| |
|
|
|
 |
|
 | |
| |
|