Здравствуйте, гость ( Вход | Регистрация )

17 страниц V « < 15 16 17  
Тема закрытаОткрыть новую тему
> Где ошибка? Пишите у кого мелкие вопросы, сюда!
Shefon
сообщение 20.12.2012, 0:11
Сообщение #321


**

Neophyte
Сообщений: 35
Регистрация: 16.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.571
Возраст: 35



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

set #1 0
set #2 0
set #3 0
...
...
...
...

if 123, 456 7890
set #1 1
set #2 2
end_if

set #3 #1 + #2
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 20.12.2012, 1:25
Сообщение #322


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Shefon @ 20.12.2012, 1:11) *

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

set #1 0
set #2 0
set #3 0
...
...
...
...

if 123, 456 7890
set #1 1
set #2 2
end_if

set #3 #1 + #2

А почему бы просто не использовать конечную переменную внутри ифа?)

Код

if 123, 456 7890
   set #1 1
   set #2 2
   set #3 #1 + #2
end_if


И ошибки никогда не будет, и обнулять кучу переменных не нужно, а только одну конечную -
т.е. set #3 0 в начало или вообще не добавлять. Просто числа иметь не будет, но условия на неё дольнейшие будут работать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Microsoft
сообщение 20.12.2012, 6:43
Сообщение #323


***

Novice
Сообщений: 68
Регистрация: 2.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.253



Можно ли как то сделать чтобы записывать в $ только одну часть lastmsg? К примеру You see: Grizzli и нужно чтобы записалось только Grizzli а You see: стереть.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 20.12.2012, 8:30
Сообщение #324


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Цитата(Microsoft @ 20.12.2012, 7:43) *

Можно ли как то сделать чтобы записывать в $ только одну часть lastmsg? К примеру You see: Grizzli и нужно чтобы записалось только Grizzli а You see: стереть.

Можно. См. команды Copy, PosEx на UOWiki

Сообщение отредактировал Zeleax - 20.12.2012, 8:36


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shefon
сообщение 20.12.2012, 10:58
Сообщение #325


**

Neophyte
Сообщений: 35
Регистрация: 16.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.571
Возраст: 35



Цитата(xolost @ 20.12.2012, 0:25) *

А почему бы просто не использовать конечную переменную внутри ифа?)

Код

if 123, 456 7890
   set #1 1
   set #2 2
   set #3 #1 + #2
end_if


И ошибки никогда не будет, и обнулять кучу переменных не нужно, а только одну конечную -
т.е. set #3 0 в начало или вообще не добавлять. Просто числа иметь не будет, но условия на неё дольнейшие будут работать.


в том то и дело что в твоём варианте надо помнит какую пременную обьявлять ,а какую нет. Это не проблема когда в програме 7 строчек, но когда их тысяч 10 , можно и провтыкать. А потом долго долго искать ошибку которая возникла из-за этого.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 20.12.2012, 11:51
Сообщение #326


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Shefon @ 20.12.2012, 11:58) *

в том то и дело что в твоём варианте надо помнит какую пременную обьявлять ,а какую нет. Это не проблема когда в програме 7 строчек, но когда их тысяч 10 , можно и провтыкать. А потом долго долго искать ошибку которая возникла из-за этого.

Какая ошибка в данном варианте может вылезти?
дай пример конкретный, а то я при 3000 строках не разу подобную не ловил, при подобном оформлении.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 20.12.2012, 12:31
Сообщение #327


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Цитата
goto :mana

Добавлю.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shefon
сообщение 20.12.2012, 14:28
Сообщение #328


**

Neophyte
Сообщений: 35
Регистрация: 16.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.571
Возраст: 35



Цитата(WKnight @ 20.12.2012, 11:31) *

goto :mana

Добавлю.


Спасибо огромное.
Это кстате в некоторой степени развяжет тебе руки с добавлением новых зарезервированных переменных.
Они уж точно не станут тогда конфликтовать с метками.
(IMG:style_emoticons/default/rolleyes.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shefon
сообщение 20.12.2012, 14:45
Сообщение #329


**

Neophyte
Сообщений: 35
Регистрация: 16.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.571
Возраст: 35



Цитата(xolost @ 20.12.2012, 10:51) *

Какая ошибка в данном варианте может вылезти?
дай пример конкретный, а то я при 3000 строках не разу подобную не ловил, при подобном оформлении.

Суть в чём.. Если собираешся использовать переменную , то сначала её стоит обьявить.
Вот твой вариант обьявлять её по мере необходимости. Да это работает. Но у меня часто бывает что я после написания скрипта начинаю модифицировать его. Например вставляю какую нибудь процедуру в какое то место. И часто эта процедура использует переменные которые уже где то задействованы. Представь теперь что я вставил процедуру до места где эта переменная обьявлялась.. В таком случае мне приходится проверять все ли переменные для моей новой процедуры уже определены, и если нет переносить определение до моей новой процедуры.. Короче гемор.
Гораздо эффективней определять все ключевые переменные в самом начале скрипта, и затем уже не задумываться о них.

Я достаточно понятно обьяснил?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 20.12.2012, 14:52
Сообщение #330


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Shefon @ 20.12.2012, 15:45) *

Суть в чём.. Если собираешся использовать переменную , то сначала её стоит обьявить.
Вот твой вариант обьявлять её по мере необходимости. Да это работает. Но у меня часто бывает что я после написания скрипта начинаю модифицировать его. Например вставляю какую нибудь процедуру в какое то место. И часто эта процедура использует переменные которые уже где то задействованы. Представь теперь что я вставил процедуру до места где эта переменная обьявлялась.. В таком случае мне приходится проверять все ли переменные для моей новой процедуры уже определены, и если нет переносить определение до моей новой процедуры.. Короче гемор.
Гораздо эффективней определять все ключевые переменные в самом начале скрипта, и затем уже не задумываться о них.

Я достаточно понятно обьяснил?

Возможно, сейчас узнаем)

смотри
Код

if $b > 0
   set #i 1
   set #i2 2
   set #i3 #i + #i2
end_if

if #i3 > 0
   msg сложение произошло
else
   msg не найдена
end_if


Но где-нибудь в конце работы скрипта, обнулять её все равно желательно, если возвращаться к этой переменной будем.
Но суть в том, что задавать переменную изначально не обязательно, если она не объявлена, все равно можно на неё смело вешать условия любые.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.12.2012, 14:53
Сообщение #331


***********

Модератор UOPilot
Сообщений: 9.743
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29660
Пользователь №: 11.279



Это третья тема которую я закрываю за все время(не считая криво созданных).
Еще на момент появления темы она привлекла мое внимание, т.к. при поиске будет очень сложно ориентироваться в толстой теме, где обсуждение всего подряд в куче. Пожалуйста, старайтесь придерживаться формата "название темы - содержание соответственное названию". Указывайте как можно более узкое и точно название темы, если будет указан оператор по которому задается вопрос, то вообще прекрасно. Не бойтесь создавать темы, людям потом проще ориентироваться и получать полезную информацию. Глупых вопросов не бывает.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

17 страниц V « < 15 16 17
Тема закрытаОткрыть новую тему
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 14.7.2025, 7:05
Designed by Nickostyle