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

 



 
          





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





Последние Файлы 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
MerbulДата: Пятница, 07.06.2013, 21:55 | Сообщение # 976
Новенький
Группа: Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Почему в время Регистраций игрок падает И перед спавном тоже падает ? С высоты в ЛВ

Добавлено (07.06.2013, 21:55)
---------------------------------------------
Из-за чего может лагать сервер включаю мод захожу сервер лагает... Сменил плагин streamer мод не включается... Вставляю свой стреимер работает... Свой стример 2.5 я ставил 2.6 мод не включается... suicide2 wall

GeryyДата: Суббота, 08.06.2013, 01:41 | Сообщение # 977
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (Merbul)
Свой стример 2.5 я ставил 2.6 мод не включается..

Надо мод перекомпиллировать под новый инклюд стриммера, а не просто заменять файлы в папке плагин.



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
MerbulДата: Суббота, 08.06.2013, 15:20 | Сообщение # 978
Новенький
Группа: Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Помогите очень сильно лагает сервер... suicide2
DemonoloGДата: Суббота, 08.06.2013, 16:42 | Сообщение # 979
Постоялец
Группа: Продвинутые
Сообщений: 314
Награды: 2
Репутация: 178
Замечания: 0%
Статус:
Merbul, причины таковы могут быть:
1. Быдлокод
2. Плохой хостинг
3. Если стоит просто на компе своем, то не хватает оперативки
4. Не хватает скорости

MerbulДата: Суббота, 08.06.2013, 19:18 | Сообщение # 980
Новенький
Группа: Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
DoKAtemar
Вот оптимизировал код ...
Не на хостинге...
Опиративка 2 Гб.... Все равно лагает...

WeddewДата: Суббота, 08.06.2013, 20:36 | Сообщение # 981
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (Merbul)
Вот оптимизировал код ...

Скиньте пример вашей оптимизации. Я глубоко сомневаюсь, что вы его оптимизировали.




www.weddew-shop.ru
MerbulДата: Воскресенье, 09.06.2013, 11:07 | Сообщение # 982
Новенький
Группа: Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Цитата
Скиньте пример вашей оптимизации. Я глубоко сомневаюсь, что вы его оптимизировали.

Как я скину я удалил #pragma tabsize 0 потом исправлял варнинги...

GeryyДата: Воскресенье, 09.06.2013, 11:57 | Сообщение # 983
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (Merbul)
Как я скину я удалил #pragma tabsize 0 потом исправлял варнинги...

Исправление варингов и ошибок конечно влияет на правильность выполнения кода, но это не оптимизация.



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
WeddewДата: Воскресенье, 09.06.2013, 13:35 | Сообщение # 984
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (Merbul)
Как я скину я удалил #pragma tabsize 0 потом исправлял варнинги...

Это не оптимизация, а соблюдение табуляции.




www.weddew-shop.ru
MerbulДата: Воскресенье, 09.06.2013, 14:42 | Сообщение # 985
Новенький
Группа: Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Аа... У меня такой баг захожу на сервер регистрируюсь потом выбираю пол.. Нажимаю на Мужской ... И камера так стоит не идет на выбор скина... Как это можно исправить?
massaoffДата: Воскресенье, 09.06.2013, 20:59 | Сообщение # 986
Местный
Группа: I'm V.I.P.
Сообщений: 535
Награды: 4
Город: Березники
Репутация: 187
Замечания: 40%
Статус:
Цитата (Merbul)
Аа... У меня такой баг захожу на сервер регистрируюсь потом выбираю пол.. Нажимаю на Мужской ... И камера так стоит не идет на выбор скина... Как это можно исправить?

Скиньте код этапа регистрации при выборе пола и далее.
М.б. диалог выбора пола отправляет на другой не существующий, либо кривой код.



- Учимся рипать сайт
- Memfiso-RPG мод
Оказываю платную помощь, в создании и редактировании(доработка, исправление багов, реализация ваших идей) ваших модов/скриптов выполненных в pawno.
Обращайтесь в скайп: massaoff РАБОТАЮ ТОЛЬКО С 50% ПРЕДОПЛАТОЙ!

