» TeamX (Архив Форума)«


Форум TeamX » Тех. поддержка » Скрипты (Все вопросы по скриптингу - сюда)

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения

 
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Я тут сделал скрипт сундука в который можно добавлять предметы и изменять их без перекомпиляции скрипта. Но это не совсем скрипт сундука я взял скрипт удалил импортную переменную и условия при котором создаются предметы что бы было проще тестировать загрузите скрипт и обворуйте клинта там должны появиться предметы.

Лежит здесь.
http://jordan631.narod.ru/data.rar

Установка распакуйте архив в папку игры

Пока в скрипте прописано 7 предметов но можно сколько угодно чтобы добавить или изменить предмет смотрите acklint.msg там все закоментировано в папке scripts лежат исходники скрипта.

Так же в файле acklint.msg необязательно писать по английски можно и по русски но нужно изменить
вот это PID_LEATHER_ARMOR
на это кожаная броня в двух местах так и с отстальными предметами

А теперь вопрос как сделать так чтобы скрипт считывал не так

# Название предмета
{100}{}{PID_LEATHER_ARMOR}
# Минимальное количество предметов
{101}{}{1}
# Максимальное количество предметов
{102}{}{2}
# Вероятность появления предмета в процентах
{103}{}{100}

Т.е с каждой строки

А вот так с одной строки

{100}{}{PID_LEATHER_ARMOR|1|2|100}

или  так

{100}{}{PID_LEATHER_ARMOR,1,2,100}


Отправлено: 14:12 - 14 Янв., 2008 | ИСПРАВЛЕНО: Jordan 63 - 18:50 - 15 Янв., 2008
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Обновил скрипт качать здесь

http://jordan631.narod.ru/data1.rar

Установка прежняя.

Отправлено: 21:57 - 15 Янв., 2008
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Как в процедуру atoi

procedure atoim(variable ostr, variable bstr) begin
   variable begin
       i;
       str;
       val;
   end
   str:=bstr;
   while (ostr!=str and ostr<=str+":" and ostr>=str+"0" do begin
       while not((ostr>str+i and ostr<str+(i+1)) or ostr==str+i) and i<9 do i+=1;
       str+=i; val:=val*10+i; i:=0;
   end
   return val;
end

#define atoi(x) atoim(x,""

Вставить проверку

(atoi(message_str(SCRIPT_GLOBAL_VARS, 100)));

если строчка 100 в скрипте с номером 567 пустая тогда
читать строчку 100 в скрипте с номером 345 если и это пустая тогда
читать строчку 100 в скрипте с номером 961

Отправлено: 12:09 - 4 Фев., 2008 | ИСПРАВЛЕНО: Jordan 63 - 12:11 - 4 Фев., 2008
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Это надо делать не в atoi, а с помощью atoi.

Отправлено: 17:15 - 4 Фев., 2008
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Wasteland Ghost

Цитата:
Это надо делать не в atoi, а с помощью atoi.


Как это можно сделать? Если не трудно покажи пример.

Отправлено: 2:48 - 5 Фев., 2008
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Я не знаю, что конкретно ты имел ввиду, говоря "пустая", поэтому...

if not(message_str(567, 100) == "Error" or message_str(567, 100) == "") then begin // если строка есть и она не пустая
   val := atoi(message_str(567, 100));
end
else if not(message_str(345, 100) == "Error" or message_str(345, 100) == "") then begin
   val := atoi(message_str(345, 100));
end
else if not(message_str(961, 100) == "Error" or message_str(961, 100) == "") then begin
   val := atoi(message_str(961, 100));
end

Примитивно, но должно работать. :)

Ray, больше так не делай.

Отправлено: 11:04 - 5 Фев., 2008
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Wasteland Ghost

А как в саму atoi вставить эту же проверку.

Пример я пишу

set_global_var(atoi(message_str(961, 100), 1);

И что бы atoi в самой процедуре сама смотрела все мсг на этой строке но не именно на 100 а любую какая будет

Я просто хотел  сделать так будет один мсг где прописаны гвары (самый главны) а также будут несколько пустых мсг где можно вписывать номера гвар т.е что бы не записывать их в главный файл а в другой и atoi должна посмотреть все мсг и если эти мсг на таких то строках пустые значит читать главный файл.

Отправлено: 11:22 - 5 Фев., 2008
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Нельзя такие сугубо конкретные вещи загонять в базовую процедуру! Это как минимум некрасиво, а как максимум чревато несовместимостью, узостью и глюкавостью. Лучше напиши свой макрос. Например

#define get_gvar_from_msg(x)
if not(message_str(567, x) == "Error" or message_str(567, x) == "") then begin \
   val := atoi(message_str(567, x)); \
end \
else if not(message_str(345, x) == "Error" or message_str(345, x) == "") then begin \
   val := atoi(message_str(345, x)); \
end \
else if not(message_str(961, x) == "Error" or message_str(961, x) == "") then begin \
   val := atoi(message_str(961, x)); \
end

Отправлено: 0:18 - 6 Фев., 2008
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Wasteland Ghost

За смайлики прошу прощения, а тэг code - издевательство над пользователями


-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 20:14 - 6 Фев., 2008
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Убрала тэг. Нет, определённо, люблю я свою Мозиллу-тормозиллу. Скольких оперно-иешных глюков не вижу...

Отправлено: 21:21 - 6 Фев., 2008
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com