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

 



 
        
[Include] RemoveBuilding (2)
JasonGordon 24.05.2017 23:48
[SA-MP] Hosted Tab (116)
DieSeL 17.05.2017 17:33
Физрук (15)
Lanablogger1 16.05.2017 16:00
 





Рекомендуем:
Добавить 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
Страница 22 из 152«122021222324151152»
Модератор форума: AXE, Weddew 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Вопросы и ответы по GTA SAMP [от 19.03.2013]
WeddewДата: Вторник, 19.03.2013, 15:11 | Сообщение # 1
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 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
[[[WampiR]]]Дата: Пятница, 12.04.2013, 13:37 | Сообщение # 316
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Vsevolod, Попробуйте так:[pwn]if(PlayerInfo[playerid][pAdmin] > 0[/pwn]

Добавлено (12.04.2013, 13:37)
---------------------------------------------
Vsevolod, Вот так точнее. У меня так стоит [pwn]if(PlayerInfo[playerid][pAdmin] < 0)[/pwn]

SaibotДата: Пятница, 12.04.2013, 13:50 | Сообщение # 317
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
Диалоговое окно:

public OnPlayerCommandText(playerid, cmdtext[])
[pwn]if(strcmp(cmd,"/donat",true)==0)
{
if(IsPlayerConnected(playerid))
{
ShowPlayerDialog(playerid,1993,DIALOG_STYLE_LIST,"{3366ff}Донат","Деньги,"Далее","Отмена");
}
return 1;
}[/pwn]
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
[pwn]if(dialogid == 1993)
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid,1993,DIALOG_STYLE_MSGBOX, "{3366ff}Деньги","бла бла бла", "Назад", "");
return 0;
}[/pwn]
Как зделать чтоб когда кто-то нажимал кнопку (назад),ему опять показывало окно /donat.

[[[WampiR]]]Дата: Пятница, 12.04.2013, 14:00 | Сообщение # 318
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Saibot, К вот этому [pwn]
if(dialogid == 1993)
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid,1993,DIALOG_STYLE_MSGBOX, "{3366ff}Деньги","бла бла бла", "Назад", "");
return 0;
}[/pwn]

Добавь вниз вот это:
[pwn] else if(dialogid == 1994)
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid,1993,DIALOG_STYLE_LIST,"{3366ff}Донат","Деньги,"Далее","Назад");
}
}
}[/pwn]
И замени ид диалога вот здесь: [pwn]ShowPlayerDialog(playerid,1993,DIALOG_STYLE_MSGBOX, "{3366ff}Деньги","бла бла бла", "Назад", ""); [/pwn] На 1994

WeddewДата: Пятница, 12.04.2013, 14:33 | Сообщение # 319
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Vsevolod,
Цитата (Vsevolod)
if(PlayerInfo[playerid][pAdmin] > 1)


[pwn]if(PlayerInfo[playerid][pAdmin] >= 1)[/pwn]




