19:44
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Модератор форума: AXE, Weddew  
Вопросы и ответы по 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]
давно заметил это дело, но внимая не подавал. Теперь же надоело, но сам не пойму в чем проблема...

Поиск:





 


 


 
Хостинг от uCoz samp.at.ua