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

 



 
        
Подвиcание SA-MP (2)
Max 20.02.2017 21:57
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы 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
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
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 29 из 151«122728293031150151»
Модератор форума: AXE, Weddew 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Вопросы и ответы по GTA SAMP [от 19.03.2013]
WeddewДата: Вторник, 19.03.2013, 15:11 | Сообщение # 1
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 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
AnthonyДата: Четверг, 18.04.2013, 18:41 | Сообщение # 421
Уверенный в себе
Группа: Publishers
Сообщений: 211
Награды: 4
Замечания: 0%
Статус:
Weddew
Спасибо!




CruiserДата: Четверг, 18.04.2013, 18:45 | Сообщение # 422
Новенький
Группа: Пользователи
Сообщений: 25
Награды: 0
Город: Армавир
Репутация: 0
Замечания: 0%
Статус:
Цитата (Weddew)
Cruiser, естественно Вы ничего не выведите, так как Вы не кэшируете полученные данные и не выводите результат запроса в поток.
Там где нужно:
format(string, sizeof(string), "SELECT * FROM `Accounts` WHERE `Name` = '%s'", Name(playerid));
mysql_function_query(connectionHandle, string, true, "LoadAccount","d", playerid);

Ко всем public функциям:
forward LoadAccount(playerid);
public LoadAccount(playerid)
{
new rows, fields;
cache_get_data(rows, fields);
if(rows != 0)
{
new maximum[128], starmail[256];
cache_get_field_content(0, "Email", starmail);
format(string, sizeof(string), "Mail: %s", starmail);
SendClientMessage(playerid, COLOR_YELLOW, string);

cache_get_field_content(0, "Key", maximum), PlayerInfo[playerid][pKey] = strval(maximum);
format(string, sizeof(string), "Пароль: %s", PlayerInfo[playerid][pKey]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}

Все что я писал это все строки из одного диалога, мне надо чтобы можно было вытащить email и пароль в одном диалоге, это возможно? или просто для того чтобы вывести надо обязательно создавать отдельный паблик?

[[[WampiR]]]Дата: Четверг, 18.04.2013, 19:05 | Сообщение # 423
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Вот нормальная проверка но почемуто выкидывает даже с фракционных машин и который на нубореспе. А так если есть ключ то можно ездить. Можно ли как нибуть сделать чтобы не выкидывало с фракционных и который на нубореспе машин?
[pwn] if(PlayerInfo[playerid][pCarKey] != vehicleid)
{
if(PlayerInfo[playerid][pAdmin] > 0)
{
SendClientMessage(playerid,COLOR_LIGHTGREEN,"(( Т.к. вы админ, вы можете ехать на авто! ))");
}
else
{
SendClientMessage(playerid,COLOR_LIGHTGREEN,"Нет ключа от автомобиля!");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
}[/pwn]

SPACE_MANДата: Четверг, 18.04.2013, 20:37 | Сообщение # 424
Новенький
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Почему если ставить вместо (i, PHealth+1), (i, PHealth+0.5) то реген не работает?
Код
forward ReHealth();
public ReHealth()
{
    new Float:PHealth;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
            GetPlayerHealth(i, PHealth);
            if(PHealth < 100) SetPlayerHealth(i, PHealth+1);
    }
    return true;
}



Смерть SPACE_MAN-у
WeddewДата: Четверг, 18.04.2013, 21:25 | Сообщение # 425
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Цитата (Cruiser)
Все что я писал это все строки из одного диалога, мне надо чтобы можно было вытащить email и пароль в одном диалоге, это возможно? или просто для того чтобы вывести надо обязательно создавать отдельный паблик?

Вы в любом случае выведите. Здесь работает метод FILO (First in last out) или иначе говоря stack (если не понятно что это за термины, то читайте статьи в wikipedia).




www.weddew-shop.ru
Nikita01041997Дата: Пятница, 19.04.2013, 00:20 | Сообщение # 426
Новенький
Группа: Пользователи
Сообщений: 74
Награды: 0
Город: Алейск
Репутация: -37
Замечания: 0%
Статус:
Weddew, ещё раз вставил и вот что у меня получилось:
[pwn]C:\Users\Íèêèòà\Desktop\Genix Role Play version 7.0 FINAL\gamemodes\GenixRp.pwn(25433) : error 032: array index out of bounds (variable "coronoscar")
C:\Users\Íèêèòà\Desktop\Genix Role Play version 7.0 FINAL\gamemodes\GenixRp.pwn(28051) : error 032: array index out of bounds (variable "coronoscar")
C:\Users\Íèêèòà\Desktop\Genix Role Play version 7.0 FINAL\gamemodes\GenixRp.pwn(28055) : warning 225: unreachable code
C:\Users\Íèêèòà\Desktop\Genix Role Play version 7.0 FINAL\gamemodes\GenixRp.pwn(67088) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
3 Errors.[/pwn]
Вставил как вы писали код и в канец мода вставил код который писал geryy! Объясните что не так?



люблю этот сайт
WeddewДата: Пятница, 19.04.2013, 00:28 | Сообщение # 427
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Цитата (Nikita01041997)
Вставил как вы писали код и в канец мода вставил код который писал geryy! Объясните что не так?

Вам писали пример, а не готовый код. Перед тем как что-то вставлять в свой мод, читайте внимательно то, что Вам пишут.




www.weddew-shop.ru


Сообщение отредактировал Weddew - Пятница, 19.04.2013, 00:28
Nikita01041997Дата: Пятница, 19.04.2013, 08:46 | Сообщение # 428
Новенький
Группа: Пользователи
Сообщений: 74
Награды: 0
Город: Алейск
Репутация: -37
Замечания: 0%
Статус:
Weddew, я внимательно прочитал, поменял всё на своё, всё ровно не получается!

Добавлено (19.04.2013, 08:46)
---------------------------------------------
спасибо geryy! Всё получилось!


люблю этот сайт
[[[WampiR]]]Дата: Пятница, 19.04.2013, 12:00 | Сообщение # 429
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Ну подскажите тут не как нельзя сделать чтобы выкидывало только с тех машин для которых требуется ключ?
[pwn]1
2
3
4
5
6
7
8
9
10
11
12
13
if(PlayerInfo[playerid][pCarKey] != vehicleid)
{
if(PlayerInfo[playerid][pAdmin] > 0)
{
SendClientMessage(playerid,COLOR_LIGHTGREEN,"(( Т.к. вы админ, вы можете ехать на авто! ))");
}
else
{
SendClientMessage(playerid,COLOR_LIGHTGREEN,"Нет ключа от автомобиля!");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
}[/pwn]

WeddewДата: Пятница, 19.04.2013, 12:14 | Сообщение # 430
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Цитата (|||WampiR|||)
Ну подскажите тут не как нельзя сделать чтобы выкидывало только с тех машин для которых требуется ключ?

Смотря что храниться в элементе pCarKey. Если храниться ID транспорта, то условие должно быть следующим:
[pwn]public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
if(PlayerInfo[playerid][pCarKey] != vehicleid && PlayerInfo[playerid][pCarKey2] != vehicleid)
{
// Действие, которое будем совершать с игроком.
}
}
return true;
}[/pwn]




www.weddew-shop.ru
Nikita01041997Дата: Пятница, 19.04.2013, 12:14 | Сообщение # 431
Новенький
Группа: Пользователи
Сообщений: 74
Награды: 0
Город: Алейск
Репутация: -37
Замечания: 0%
Статус:
Цитата (|||WampiR|||)
выкидывало только с тех машин для которых требуется ключ?

вот это вставь:
[pwn]if(newcar >= "переменная для машины" && newcar <= "переменная для машины") { }[/pwn]



люблю этот сайт
WeddewДата: Пятница, 19.04.2013, 12:36 | Сообщение # 432
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Цитата (|||WampiR|||)
Ну подскажите тут не как нельзя сделать чтобы выкидывало только с тех машин для которых требуется ключ?

Прочитал внимательнее, тут есть несколько вариантов:
1) Ограничить ID`ы транспорта, т. е. проверку делать в пределах ID`ов с ключами. (Вариант не оптимальный).
Пример:
[pwn]public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid >= Начало границы && vehicleid <= Конец границы)
{
if(PlayerInfo[playerid][pCarKey] != vehicleid && PlayerInfo[playerid][pCarKey2] != vehicleid)
{
// Действие, которое будем совершать с игроком.
}
}
}
return true;
}[/pwn]
2) Объявить массив для всех транспортов, который будет указывать, требуется ли ключ для данного авто или нет. (Самый оптимальный вариант на мой взгляд).
Пример:

