Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Часто задаваемые вопросы - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Тема закрыта

Часто задаваемые вопросы

#1
Пользователь офлайн   Mike 

  • Администратор
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Я новичок в pawn, с чего начать изучение?

Я сам начинал со вставки готовых скриптов в моды, и так постепенно научился, но рекомендую читать уроки:
Урок №1
Урок №2
Урок №3
Урок №4
Урок №5
Автовызываемые функции

А так же прочитать учебник: перейти и прочитать


Как обновить includes?

• Качаете с офф. сайта сервер, и меняете папку pawno Вот и все!
p.s. когда открывать мод будете, открывайте его через pawno/pawno.exe


Что обозначает каждая папка?

• Папка "Filterscripts" - в этой папки находятся все скрипты которые можно подключить к вашему серверу, подключаются они через server.cfg (напротив filterscripts написать название скрипта).
• Папка "Gamemodes" - в ней расположены ваши игровые режимы(моды), менять их можно в server.cfg (напротив gamemode0 прописать название мода).
• Папка "include" - там находятся обычно 2 стандартных инклюда gl_common.inc(функции) и gl_spawns.inc(рандомный спавн).
• Папка "npcmodes" - тут находятся все файлы, которые относятся к NPC ботам(скрипты и записи).
• Папка "pawno" - тут находятся сам компилятор и все инклюды(в папке includes) игрового сервера.
• Папка "plugins" - тут находятся все плагины которые подключены к серверу(например streamer), подключаются они в server.cfg (нужно дописать plugins название плагина).
• Папка "scriptfiles" - тут находятся все конфигурационные файлы домов/бизнесов, ну и вообще все файлы, которые сохраняются/грузятся.


Как сделать FS?

Заходите в pawno/pawno.exe, нажимаете на "New", все что появилось в коде, удаляете, пишите вверху:
#include <a_samp>

и начинаете писать свой скрипт, все public'и такие же что и в моде, кроме OnGameModeInit / OnGameModeExit, вместо них:
OnFilterScriptInit 
OnFilterScriptExit



Как из pwn сделать amx?

Чтобы из pwn сделать amx нужно открыть pawno/pawno.exe(это компилятор, с помощью которого вы будете компилировать мод из pwn в amx),
после открываете свой мод, и нажимаете F5.


Как убрать бонусы, которые мне даются при трюках...?

В public OnGameModeInit вставляем:
EnableStuntBonusForAll(false);



У меня имеется инклюд, но при компиляции пишет что не найден, что делать?

Зайдите в pawno/pawno.exe и с помощью него откройте свой мод и скомпилируйте(убедитесь, что инклюд находится в pawno/includes).


Как сделать бесконечный азот?

Находите public OnPlayerKeyStateChange и туда вставляете:
if( newkeys == 1 || newkeys == 9 || newkeys == 33 && oldkeys != 1 || oldkeys != 9 || oldkeys != 33) 
	{ 
	new Car = GetPlayerVehicleID(playerid), Model = GetVehicleModel(Car); 
	switch(Model) 
	{ 
	case 446,432,448,452,424,453,454,461,462,463,468,471,430,472,449,473,481,484,493,495,509,
510,521,538,522,523,532,537,570,581,586,590,569,595,604,611: return 0; 
	} 
	AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); 
	} 
	return 1; 



Как при убийстве давай деньги?

Найдите public OnPlayerDeath и добавьте туда:
GivePlayerMoney(killerid,5000); // (5000 Это сума)
// ну а если сделать -5000 тогда будут за убийство отбирать



Как дать игроку деньги при начале игры?

Находите public OnPlayerConnect(playerid) и вставляете туда:
GivePlayerMoney(playerid,5000); // 5000 как вы уже поняли сумма



Как изменить дальновидность ника?

Находите public OnGameModeInit и туда вставляете:
SetNameTagDrawDistance(200.0); // 200 - расстояние
// либо если у вас это уже есть, просто измените значение



Как сделать анимацию при выборе скина?

Находите public OnPlayerRequestClass и туда вставляете:
ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,
-1);



Отображение в чат вход/выход игроков, как такое сделать?

Сначало находите public OnPlayerConnect(playerid) и туда вставляете:
new name[MAX_PLAYER_NAME],string[128];
GetPlayerName(playerid,name,sizeof(name));
format(string,128,"%s зашел на серв",name);
SendClientMessageToAll(-1,string);

Потом ищите public OnPlayerDisconnect(playerid, reason) и туда вставляете:
new name[MAX_PLAYER_NAME],string[128];
GetPlayerName(playerid,name,sizeof(name));
switch(reason)
{
case 0:format(string,128,"%s вылетел с серва",name);
case 1:format(string,128,"%s вышел с серва",name);
case 2:format(string,128,"%s кикнут/забанен",name);
}
SendClientMessageToAll(-1,string);