www.weddew-shop.ru
MyatKOДата: Пятница, 12.04.2013, 14:35 | Сообщение # 320
Уверенный в себе
Группа: Продвинутые
Сообщений: 156
Награды: 2
Город: Казань
Репутация: 121
Замечания: 0%
Статус:
Цитата (Vsevolod)
В общем сделал проверку на администратора а она не работает. (( if(PlayerInfo[playerid][pAdmin] > 1) return 1;

Не работает, разумеется. Ты пишешь: если(УровеньАдминистратора больше 1)
Получается, что администратор не сможет сесть в машину. Если же ты хочешь сделать так, чтобы мог, то нужно использовать: if(PlayerInfo[playerid][pAdmin] < 1) return 1; аля если(УровеньАдминистратора меньше 1).

Цитата
if(PlayerInfo[playerid][pAdmin] < 0)

По этой проверке обычный игрок сесть сможет, ибо у него 0 уровень администратора, но возможно сделать так: if(PlayerInfo[playerid][pAdmin] <= 0) аля если(УровеньАдминистратора меньше или равен 0).

P.S. или я неправильно понял задание?



Сообщение отредактировал MyatKO - Пятница, 12.04.2013, 14:40
[[[WampiR]]]Дата: Пятница, 12.04.2013, 14:36 | Сообщение # 321
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
MyatKO, Я это же писал ему.
AnthonyДата: Пятница, 12.04.2013, 16:10 | Сообщение # 322
Уверенный в себе
Группа: Publishers
Сообщений: 211
Награды: 4
Замечания: 0%
Статус:
Цитата (MyatKO)
if(PlayerInfo[playerid][pAdmin] <= 0)

Ага вот эта сработала спасибо!!:)




SaibotДата: Пятница, 12.04.2013, 17:05 | Сообщение # 323
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
[[[WampiR]]], Спасибо!!!
Nikita01041997Дата: Пятница, 12.04.2013, 19:45 | Сообщение # 324
Новенький
Группа: Пользователи
Сообщений: 74
Награды: 0
Город: Алейск
Репутация: -37
Замечания: 0%
Статус:
[[[WampiR]]], pawno закрывается диологи не повторяются, в чём беда, код на 21 странице!


люблю этот сайт
[[[WampiR]]]Дата: Пятница, 12.04.2013, 19:55 | Сообщение # 325
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Nikita01041997, Поставил не так значит. Вставь в начало public. Скорей всего неправильно закрытый public
zatypokДата: Пятница, 12.04.2013, 20:07 | Сообщение # 326
Новенький
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Как при игрока с сервера выходе убирать его личное авто , вот код создания авто при входе
[pwn]for(new idx = 0; idx < SIMPLECARS; idx++)
{
if(GetString(SimpleCar[idx][cName],pn(playerid, 1)))
{
AddStaticVehicleEx(SimpleCar[idx][cModel], SimpleCar[idx][cCar_x], SimpleCar[idx][cCar_y], SimpleCar[idx][cCar_z]+1, SimpleCar[idx][cCar_a], -1, -1, 6000);
new strings[256];
new nomer[4];
format(strings,sizeof(strings),"ID: %d\nÂëàäåëåö: %s",SimpleCar[idx][cUID],SimpleCar[idx][cName]);
nomer[idx] = CreateDynamic3DTextLabel(strings, 0xBFF600FF, SimpleCar[idx][cCar_x], SimpleCar[idx][cCar_y], SimpleCar[idx][cCar_z]+1, 15.0, INVALID_PLAYER_ID,idx,0,-1,-1,-1,15.0);
}
}[/pwn]

Добавлено (12.04.2013, 20:07)
---------------------------------------------

Цитата (zatypok)
Как при игрока с сервера выходе убирать его личное авто , вот код создания авто при входе

При выходе игрока с сервера* тупанул что то :D

WeddewДата: Пятница, 12.04.2013, 21:48 | Сообщение # 327
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (zatypok)
Как при игрока с сервера выходе убирать его личное авто , вот код создания авто при входе

Присваивайте ID транспорта переменной, после выхода игрока удаляйте транспорт по этой переменной.




www.weddew-shop.ru
zatypokДата: Пятница, 12.04.2013, 22:31 | Сообщение # 328
Новенький
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Цитата (Weddew)
ID транспорта переменной

Покажи на примере плиз

SPACE_MANДата: Пятница, 12.04.2013, 23:37 | Сообщение # 329
Новенький
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Регенерация здоровья, как вообще её сделать?
этот код например у меня не работает (не компилируется)

Код
SetTimer("RegHealth", 60000, 1);
   
forward RegHealth();
public RegHealth()
{
    new Float:PHealth;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        GetPlayerHealth(i, PHealth);
        if(PHealth < 100) SetPlayerHealth(playerid, PHealth+0.5);
    }
    return true;
}