В начало:
[pwn]new lockedvehicle[MAX_VEHICLES];[/pwn]

В то место, где происходит подгрузка личного транспорта:
[pwn]new tmpvehicle = CreateVehicle(...);
lockedvehicle[tmpvehicle] = true;[/pwn]

Сама проверка:
[pwn]public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(lockedvehicle[vehicleid] && PlayerInfo[playerid][pCarKey] != vehicleid && PlayerInfo[playerid][pCarKey2] != vehicleid)
{
// Действие, которое будем совершать с игроком.
}
}
return true;
}[/pwn]




www.weddew-shop.ru
AnthonyДата: Пятница, 19.04.2013, 13:17 | Сообщение # 433
Уверенный в себе
Группа: Publishers
Сообщений: 211
Награды: 4
Замечания: 0%
Статус:
Цитата (Weddew)
Удаление по окончанию движения нужно делать в callback`e OnObjectMoved.

В общем не вышло с этим, наверно из за того что объект создается при вводе команды и сразу начинает двигаться "object1".
Можно ли сделать проверку на то что объект находиться рядом другого?

Добавлено (19.04.2013, 13:17)
---------------------------------------------
[off]рядом другого объекта[/off]



WeddewДата: Пятница, 19.04.2013, 13:17 | Сообщение # 434
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Цитата (Vsevolod)
В общем не вышло с этим, наверно из за того что объект создается при вводе команды и сразу начинает двигаться "object1".

Объект случайно не динамический?




www.weddew-shop.ru
[[[WampiR]]]Дата: Пятница, 19.04.2013, 14:03 | Сообщение # 435
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Почему в SAMP'E некоторые буквы вообще поидеи английские а их показывает по русски? Чаще всего первая буква предложения.
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Страница 29 из 151«122728293031150151»
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM