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

 



 
          





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





Последние Файлы 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  
[Архив] Помощь новичкам по скриптингу ! #2
heufixДата: Понедельник, 28.09.2009, 02:59 | Сообщение # 1
Уважаемый человек
Группа: Продвинутые
Сообщений: 995
Награды: 22
Репутация: 231
Замечания: 80%
Статус:
Здравствуйте, хотите научиться скриптингу? пишите сюда, помoжем!(С)[PZ]KYZ[AIR].
Старая Тема уже достаточно полна ответов, это продолжение первой темы.
Убедительная просьба к Новичкам:

К большому сожалению, на этом форуме экстрасенсы не сидят,поэтому убедительно просим объяснять ваш вопрос/проблему ТАК,чтобы её поняли другие участники, не забывайте приписывать ваш код к своему сообщению(в тег pwn).



Радость
AwmДата: Вторник, 26.07.2011, 04:00 | Сообщение # 3451
Группа: I'm V.I.P.
Сообщений: 3235
Награды: 55
Город: Tallinn
Репутация: 1661
Замечания: 0%
Статус:
indie, напиши по порядку какие иды должны как идти, а то я что-то не понял вот это
Quote (indie)
1) Я не знаю как запрограммировать вторую кнопку (button 2) так, чтобы в подменю при ее нажатии переходило на 1 меню вверх.

куда вверх? из какого подменю?

смотри как сделано на википедии, там даже пример приведён, как лучше делать, if() тут юзать муторно лучше switch(listitem)

public OnDialogResponse



Quote
2) До меню третьего уровня (должно быть диалоговое окно с возможностью ввода) вообще дело не доходит. При нажатии на пункт в меню второго уровня диалоговое окно просто перезагружается или хуже того кидает на другое.

где меню третьего уровня? где меню второго уровня? на какое кидает?
по подробней расскажи а то нечего не понятно.




"Life is hard... life is harder if you're stupid." - John Wayne


Сообщение отредактировал Awm - Вторник, 26.07.2011, 04:02
indieДата: Вторник, 26.07.2011, 13:30 | Сообщение # 3452
Новенький
Группа: Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус:
Меню первого уровня это окно диалога которое появляется при вхождении на маркер.
[cut=Код]
Code
public OnPlayerEnterCheckpoint(playerid) { // вход на чекпоинт
  if(!strcmp(checkpointPlace,"ammo")) { // если аммо чекпоинт
      checkpointEnable=false; // выключает обработку координат
    ShowPlayerDialog(playerid, ammoMenu, DIALOG_STYLE_LIST, "Аммо",
   "Оружие ближнего боя\nПистолеты\nДробовики\nПистолеты-пулеметы\nШтурмовые винтовки\nВинтовки\nМетательное\nДругое",
   "Выбрать","Выход");
  }
  return 1;
}
[/cut]
Меню второго уровня это диалоговое окно которое показывает все оружие одного типа. Третий уровень это диалоговое окно для подтверждения покупки. А по поводу кнопки - я не могу реализовать переходы с одного диалогового окна на другой. Например при нажатии на button2 в меню третьего уровня меня должно кидать на второй, со второго на первый, и с первого закрывать окно полностью.

forst5Дата: Вторник, 26.07.2011, 16:04 | Сообщение # 3453
Новенький
Группа: Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус:
У меня на сервере стоят Ган зоны. Подскажите пожалуйста как сделать, чтобы оружие банды могли продавать только в гетто и на своей территории, а не везде.
И так же с домами... чтобы грабить их могли только в своей терре

indieДата: Вторник, 26.07.2011, 20:00 | Сообщение # 3454
Новенький
Группа: Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус:
forst5, вставь эту функцию
[cut=Код]
Code
stock IsPlayerInArea(playerid, Float:min_x, Float:min_y ,Float:max_x, Float:max_y) { // проверка где находится игрок
  new Float:X, Float:Y, Float:Z;
  GetPlayerPos(playerid, X, Y, Z);
  if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) return 1;
  return 0;
}
[/cut]
и используй условный оператор в OnPlayerUpdate чтобы определять местоположение игрока (точнее находится ли он в ганг зоне). А дальше уже мелочи - настроить переменную которая будет отвечать за работоспособность функции передачи денег