Как перевести мод на актуальную версию клиента(на данный момент 0,3д)?

Сначало заходим на офф. сайт и качаем оттуда сервер: http://sa-mp.com/download.php
Оттуда качаем сервер какой вам нужен(Windows/Linux)
Windows - SA-MP 0.3d R2 Windows Server
Linux - SA-MP 0.3d R2 Linux Server (x86)
После скачивания, меняем файлы с расширением .exe а так же папку pawno
Готово!


Как вставить объекты из МТА в SAMP?

Сначало качаем программу Super Converter
После открываем ее и с помощью нее открываем вашу карту сделанную в мта:
Обычное расположение: C/Programm Files/MTA San Andreas/Server/Mods/deathmatch/resources/ваша папка/ваш файл.map
Нажимаем конвертировать и готово, после открываем ваш мод, находим public OnGameModeInit и вставляем туда ваши объекты.


Как подключить include?

Сначало вы должны поставить ваш инклюд в папку pawno/includes, после чего, открыть ваш мод(желательно
pawno/pawno.exe) и прописать вверху мода #include <название>, компилируем мод, готово!


Как подключить filtersctipt?

Сначало поставьте ваш filtersctipt в папку filtersctipts, и в server.cfg пропишите напротив
filtersctipts название_вашего_скрипта
Готово!


Как подключить плагин?

Для начала поставьте ваш плагин в папку plugins(если ее нету, создайте). После откройте server.cfg
и пропишите ниже plugins название_плагина.


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

Все просто, в OnPlayerDeath(playerid, killerid, reason) вы добавляете следующее:
SendDeathMessage(killerid, playerid, reason);



Куда вставлять команды?

Все команды сервера распологаются в public OnPlayerCommandText.


Как на команды поставить проверки на фракции/работы?

Делается это легко, вот например ваша команда:
if(strcmp(cmd, "/test", true) == 0) // 
{
ShowPlayerDialog(playerid,6545,DIALOG_STYLE_INPUT,"Test","test"
,"ok","Cancel");
}


И чтобы так сказать привязать команду, ставите соответствубщую проверку:
if(PlayerInfo[playerid][pLeader] != id_вашей_фракции || PlayerInfo[playerid][pMember] != id_вашей_фракции) return SendClientMessage(playerid, COLOR_WHITE, "Вы не состоите в Название фракции"); // Проверка на фракцию
if(PlayerInfo[playerid][pJob] != id_вашей_работы) return SendClientMessage(playerid, COLOR_WHITE, "Вы не Название работы"); // Проверка на работу


Получится так:
if(strcmp(cmd, "/test", true) == 0) // 
{
if(PlayerInfo[playerid][pLeader] != 1 || PlayerInfo[playerid][pMember] != 1) return SendClientMessage(playerid, COLOR_WHITE, "Вы не состоите в Полиции"); // 
ShowPlayerDialog(playerid,6545,DIALOG_STYLE_INPUT,"Test","test"
,"ok","Cancel");
}




Как удалить стандартные объекты в Gta Sa и вставить код в samp?