kap9822Дата: Понедельник, 10.06.2013, 15:05 | Сообщение # 987
Новенький
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Кто может подсказать как очистить дома от игроков?Я скачал сервер,настроил но захожу на сервер и не могу дом купить.Все забиты другими людьми.
WeddewДата: Понедельник, 10.06.2013, 15:24 | Сообщение # 988
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
kap9822, экстрасенсы в отпуске. Архив мода в студию.



www.weddew-shop.ru
SaibotДата: Вторник, 11.06.2013, 09:31 | Сообщение # 989
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
Я хотел зделать так чтобы когда на ДМ-Зоне игрок убивал последнего игрока зона закрывалась.Но не получаеться.
[cut noguest=/joinz][pwn]if(strcmp(cmd, "/joinz", true) == 0) // Войти на зону
{
if(GetPVarInt(playerid,"Jzona") > gettime()) return SendClientMessage(playerid,COLOR_GRAD2,"Команда доступна раз в 5 секунд.");
if(PlayerInfo[playerid][pWanted] > 0) return SendClientMessage(playerid,COLOR_GRAD2,"Вы находитесь в розыске.");
if(PlayerInfo[playerid][pJailed] > 0) return SendClientMessage(playerid,COLOR_GRAD2,"Не доступно, вы находитесь в заключении.");
if(PlayerInfo[playerid][pLevel] < 1) return SendClientMessage(playerid,COLOR_GRAD2,"Вам необходимо иметь 1 уровень, для участия на ДМ зоне.");
if(GetPlayerInterior(playerid) != 0) return SendClientMessage(playerid,COLOR_GRAD2,"Не доступно в интерьере.");
if(DmZona[playerid] < 1) return SendClientMessage(playerid,COLOR_GRAD2,"Зона не создана.");
if(JP == maxplayerss) return SendClientMessage(playerid,COLOR_GRAD2,"Зона заполнена.");
JP++;
Nazone[playerid] = 1;
if(zona == 1)
{
if(JP % 1 == 0)
{
new rad = random(sizeof(RandomBattlefield));
SetPlayerPos(playerid,RandomBattlefield[rad][0],RandomBattlefield[rad][1],RandomBattlefield[rad][2]);
SetPlayerInterior(playerid, 10);
SetPlayerVirtualWorld(playerid,99);
SetPlayerColor(playerid, 0xDC143CFF);
SetPlayerHealth(playerid, 100);
ZonaKill[playerid] = 1;
SetPlayerArmour(playerid,0);
}
}
if(zona == 2)
{
if(JP %1 == 0)
{
new rad = random(sizeof(RandomKickStar));
SetPlayerPos(playerid,RandomKickStar[rad][0],RandomKickStar[rad][1],RandomKickStar[rad][2]);
SetPlayerInterior(playerid,14);
SetPlayerColor(playerid, 0xDC143CFF);
SetPlayerHealth(playerid, 100);
ZonaKill[playerid] = 1;
SetPlayerVirtualWorld(playerid,99);
SetPlayerArmour(playerid,0);
}
}
if(zona == 3)
{
if(JP %1 == 0)
{
new rad = random(sizeof(Aircraft));
SetPlayerPos(playerid,Aircraft[rad][0],Aircraft[rad][1],Aircraft[rad][2]);
SetPlayerInterior(playerid, 9);
SetPlayerColor(playerid, 0xDC143CFF);
SetPlayerHealth(playerid, 100);
ZonaKill[playerid] = 1;
SetPlayerVirtualWorld(playerid,99);
SetPlayerArmour(playerid,0);
}
}
if(zona == 4)
{
if(JP %1 == 0)
{
new rad = random(sizeof(RandomBloodbowl));
SetPlayerPos(playerid,RandomBloodbowl[rad][0],RandomBloodbowl[rad][1],RandomBloodbowl[rad][2]);
SetPlayerInterior(playerid,15);
SetPlayerColor(playerid, 0xDC143CFF);
SetPlayerHealth(playerid, 100);
ZonaKill[playerid] = 1;
SetPlayerVirtualWorld(playerid,99);
SetPlayerArmour(playerid,0);
}
}
if(zona == 5)
{
if(JP %1 == 0)
{
new rad = random(sizeof(houseofDeath));
SetPlayerPos(playerid,houseofDeath[rad][0],houseofDeath[rad][1],houseofDeath[rad][2]);
SetPlayerInterior(playerid,5);
SetPlayerColor(playerid, 0xDC143CFF);
SetPlayerHealth(playerid, 100);
ZonaKill[playerid] = 1;
SetPlayerVirtualWorld(playerid,99);
SetPlayerArmour(playerid,0);
}
}
if(zona == 6)
{
if(JP %1 == 0)
{
new rad = random(sizeof(MeatPlant));
SetPlayerPos(playerid,MeatPlant[rad][0],MeatPlant[rad][1],MeatPlant[rad][2]);
SetPlayerInterior(playerid,1);
SetPlayerColor(playerid, 0xDC143CFF);
SetPlayerHealth(playerid, 100);
ZonaKill[playerid] = 1;
SetPlayerVirtualWorld(playerid,99);
SetPlayerArmour(playerid,0);
}
}
SafeResetPlayerWeapons(playerid);
ServerGivePlayerWeapons(playerid, zgun, 9999);
SetTimer("JoinzTimer", 5000, 0);
SendClientMessage(playerid, COLOR_GREY, "Вы вошли в зону");
return true;
}[/pwn][/cut]