forst5Дата: Среда, 27.07.2011, 08:03 | Сообщение # 3455
Новенький
Группа: Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус:
indie, спасибо!

Добавлено (27.07.2011, 08:03)
---------------------------------------------
Но всё равно можно по подробней я просто новичок в скриптинге ))

indieДата: Среда, 27.07.2011, 10:28 | Сообщение # 3456
Новенький
Группа: Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус:
forst5, ну смотри, я так понял оружие покупается у тебя через командную строку. Используешь функцию OnPlayerUpdate чтобы определять координаты игрока, и соответственно возможность покупки оружия. (предварительно не забудь вставить тот код что я кидал ранее)
[cut=Код]
Code
public OnPlayerUpdate(playerid) {
   if(IsPlayerInArea(playerid,minX,minY,maxX,maxY)) { oppToBuy = true; }
   else {  oppToBuy - false; }
          return 1; }
[/cut]
И обновляешь функцию покупки оружия, например
[cut=Код]
Code

stock buyWeapon(аргументы) {
if (oppToBuy) { тело функции }
else return 1;
}
[/cut]
И не забудь в начале кода присвоить oppToBuy значение false [cut=Код]new bool:oppToBuy=false;[/cut]

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

forst5Дата: Среда, 27.07.2011, 10:38 | Сообщение # 3457
Новенький
Группа: Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус:
Мне ошибку выдаёт
Что не так

Code
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(1116) : error 017: undefined symbol "minX"
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(1117) : warning 215: expression has no effect
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(13235) : error 010: invalid function or declaration
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(13235) : error 010: invalid function or declaration
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(13236) : error 010: invalid function or declaration
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(13237) : error 010: invalid function or declaration
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(25639) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(25639) : error 017: undefined symbol "min_x"
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(25642) : error 017: undefined symbol "max_x"
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(25645) : warning 225: unreachable code
C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(40761) : error 021: symbol already defined: "OnPlayerUpdate"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

9 Errors.

indieДата: Среда, 27.07.2011, 17:58 | Сообщение # 3458
Новенький
Группа: Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус:
Ну я тебе подсказал а ты уже начинаешь на шею садиться :)
undefined symbol значит что нет объявления переменной.
symbol already defined что переменная объявлена более одного раза.
остальное надо смотреть код

Добавлено (27.07.2011, 11:38)
---------------------------------------------
Вообщем я написал код для магазина используя диалоговые окна. Спасибо за подсказку использовать switch, с ними действительно легче. Вот только я сначала в case использовал не чистительные значения, и думал почему выдает ошибки :) но то такое. Если кому-то надо код - обращайтесь

Добавлено (27.07.2011, 17:34)
---------------------------------------------
Нужна помощь с реализацией командного чата. Нашел код в интернете [cut=Код]