Смерть SPACE_MAN-у
[[[WampiR]]]Дата: Пятница, 12.04.2013, 23:50 | Сообщение # 330
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Подскажите как сделать чтобы при подаче заявки на смену ника администрации выводилось окно с двумя кнопками: Одна сменить ник 2 отказать.(Ну и само собой если админ нажмет сменить то игроку сменится ник) Вот мой
[cut noguest=Код][pwn] if(dialogid==1996)
{
if(response==1)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,9943,DIALOG_STYLE_INPUT,"Подача заявки на смену ника","Ваш ник должен подходить формату Имя_Фамилия\nВ ином случае Вам будет отказано в смене ника","Сменить","Отмена");
format(string,sizeof(string),"akk/%s.ini",inputtext);
if(fexist(string))
{
SendClientMessage(playerid,COLOR_GREY,"Такое имя уже есть на сервере!");
return true;
}
if(PlayerInfo[playerid][pReport] > 0)
{
SendClientMessage(playerid,COLOR_WHITE,"Подождите некоторое время. Команду можно использовать раз в 2 минуты.");
return 1;
}
format(WantNickChange[playerid],MAX_PLAYER_NAME,"%s",inputtext);
GetPlayerName(playerid, sendername, sizeof(sendername));
new msg[] = "[Заявка на смену ника]\nИгрок {FFFFFF}%s[%d]\n{FF6347}просит сменить ник на {FFFFFF}%s";
format(string, 500, msg, sendername,playerid,(inputtext));
ABroadCast(COLOR_LIGHTRED,string,1);
new str[400];
new line1[60] = "Заявка успешно отправлена.";
format(str,sizeof(str),"%s", line1);
ShowPlayerDialog(playerid,573, 0, "{FFFFFF}Заявка на смену ника",str,"Выход","");
PlayerInfo[playerid][pReport] = 120;
return true;
}
}[/pwn][/cut]
Вот сама команда меняющая ники:
[cut noguest=Клик][pwn] else if(strcmp(cmd, "/setname", true) == 0)
{
new newname[128];
new stringo[128];
if (PlayerInfo[playerid][pAdmin] >= 9)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_LIGHTRED, "Введите: /setname [id]");
giveplayerid = ReturnUser(tmp);
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
{
format(stringo,sizeof(stringo),"akk/%s.ini",newname);
if(fexist(stringo)) return SendClientMessage(playerid,COLOR_GREY,"Такое имя уже есть на сервере!");
GetPlayerName(playerid, sendername, sizeof(sendername));
if(strlen(WantNickChange[giveplayerid]) < 3) return SendClientMessage(playerid,-1,"Этот игрок не хочет менять ник");
nick[giveplayerid] = 1;
format(changenam,sizeof(changenam),"%s",WantNickChange[giveplayerid]);
format(stringo,sizeof(stringo),"akk/%s.ini",WantNickChange[giveplayerid]);
dini_Create(stringo);
SendClientMessage(giveplayerid,COLOR_LIGHTBLUE,"Админ сменил вам ник. В течении пяти секунд изменения вступят в силу");
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Вы сменили ник игроку. В течении пяти секунд изменения всупят в силу");
namechan[giveplayerid] = 5;

/* format(stringo,sizeof(stringo),"akk/%s.ini",newname);
dini_Create(stringo);
format(string,sizeof(string),"akk/%s.ini",giveplayer);
new File = iniOpen(string);
iniGet(File,"Key",pass);
iniClose(File);
SetPlayerName(giveplayerid, newname);
OnPlayerUpdate_GF(giveplayerid);
File = iniOpen(stringo);
iniSet(File,"Key",pass);
iniClose(File);
format(string,sizeof(string),"akk/%s.ini",giveplayer);
dini_Remove(string);*/
SaveAccounts();

}
}
else if(giveplayerid == INVALID_PLAYER_ID){ SendClientMessage(playerid, COLOR_GREY, "Нет такого игрока!");}
}
return true;
}[/pwn][/cut]

Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Страница 22 из 152«122021222324151152»
Поиск:





 


 


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