[cut noguest=public OnPlayerDeath(playerid, killerid, reason)][pwn]if(ZonaKill[playerid] == 601)
{
JP--;
ZonaKill[playerid] = 600;
if(JP == 1)
{
format(string, 256, "AndroiD: %s[%d] выиграл турнир в ДМ-зоне.", killername, killerid);
SendClientMessageToAll(COLOR_LIGHTRED, string);
ZonaKill[killerid] = 600;
SpawnPlayer(killerid);
zona = 0;
JP = 0;
maxplayerss = 0;
zgun = 0;
}
return 1;
}[/pwn][/cut]

CruiserДата: Вторник, 11.06.2013, 11:23 | Сообщение # 990
Новенький
Группа: Пользователи
Сообщений: 25
Награды: 0
Город: Армавир
Репутация: 0
Замечания: 0%
Статус:
Вот такие ошибки выскакивают в server_log:

Код
[debug] Server crashed while executing samp.amx
[debug] AMX backtrace:
[debug] #0 native cache_get_field_content () [00c393e0] from mysql.so
[debug] #1 000822f8 in public LoginCallback (0x00000000, 0x007a7a30) from samp.amx


паблик logincallback отвечает за загрузку акк. могу ли я не правильно делать функцию: cache_get_field_content

у меня все вот так идет:

Код
cache_get_field_content(0, "Level", maximum), PlayerInfo[i][pLevel] = strval(maximum);
     cache_get_field_content(0, "AdminLevel", maximum), PlayerInfo[i][pAdmin] = strval(maximum);
     cache_get_field_content(0, "DonateRank", maximum), PlayerInfo[i][pDonateRank] = strval(maximum);
     cache_get_field_content(0, "DonateRankTime", maximum), PlayerInfo[i][pDonateRankTime] = strval(maximum);
     cache_get_field_content(0, "UpgradePoints", maximum), PlayerInfo[i][gPupgrade] = strval(maximum);
     cache_get_field_content(0, "ConnectedTime", maximum), PlayerInfo[i][pConnectTime] = strval(maximum);


И там еще после этого всего проверки разные, приветствия... ну вообще почти как везде выглядит паблик OnPLayerLogged

Добавлено (11.06.2013, 11:23)
---------------------------------------------
И еще, как лучше будет:

Код
public OnPlayerLogin(i, password[])
{
     new str[256];
     format(str, sizeof(str),"SELECT * FROM `Accounts` WHERE `Name` = '%s' AND `Key` = '%s'", Name(i), password);
     mysql_function_query(connectionHandle, str, true, "LoginCallback","ds", i, password);
     return 1;
}


или через stock? думаю смысл функции понятен, вызывается диалогом когда игрок вводит пароль

Поиск:





 


 


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