Code
{  
if(text[0] == '!')  
{  
new name[24], string[256];  
GetPlayerName(playerid, name, 24);  
strdel(text,0,1);  
format(string, sizeof(string), "*%s: %s", name, text);  
printf("%s", string);  
for(new i = 0; i < MAX_PLAYERS; i++)  
{  
if(IsPlayerConnected(i))  
{  
if(gTeam[i] == gTeam[playerid])  
SendClientMessage(i, GetPlayerColor(playerid), string);  
}  
}
[/cut] только не могу понять зачем там strdel(text,0,1); и printf("%s", string); а да, еще строчка выводится 2 раза. Первый раз она пробегается по команде, отсылается и мне. Второй раз только мне пишется (как я понял, не с кем протестировать). Как этого избежать?

Добавлено (27.07.2011, 17:58)
---------------------------------------------
разобрался. добавил return 0; после SendClientMessage(i, GetPlayerColor(playerid), string);

HakeRbesTДата: Четверг, 28.07.2011, 12:17 | Сообщение # 3459
Новенький
Группа: Пользователи
Сообщений: 72
Награды: 0
Город: Новокузнецк
Репутация: 2
Замечания: 0%
Статус:
Подскажите, а возможно сделать анти читы на бесконечные патроны и на бессмертие(ГМ)?

З.Ы:Если не трудно подскажите как)

indieДата: Четверг, 28.07.2011, 15:48 | Сообщение # 3460
Новенький
Группа: Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус:
HakeRbesT, поищи такую вещь как JunkBuster Anti-Cheat\

люди, подскажите пожалуйста, когда я вхожу на чекпоинт у меня должно меняться значение переменной, только в рамках человека который вошел в чекпоинт. Как это реализовать?

SolitarioniДата: Четверг, 28.07.2011, 17:03 | Сообщение # 3461
Постоялец
Группа: I'm V.I.P.
Сообщений: 350
Награды: 12
Город: Ростов-на-Дону
Репутация: 198
Замечания: 0%
Статус:
Подскажите как разложить значение цвета в формате 0xRRGGBB по цветам. В одну переменную RR в другую GG в третью BB. Или подскажите как будет выглядеть код для перевода шестнадцатиричного числа в десятичное и наоборот.






Справочник стандартных функций:

a_vehicles
file.inc
a_sampdb.inc
a_samp callbacks
a_players.inc
a_objects.inc
SolitarioniДата: Четверг, 28.07.2011, 18:01 | Сообщение # 3462
Постоялец
Группа: I'm V.I.P.
Сообщений: 350
Награды: 12
Город: Ростов-на-Дону
Репутация: 198
Замечания: 0%
Статус:
Quote (Lonely_Tramp)
Подскажите как разложить значение цвета в формате 0xRRGGBB по цветам. В одну переменную RR в другую GG в третью BB. Или подскажите как будет выглядеть код для перевода шестнадцатиричного числа в десятичное и наоборот.


Ну вот, сам себе отвечаю. Нашёл ответ, немного поэксперементировав. Вот:

Code

  new gpg = 0xABCDEF;
  new r,g,b;

  r = gpg/65536;
  g = (gpg-r*65536)/256;
  b = gpg - r*65536 -g*256;

  printf(" R: %x %d\n G: %x %d\n B: %x %d\n ",r,r,g,g,b,b);


Может есть более хороший вариант?







Справочник стандартных функций:

a_vehicles
file.inc
a_sampdb.inc
a_samp callbacks
a_players.inc
a_objects.inc
pawmanДата: Четверг, 28.07.2011, 18:39 | Сообщение # 3463
Уверенный в себе
Группа: Пользователи
Сообщений: 188
Награды: 12
Город: Новороссийск
Репутация: 38
Замечания: 0%
Статус:
Столкнулся с проблемой, решил для своей карты сделать бота на вертолете.
Захожу на сервер.
Логинюсь как админ.
Загружаю скрипт.
Ввожу /vrecord mynps
-
В чате пусто, записи не происходит.
Все сделал правильно, в чем ошибка?



Разрабатываю карты для сервера. Обращайтесь, качество гарантирую.
Мои работы:
[MAP+FS]Особняк
[MAP+FS]Пляж
[MAP+FS]sa_city_bilding
Сайт: фаникс.рф
[SnIcKeRs]Дата: Пятница, 29.07.2011, 12:10 | Сообщение # 3464
Новенький
Группа: Пользователи
Сообщений: 32
Награды: 0
Город: dnepr
Репутация: -12
Замечания: 0%
Статус:
ребята помогите пож. в чем ошибка??

Code
C:\Users\Серега\Desktop\LSTDM.pwn(7427) : warning 203: symbol is never used: "killss"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

1 Warning.



хз
indieДата: Пятница, 29.07.2011, 12:43 | Сообщение # 3465
Новенький
Группа: Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус:
[SnIcKeRs], ты объявил переменную killss но далее по коду к ней нигде нет обращения, т.е. она "висит" без дела
Поиск:





 


 


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