Сравнение переменной... (даже не знаю как это назвать)

Ask for help

Moderators: Murderator+, Murderator

ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Сравнение переменной... (даже не знаю как это назвать)

Post by ADEPT_ABP »

Имеется строка:

Code: Select all

if uo.getgraphic('finditem')=='0x0EED' || uo.getgraphic('finditem')=='0x13B5' then

Можно ли сделать на подобии:

Code: Select all

if uo.injournal("You put|You can't") then

Короче как минимумом строк сделать проверку ненужных/нужных типов? Я что-то не могу понять... и найти тоже не могу... :(
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Millerbeer
Posts: 247
Joined: 2008-09-12 05:07:34

Post by Millerbeer »

а не проще сразу искать нужные типы, забитые в таблицу?
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Проще, но меня интересует именно это. :wink:
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

sub main()
   #uo.Print(uo.GetGraphic("self"))
   uo.Print(str(TypeIn("0x0191|0x0191|0x0191|0x0191|0x0190|0x0191|0x0190|0x0191", uo.GetGraphic("self"))))
end sub

sub TypeIn(types, type)

   var types_size = int((len(types)+1)/7)
   var index = 0

   while types_size
      if mid(types, index*7, 6) == type then
         return index
      end if
      index = index+1
      types_size = types_size-1
   wend
   return -1

end sub
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Значит только так? Эх. Но всё равно Grin спасибо. :)
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Grin, ты подтолкнул на мысль.

Code: Select all

sub main()
var z=uo.getgraphic('self')

if types(z)==true then
uo.print('Совпадает')
else
uo.print('Не совпадает')
endif

end sub

Sub types(type)
var a

dim t[2]
t[0]='0x0191'
t[1]='0x0190'

for a=0 to 1
if type==t[a] then
return true
endif
next
end sub
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Первоначальная конструкция проще с точки зрения машинного языка. Мощь проца некуда девать? :lol:
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Ага... понятно. Я конечно не в курсе чем сложнее мой вариант для машины, но думаю 2-х ядер проца на ето хватит. :)
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Владислав Пирогов "ASSEMBLER для WINDOWS" 4-е издание. Очень рекомендую. Хорошая книжка, читается легко, примеры наглядные и интересные. Вообщем вправит мозг в нужном направлении в области программирования.
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Я конечно понимаю учиться никогда не поздно, есть одно но, в школе у меня отбили желание учиться. Теперь я учебную литературу не воспринимаю как полезную информацию, голова и так почти постоянно болит. Но я всё же попытаюсь хотя бы найти и скачать(покупать не на что), может быть даже почитаю. :D
P.S. Кстати что такое

Code: Select all

int(len(...))
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

целая часть числа(длина())
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

... я так понимаю

Code: Select all

int((len(types)+1)/7) 

это

Code: Select all

int(56/7)

то есть

Code: Select all

int(8)

Целая часть числа 8 что ли? Как-то сложно для понимания...
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Ну да. Наверное можно её убрать.
admir
Posts: 528
Joined: 2005-01-13 07:20:54

Post by admir »

Грин как всегда виртуоз!!!
Смотрю на код и восхищаюсь :)

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

Code: Select all

Sub GetWord( st, nom )
    ; (c) Edred
    ; Возвращает слово из строки str за номером num
    ; если такого слова нет - возвращаем ''
    ;
    ; Разделителем слов считаем пробел. Несколько пробелов подряд считаются за один.
    ; Функция сделана без рекурсии специально для считывания слов из сверхдлинных строк!
    ;
    VAR tmpst, i, dlin, kol = 0, start = 0
    dlin = len( st )
    For i=0 To dlin - 1
        If mid( st, i, 1 ) == ' ' OR i == dlin - 1 Then
            kol = kol + 1
            If kol == nom Then
                ; это первый пробел после нужного нам слова
                tmpst = mid( st, start, i - start )
                return tmpst
            Else
                While mid( st, i, 1 ) == ' '
                    i = i + 1
                Wend
                If kol == nom - 1 Then
                    start = i
                Endif
            Endif
        Endif
    Next
    tmpst = ''
    return tmpst
endsub


Но у грина проще!!
Можно добавить 1 переменную характеризующую длину элемента.
А можно в приниципе разделить для типа и для ИД.
все для альфы , [url=http://newvlad.nm.ru/prog]здесь[/url]
модернизация ремонт продажа игровых консолей
Sky: admirka1 Москва
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Целая часть берется для "защиты от дурака", если формат строки не правильно соблюден.

Поповоду мощи компа... если уж лишняя сотня операторов будут "грузить" проц, то переходим на Дос:)

Не надо из крайности в крайность кидатся... Классы тоже не для экономии процессорных ресурсов сделаны.
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Grin wrote:Не надо из крайности в крайность кидатся... Классы тоже не для экономии процессорных ресурсов сделаны.

А можно узнать из какой крайности в какую, и кто, кидается? И что за классы? :D А то я не понял ничего... :cry:
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

:) По ассемблеру Юров норм:)
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Знаете, вся ошибка тех, кто рекомендует какую-нибудь литературу, это - начальный опыт/знание яз.прогр. перед прочтением той или иной литературы. Я не имею никаких знаний о яз.программирования, поэтому многие слова/термины для меня пустой звук. Пример(Пирогов Владислав Юрьевич.
Ассемблер для Windows. — М.: Издатель Молгачева С.В., 2002. —552 с., ил.):
Часть I. Основы 32-битного программирования в Windows
Глава 1. Средства программирования в Windows
I

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

Прежде всего замечу, что в названии главы есть некоторая натяжка, т.к. технологии трансляции и в MS DOS, и в Windows весьма схожи. Однако программирование в MS DOS уходит в прошлое.

Двум стадиям трансляции соответствуют две основные программы: ассемблер ML.EXE и редактор связей LINK.EXE 7 (или TASM32.EXE и TLINK32.EXE в Турбо Ассемблере).

Пусть файл с текстом программы на языке ассемблера называется PROG.ASM, тогда, не вдаваясь в подробный анализ, две стадии трансляции будут выглядеть следующим образом: c:\masm32\bin\ml /c /coff PROG.ASM - в результате появляется модуль PROG.OBJ, а также c:\masm32\bin\link /SUBSYSTEM:WINDOWS PROG.OBJ - в результате появляется исполняемый модуль PROG.EXE. Как Вы, я надеюсь, догадались ( :) Я долго ржал - вообще непонял о чём это?) /с и /coff являются параметрами программы ML.EXE, a /SUBSYSTEM:WINDOWS является параметром для программы LINK.EXE. О других ключах этих программ более подробно см. Гл. 1.5.

На данном примере, что вы посоветуете прочитать перед подобной литературой?
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

тебе дали 2-х авторов.
Теперь надо обучить как книги выбирать?:) а потом как их читать и тд?:)

Хватит морозить... да и нах тебе ассемблер сдался?
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Вообще никогда не думал о помеченном красным. :D Просто запускаешь батник:

Code: Select all

@echo off
f:\masm32\bin\ml /coff /c %1.asm
f:\masm32\bin\link /SUBSYSTEM:CONSOLE %1.obj
@echo on

название_батника имя_программы_без_расширения
например: m test
это и есть технология трансляции и редактор связей.
Post Reply