Для начала вы читаете это: перейти, после готовый код, вы вставляете в public OnPlayerConnect(playerid)
получится примерно так:
public OnPlayerConnect(playerid)
{
RemoveBuildingForPlayer(playerid, 4024, 1479.8672, -1790.3984, 56.0234, 0.25);
RemoveBuildingForPlayer(playerid, 4026, 1497.7969, -1543.7109, 17.5547, 0.25);
RemoveBuildingForPlayer(playerid, 4031, 1460.0547, -1725.9922, 9.2031, 0.25); 
// ...




Как убрать стандартные желтые пикапы с сервера?

Найдите в своем моде public OnGameModeInit и туда вставьте:
DisableInteriorEnterExits();




Как изменить названия рангов?

Открываете свой мод, с помощью ctrl + f находите название ранга(которого хотите изменить) и везде, где нашли, меняете на свое.


У меня прибавляются деньги, после отнимаются, что это и как исправить?

Если вы столкнулись с такой проблемой, значит у вас стоит античит, а там где вы берете деньги, там они выдаются стандартной функцией, вам необходимо найти ее, и заменить на функцию античита.


Как изменить респаун у фракции?

Перейти и посмотреть урок


Как добавить дома?

Перейти и посмотреть урок


Как создать 3D текст?

Перейти и посмотреть урок


Как создать диалог и какие виды диалогов бывают?

Перейти и посмотреть урок


Как сделать телепорт по пикапу?

Перейти и посмотреть урок


Как создать таймер?

Перейти и посмотреть урок


Как сделать обучение себе на сервер?

Перейти и посмотреть урок


Как сделать TextDraw?

Перейти и посмотреть урок


Как подключить стример?

Перейти и посмотреть урок



Копирование на посторонние ресурсы запрещено! ©

Автор: Mike

Сообщение отредактировал Mike: 28 Апрель 2013 - 13:25

26

#2
Пользователь офлайн   XVII 

  • Говнокодить - искусство
  • Вставить ник
  • Цитировать
  • Раскрыть информацию


Вопрос: Как вставить объекты в мод?
Ответ: Если Вы пользуетесь MTA Map Editor, то Вам необходимо конвертировать объекты в тот формат, который компилятор сможет взять. Если Вы пользуетесь редакторами, которые предназначены для PAWN, то пропускаем следующий пункт и читаем далее.
Ссылки: Конвертер
Решение:
Если Вы пользуетесь MTA Map Editor, то Вам необходимо конвертировать объекты.
  • Переходим на сайт (указан выше), вставляем содержимое файла .map в окно с надписью "Paste Here".
  • Настойки Input должны выглядеть так:
    MTA 1.0 Object
    MTA 1.0 Vehicle
  • Настройки Output должны выглядеть так:
    SA-MP CreateObject
    SA-MP AddStaticVehicleEx
  • Нажимаем "Convert" и копируем содержимое окна, после чего переходим дальше.

Если пользуетесь редакторами, назначенными специально для PAWN, то вставляем строки в калбэк OnGameModeInit
Пример кода:
public OnGameModeInit()
{
	//Должно получиться примерно так
	CreateObject(14405, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 180.0000000);
	return 1;
}




Вопрос: Перебор циклом останавливается на ID 0, что делать?
Ответ: В цикле имеется возвращение, достаточно его просто убрать.
Пример кода:
	//Не верно
	for(new i = GetPlayerPoolSize(); --i >= 0) 
	{
		if(IsPlayerConnected(i)
		{
			SendClientMessage(i, -1, "Send");
			return 1;
		}
	}


	//Верно
	for(new i = GetPlayerPoolSize(); --i >= 0) 
	{
		if(IsPlayerConnected(i)
		{
			SendClientMessage(i, -1, "Send");
		}
	}




Вопрос: При вводе команды появляется сообщение "Неизвестная команда", хотя сама команда выполнилась. Что делать?
Ответ: В конце команды поставьте возвращение.
Пример кода:
public OnPlayerCommandText(playerid, cmdtext[])
{
    //Не верно
    if(strcmp(cmdtext, "/cmd", true))
    {
    	SendClientMessage(playerid, -1, "Send");
    }
    return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    //Верно
    if(strcmp(cmdtext, "/cmd", true))
    {
    	SendClientMessage(playerid, -1, "Send");
    	return 1;
    }
    return 1;
}




Сообщение отредактировал 2ol: 12 Сентябрь 2015 - 13:16

1

#3
Пользователь офлайн   Sound 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Часто задаваемые вопросы по поводу запуска плагинов:

Не запускаются плагины. Что делать?
В основном эти плагины: dc_cmd.dll и mysql.dll

Несколько решений этих проблем:

1) На Вашем компьютере не установлена нужная версия Visual C++
Решение - установить все компоненты начиная от старой версии:

Microsoft Visual C++ 2005: 32 - bit/64 - bit

Microsoft Visual C++ 2008: 32 - bit/64 - bit

Microsoft Visual C++ 2010: 32 - bit/64 - bit

Microsoft Visual C++ 2012: 32 - bit/64 - bit

Microsoft Visual C++ 2013: 32 - bit/64 - bit

Для тех, кто не знает, скольких разрядная у него операционная система:
Скрытый текст [Показать]


2) Сравните версии плагина и инклуда.
Проверьте, через нужный ли компилятор вы открыли Ваш мод. ( Очень распространенная ошибка ).

Выдает ошибку: запуск программы не возможен т.к на компьютере отсутствует файл: MSVC...dll. Что делать?
Это случается, если у вас не установлен один из компонентов Visual C++.
Но если после установки всех нужных компонентов ошибка не пропала:
Скачайте актуальный для вас файл(клик).

В лог сервера выдает ошибку:
1) Загружается все хорошо, но выдает ошибку:
Run time error 19: "File or function is not found"

Установите плагин nativecheker. Он выведет в консоль все возможные ошибки.
Ошибка связанная с mysql:
Скрытый текст [Показать]


2) Залил сервер на хостинг и теперь не загружается плагин mysql.so, выдает такую ошибку:
Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)

На хостинге нужно использовать плагин: mysql_static.so

3) Не загружается crashdetect, выдает ошибку:
Loading plugin: crashdetect.dll
CrashDetect must be loaded before 'streamer.dll'

Пропишите в server.cfg плагин crashdetect.dll до плагина streamer.dll
Аналогично на хостинге.

Будет дополнятся.
Если кто-то хочет дополнить тему - писать в ЛС(клик).

1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Тема закрыта

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей