myDC.ru

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

 
53 страниц V  « < 45 46 47 48 49 > »   
Ответить в данную темуНачать новую тему

> Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы)

AirKobra45
сообщение 16.2.2012, 20:23
Сообщение #921


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Напомните пожалуйста где у вас статья была на форуме (образовательная) как работать со скриптами (функции, таблицы, захват с чата вывод) там ещё всё было по полочкам рассписано. Всё что мог тут перерыл не могу вспомнить где эта статья!
Go to the top of the page
+Quote Post
Ksan
сообщение 16.2.2012, 20:39
Сообщение #922


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




AirKobra45:
1. Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы)
2. Функции Для Разработчиков, склад полезных функций
3. Несколько Слов О Захватах И Регулярных Выражениях, исключительно для разработчиков
4. Справочное руководство по языку Lua 5.1
Go to the top of the page
+Quote Post
AirKobra45
сообщение 16.2.2012, 22:24
Сообщение #923


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Не то. Это я всё видел. Там один кто-то описывал это всё а в конце ещё список функций DC был вроде только для API1. буду искать дальше. Но спасибо что откликаетесь!
Фух! Перерыл вообще всё на компе нашёл сохранённый mht глянул адрес: http://forum.proc.ru/index.php?showtopic=37035 видимо где-то ссылку мне здесь давали (http://mydc.ru/topic173.html здесь подробно и с примерами. Всем спасибо! big_smile.gif beauty.gif
Go to the top of the page
+Quote Post
AirKobra45
сообщение 17.2.2012, 17:33
Сообщение #924


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Почему запрос с сайта (русский текст )приходит закорючками? В CDM отладчике всё нормально отображает! А перекодировка (полученной строки в скрипте) не помогает !

Код
local fd,sz,hd = h.request(sAddr[2])

Go to the top of the page
+Quote Post
Setuper
сообщение 19.2.2012, 10:36
Сообщение #925


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Мы не умеет читать мысли! До тебя не доходило, что ты слишком мало предоставляешь информации чтобы понять в чём проблема?

Могу сказать, что cdm отладчик отображает в utf-8. Возможно нужно преобразовать из utf-8.
Go to the top of the page
+Quote Post
AirKobra45
сообщение 19.2.2012, 13:57
Сообщение #926


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Всё сделал если что критикуйте (буду рад выслушать)
Код скрипта

Код
------------------ Общие настройки.  ------------------
sBot = "Погода"    -- Имя бота
sMenu = "Меню хаба\\Погода"    -- Путь к меню.
sCmd = "!weather"    -- Команда.
sAddr = {"http://pogoda.vnerungri.ru","http://pogoda.vnerungri.ru/index.html?#34;,} -- можно добавить адреса для других запросов

------------------  Основной код.  ------------------

function OnStartup()
    if sBot == "" then sBot = SetMan.GetString(21)
        else
        Core.RegBot(sBot, "Новости с сайта: ", "sAddr[1]", true)
    end
    Tmr = TmrMan.AddTimer(1200000) --сбор мусора тоже сколько ни читал так и не понял зачем он нужен и что он удалит...
    a = 1
end

function UserConnected(User)
    Core.GetUserAllData(User)-- это зачем не пойму? мы же и так получает таблицу юзера
    Core.SendToUser(User,"$UserCommand 1 3 "..sMenu.."$<%[mynick]> "..sCmd.."|")
end
RegConnected,OpConnected = UserConnected,UserConnected

function ChatArrival(tUser, sData)
    Core.GetUserAllData(tUser) --это тоже не понятно зачем!
    local sData = sData:sub(1,-2)
    local cmd = sData:match"%b<>%s+(%S+).*"
    if cmd == sCmd then
        GetInfo()
        return true
    end
end

-------------------  Функции к основному коду  ------------------

function GetInfo()
    local s = require("socket")
    assert(s,"Ошибка загрузки библиотеки socket. Проверьте наличие файлов необходимых библиотек.")
    local h = require("socket.http")
    assert(h,"Ошибка загрузки библиотеки socket.http. Проверьте наличие файлов необходимых библиотек.")
    if a == 0 then
        Core.SendToAll(sMsg)
    else
        local fd,sz,hd = h.request(sAddr[2])
        if fd and sz then
            a = 0
            sMsg = "\n\t"
            fd = Utf8ToAnsi(fd)
            for Today,Day,NDay,Mons,Osad,TempN,TempD,ForceW,Wind,SunW,SunZ,MoonW,MoonZ in fd:gmatch "<span class='.-'>(.-)</span>.-<span class='.-'>(.-)</span>.-<span class='.-'>(.-)</span>.-<span class='.-'>(.-)</span>.-<p class='.-'>(.-)</p>.-<span class='.-/span>.-<span class='.-'>(.-)</span>.-<span class='.-/span>.-<span class='.-'>(.-)</span>.-<span class='.-'>(.-)</span>.-<span class='.-'>(.-)</span>.-<span class='.-/span>.-<span class='.-'>(.-)</span>.-<span class='.-/span>.-<span class='.-'>(.-)</span>.-<span class='.-/span>.-<span class='.-'>(.-)</span>.-<span class='.-/span>.-<span class='.-'>(.-)</span>" do
            sMsg = sMsg..Today..": "..NDay.." "..Mons.." ("..Day..")\n\tОсадки: "..Osad.."\tТемпература (ночь/день): ("..TempN.."/"..TempD..")\t Ветер "..Wind.." "..ForceW.."\n\tСолнце (восход/заход): ("..SunW.."/"..SunZ..")\tЛуна (восход/заход): ("..MoonW.."/"..MoonZ..")\n"..string.char(7):rep(80).."\n\t"
            RepChars()
            end
            Id = TmrMan.AddTimer(1200000,"Func")
        else
            sMsg = "\tСайт временно не работает или перегружен, попробуйте позже..."
        end
            Core.SendToAll("Новости с сайта: "..(sAddr[1])..sMsg)
    end
end

function Func()
--Core.SendToAll("Параметры сброшены")
TmrMan.RemoveTimer(Id)
a = 1
end

function RepChars()
    sMsg =sMsg:gsub("%[b%]", " "):gsub("%[/b%]", "  "):gsub("<[Bb][Rr]>", ""):gsub("<br />", "\r\n\t"):gsub("<", "<"):gsub(">", ">"):gsub("&quot;", string.char (34)):gsub("$", "$"):gsub("'", "`"):gsub("'", "`"):gsub("|", ""):gsub("|", ""):gsub(" ", ""):gsub("°c", "°C")
end

function OnTimer(Tmr)
    collectgarbage("collect")
end

local ansidecode={
  [128]='\208\130',[129]='\208\131',[130]='\226\128\154',[131]='\209\147',[132]='\226\128\158',[133]='\226\128\166',
  [134]='\226\128\160',[135]='\226\128\161',[136]='\226\130\172',[137]='\226\128\176',[138]='\208\137',[139]='\226\128\185',
  [140]='\208\138',[141]='\208\140',[142]='\208\139',[143]='\208\143',[144]='\209\146',[145]='\226\128\152',
  [146]='\226\128\153',[147]='\226\128\156',[148]='\226\128\157',[149]='\226\128\162',[150]='\226\128\147',[151]='\226\128\148',
  [152]='\194\152',[153]='\226\132\162',[154]='\209\153',[155]='\226\128\186',[156]='\209\154',[157]='\209\156',
  [158]='\209\155',[159]='\209\159',[160]='\194\160',[161]='\209\142',[162]='\209\158',[163]='\208\136',
  [164]='\194\164',[165]='\210\144',[166]='\194\166',[167]='\194\167',[168]='\208\129',[169]='\194\169',
  [170]='\208\132',[171]='\194\171',[172]='\194\172',[173]='\194\173',[174]='\194\174',[175]='\208\135',
  [176]='\194\176',[177]='\194\177',[178]='\208\134',[179]='\209\150',[180]='\210\145',[181]='\194\181',
  [182]='\194\182',[183]='\194\183',[184]='\209\145',[185]='\226\132\150',[186]='\209\148',[187]='\194\187',
  [188]='\209\152',[189]='\208\133',[190]='\209\149',[191]='\209\151'
}
local utf8decode={
  [128]={[147]='\150',[148]='\151',[152]='\145',[153]='\146',[154]='\130',[156]='\147',[157]='\148',[158]='\132',[160]='\134',[161]='\135',[162]='\149',[166]='\133',[176]='\137',[185]='\139',[186]='\155'},
  [130]={[172]='\136'},
  [132]={[150]='\185',[162]='\153'},
  [194]={[152]='\152',[160]='\160',[164]='\164',[166]='\166',[167]='\167',[169]='\169',[171]='\171',[172]='\172',[173]='\173',[174]='\174',[176]='\176',[177]='\177',[181]='\181',[182]='\182',[183]='\183',[187]='\187'},
  [208]={[129]='\168',[130]='\128',[131]='\129',[132]='\170',[133]='\189',[134]='\178',[135]='\175',[136]='\163',[137]='\138',[138]='\140',[139]='\142',[140]='\141',[143]='\143',[144]='\192',[145]='\193',[146]='\194',[147]='\195',[148]='\196',
    [149]='\197',[150]='\198',[151]='\199',[152]='\200',[153]='\201',[154]='\202',[155]='\203',[156]='\204',[157]='\205',[158]='\206',[159]='\207',[160]='\208',[161]='\209',[162]='\210',[163]='\211',[164]='\212',[165]='\213',[166]='\214',
    [167]='\215',[168]='\216',[169]='\217',[170]='\218',[171]='\219',[172]='\220',[173]='\221',[174]='\222',[175]='\223',[176]='\224',[177]='\225',[178]='\226',[179]='\227',[180]='\228',[181]='\229',[182]='\230',[183]='\231',[184]='\232',
    [185]='\233',[186]='\234',[187]='\235',[188]='\236',[189]='\237',[190]='\238',[191]='\239'},
  [209]={[128]='\240',[129]='\241',[130]='\242',[131]='\243',[132]='\244',[133]='\245',[134]='\246',[135]='\247',[136]='\248',[137]='\249',[138]='\250',[139]='\251',[140]='\252',[141]='\253',[142]='\254',[143]='\255',[144]='\161',[145]='\184',
    [146]='\144',[147]='\131',[148]='\186',[149]='\190',[150]='\179',[151]='\191',[152]='\188',[153]='\154',[154]='\156',[155]='\158',[156]='\157',[158]='\162',[159]='\159'},[210]={[144]='\165',[145]='\180'}
}

local nmdc = {
  [36] = '$',
  [124] = '|'
}

function AnsiToUtf8(s)
  local r, b = ''
  for i = 1, s and s:len() or 0 do
    b = s:byte(i)
    if b < 128 then
      r = r..string.char(b)
    else
      if b > 239 then
        r = r..'\209'..string.char(b - 112)
      elseif b > 191 then
        r = r..'\208'..string.char(b - 48)
      elseif ansi_decode[b] then
        r = r..ansidecode[b]
      else
        r = r..'_'
      end
    end
  end
  return r
end

function Utf8ToAnsi(s)
  local a, j, r, b = 0, 0, ''
  for i = 1, s and s:len() or 0 do
    b = s:byte(i)
    if b < 128 then
      if nmdc[b] then
        r = r..nmdc[b]
      else
        r = r..string.char(b)
      end
    elseif a == 2 then
      a, j = a - 1, b
    elseif a == 1 then
      a, r = a - 1, r..utf8decode[j][b]
    elseif b == 226 then
      a = 2
    elseif b == 194 or b == 208 or b == 209 or b == 210 then
      j, a = b, 1
    else
      r = r..'_'
    end
  end
  return r
end


Код страницы

Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Погода. Городской портал «В Нерюнгри»</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="language" content="Russian" />
<meta name="country" content="Russian federation" />
<meta name="city" content="Nerungri" />
<link rel="stylesheet" type="text/css" href="/images/css/style.css" />
<link rel="stylesheet" type="text/css" href="/images/css/style_pogoda.css" />
</head>
<body>
  <div id="header">

    <div class="head-logo">
            <a href="http://vnerungri.ru/">
            <img src="/images/logo_header.png"></a>
            <span>Информационный городской портал</span>
        </div>

    <div class="head-rubrika">- <strong>Погода</strong></div>
    
    <div class="head_knopki">
            <a href="/">Сделать стартовой</a> | 
            <span><a href="http://corp.vnerungri.ru/services/">Размещение рекламы</a></span>
        </div>

    <div class="head_info" >
        <ul>
            <li class="wd"><a href="http://pogoda.vnerungri.ru/">Погода в Нерюнгри</a><br>Сейчас: <b>-26</b></li>
            <li class="dt"><b>05:37</b><br>Пн, 20 Февраля</li>
            </ul>
        </div>
    
      <div class='currency'>
           <table>
           <thead>
           <tr>
           <td class='today'><a name=aa>курсы валют</a></td>
           <td class='dynamic'>сегодня</td>
           <td class='sizer'></td>
           <td class='sizer'></td></tr></thead>
           <tbody>
           <tr>
           <td class='today'>$ 30.00</td>
           <td class='dynamic'> -0.21 <img src='/images/do_c.png' border='0' alt=''> </td>
           <td class='sizer'></td>
           <td class='sizer'></td></tr>
           <tr>
           <td class='today'>€ 39.38</td>
           <td class='dynamic'>0.07 <img src='/images/up_c.png' border='0' alt=''> </td>
           <td class='sizer'></td>
           <td class='sizer'></td></tr></tbody></table>
        </div>

      <div class='login'><a href='http://user.vnerungri.ru/'><img src='/images/2.png'>Вход</a> 
                <a href='http://user.vnerungri.ru/register/'><img src='/images/1.png'>Регистрация</a></div>
      
     <div id='navigation'><ul id='menu'><li><a href='http://vnerungri.ru/' title=''>Главная</a></li>
                    <li><a href='http://tv.vnerungri.ru/' title=''>Телевизор</a></li>
                    <li><a href='http://horoscopes.vnerungri.ru/' title=''>Гороскоп</a>
                        <ul id='s1'>
                        <li><a href='/index.html?#39; title=''>Прогноз на 3 дня </a></li>
                        <li><a href='/threeday.html?#39; title=''> Подробно на 3 дня </a></li>
                        <li><a href='/forecast10.html?#39; title=''>Прогноз на 10 дней </a></li>
                        </ul>
                    </li>
                    <li><a href='http://pogoda.vnerungri.ru/' title=''>Погода</a></li>
                    <li><a href='http://user.vnerungri.ru/' title=''>Users</a></li>
                    </ul></div>
</div>
  

  <table id="wrapper">
    <tr>
        <br />
    </tr>
    <tr>
      <td id="left">
        <h2 class='block2' style='margin: 15px 0 4px 0;'>Инфо на сегодня</h2>
        <div class='commonBlock2'>
        <div class='text'>
В 1986 году На космическую орбиту выведена научная станция «Мир»<br /><br /></div></div></td>
      <td id="content">
<div class='conttd1'>
        <p class='pagepath'>Прогноз на 3 дня</p>


        <table class='tabweather'>
        <tr><td class='wtd1 width1 v18fff'>дата</td>
            <td class='wtd1 width2 v18fff'>осадки</td>
            <td class='wtd1 width3 v18fff'>температура</td>
            <td class='wtd1 width4 v18fff'>ветер</td>
            <td class='wtd1 width5 v18fff'>давл.</td>
            <td class='wtd1 width6 v18fff'>солнце</td>
            <td class='wtd1 width7 v18fff'>луна</td>
        </tr>
<tr><td class='wtd2 alright'><br>
<span class='v18fc0'>Сегодня<BR></span>
<span class='v10fffb'> понедельник</span><br>
<span class='v10fffb'>20</span>
<span class='v10fffb'>февраля</span></td>


<td class='wtd2 alcenter v11ccc'>
<img src='/images/weather/mini/6.png' class='icon' alt='' title=''>
<p class='v11ccc'>переменная облачность</p></td>

<td class='wtd2 alcenter' nowrap='nowrap'>
<span class='v10cccb'>ночь: </span>
<span class='v10fc0b'>-31°c</span><br>                        
<span class='v10cccb'>день: </span>
<span class='v18fc0b'>-24°c</span></td>
            
<td class='wtd2 alcenter'>
<span class='v11cccb'>1.8 м/с</span><br>
<span class='v11ccc'>северо - западный</span></td>

<td class='wtd2 v18ccc alcenter'>697</td>

<td class='wtd2'>
<span class='v11cccb'>восход: </span>
<span class='v11ccc'>08:58</span><br>
<span class='v11cccb'>заход: </span>
<span class='v11ccc'>18:52</span><br>

<td class='wtd2'>
<span class='v11cccb'>восход: </span>
<span class='v11ccc'>07:49</span><br>
<span class='v11cccb'>заход: </span>
<span class='v11ccc'>17:08</span><br>
<p class='alcenter'><img style='border:1px solid #666; ' src='/images/weather/moon/moon7.png' class='phases' alt='Фаза Луны' title='Фаза Луны'></p>

</td>
</tr>
<tr><td class='wtd2 alright'><br>
<span class='v18fc0'>Завтра<BR></span>
<span class='v10fffb'> вторник</span><br>
<span class='v10fffb'>21</span>
<span class='v10fffb'>февраля</span></td>


<td class='wtd2 alcenter v11ccc'>
<img src='/images/weather/mini/5.png' class='icon' alt='' title=''>
<p class='v11ccc'>облачно</p></td>

<td class='wtd2 alcenter' nowrap='nowrap'>
<span class='v10cccb'>ночь: </span>
<span class='v10fc0b'>-28°c</span><br>                        
<span class='v10cccb'>день: </span>
<span class='v18fc0b'>-19°c</span></td>
            
<td class='wtd2 alcenter'>
<span class='v11cccb'>1.9 м/с</span><br>
<span class='v11ccc'></span></td>

<td class='wtd2 v18ccc alcenter'>695</td>

<td class='wtd2'>
<span class='v11cccb'>восход: </span>
<span class='v11ccc'>08:55</span><br>
<span class='v11cccb'>заход: </span>
<span class='v11ccc'>18:55</span><br>

<td class='wtd2'>
<span class='v11cccb'>восход: </span>
<span class='v11ccc'>08:08</span><br>
<span class='v11cccb'>заход: </span>
<span class='v11ccc'>18:26</span><br>
<p class='alcenter'><img style='border:1px solid #666; ' src='/images/weather/moon/moon8.png' class='phases' alt='Фаза Луны' title='Фаза Луны'></p>

</td>
</tr>
<tr><td class='wtd2 alright'><br>
<span class='v18fc0'><BR></span>
<span class='v10fffb'> среда</span><br>
<span class='v10fffb'>22</span>
<span class='v10fffb'>февраля</span></td>


<td class='wtd2 alcenter v11ccc'>
<img src='/images/weather/mini/5.png' class='icon' alt='' title=''>
<p class='v11ccc'>облачно</p></td>

<td class='wtd2 alcenter' nowrap='nowrap'>
<span class='v10cccb'>ночь: </span>
<span class='v10fc0b'>-28°c</span><br>                        
<span class='v10cccb'>день: </span>
<span class='v18fc0b'>-17°c</span></td>
            
<td class='wtd2 alcenter'>
<span class='v11cccb'>1.9 м/с</span><br>
<span class='v11ccc'></span></td>

<td class='wtd2 v18ccc alcenter'>698</td>

<td class='wtd2'>
<span class='v11cccb'>восход: </span>
<span class='v11ccc'>08:53</span><br>
<span class='v11cccb'>заход: </span>
<span class='v11ccc'>18:57</span><br>

<td class='wtd2'>
<span class='v11cccb'>восход: </span>
<span class='v11ccc'>08:24</span><br>
<span class='v11cccb'>заход: </span>
<span class='v11ccc'>19:44</span><br>
<p class='alcenter'><img style='border:1px solid #666; ' src='/images/weather/moon/moon8.png' class='phases' alt='Фаза Луны' title='Фаза Луны'></p>

</td>
</tr>
<tr><td class='wtd2 alright'><br>
<span class='v18fc0'><BR></span>
<span class='v10fffb'> четверг</span><br>
<span class='v10fffb'>23</span>
<span class='v10fffb'>февраля</span></td>


<td class='wtd2 alcenter v11ccc'>
<img src='/images/weather/mini/13.png' class='icon' alt='' title=''>
<p class='v11ccc'>облачно, небольшой снег</p></td>

<td class='wtd2 alcenter' nowrap='nowrap'>
<span class='v10cccb'>ночь: </span>
<span class='v10fc0b'>-29°c</span><br>                        
<span class='v10cccb'>день: </span>
<span class='v18fc0b'>-14°c</span></td>
            
<td class='wtd2 alcenter'>
<span class='v11cccb'>1.4 м/с</span><br>
<span class='v11ccc'>северо - западный</span></td>

<td class='wtd2 v18ccc alcenter'>698</td>

<td class='wtd2'>
<span class='v11cccb'>восход: </span>
<span class='v11ccc'>08:50</span><br>
<span class='v11cccb'>заход: </span>
<span class='v11ccc'>18:59</span><br>

<td class='wtd2'>
<span class='v11cccb'>восход: </span>
<span class='v11ccc'>08:38</span><br>
<span class='v11cccb'>заход: </span>
<span class='v11ccc'>20:59</span><br>
<p class='alcenter'><img style='border:1px solid #666; ' src='/images/weather/moon/moon9.png' class='phases' alt='Фаза Луны' title='Фаза Луны'></p>

</td>
</tr></table>



</td>
      <td id="right">
        <h2 class='block2' style='margin: 15px 0 4px 0;'>Погода за окном</h2>
        <div class='commonBlock2'>
            <img src='/images/weather/mini/n2.png' alt=''>
            <div class='temp'>-26°c</div>
            <div class='info'>Ветер: <span>5.0 м/с | северный</span></div>
            <div class='info'>Давление: <span>692 мм рт. ст.</span></div>            
        </div>
</td>
    </tr>
  </table>
  
  
  
  
  <div id="footer">
        <IMG src="/images/logo_footer.png">
        <SPAN>© 2012 Городской портал «В Нерюнгри»
        <ul>
            <li><a href="http://corp.vnerungri.ru/company/">О проекте</a></li>
            <li><a href="http://corp.vnerungri.ru/services/">Размещение рекламы</a></li>
            <!--<li><a href="/">Пользовательское соглашение</a></li>-->
            <li><a href="http://corp.vnerungri.ru/form/">Связаться с нами</a></li>
        </ul>
        </SPAN>
        <a style="float:right;margin:5px 10px;" href="/info.html?#34;><img src="/counter.jpg" width="88" height="31" border=0></a>
  </div>
</body>
</html>

Go to the top of the page
+Quote Post
MIKHAIL
сообщение 22.2.2012, 18:15
Сообщение #927


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Есть код:
Код
function OnError(s)
    local h = io.open("errors.log","a+")
    if h then
        h:write(os.date()..": "..s.."\n")
        h:close()
    end
    if Core then
        Core.SendToOpChat(s)
    else
        SendToOpChat(s)
    end
end

Правильно ли я понимаю, что проверка:
Код
if Core then
    Core.SendToOpChat(s)
else
    SendToOpChat(s)
end

введена только для корректной работы как с API 1 (SendToOpChat(s)), так и с API 2 (Core.SendToOpChat(s))?
Go to the top of the page
+Quote Post
Ksan
сообщение 22.2.2012, 20:56
Сообщение #928


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




MIKHAIL, да. Достаточно вот этого, если твой хаб на АПИ 2:
Код
function OnError(s)
    Core.SendToOpChat(s)
end


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 23.2.2012, 23:21
Сообщение #929


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




В скриптах парсинга погоды, например, использующих библиотеку "socket.http", с помощью переменных можно обрабатывать текстовые данные, сохранять их в файл. Это понятно.
Скажите, пожалуйста, а возможно ли загрузить данные, отличные от текстовых (картинку, файл), и сохранить в папку? Взять хотя бы тот же сайт погоды. Подскажите, где можно ознакомиться с примером работы такого скрипта?
Go to the top of the page
+Quote Post
AirKobra45
сообщение 24.2.2012, 5:49
Сообщение #930


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Установил PtokaX 0.4.2.0 Не работает TmrMan.RemoveTimer(Id) как исправить? Здесь есть ссылка на пост, но поста нет!
Go to the top of the page
+Quote Post
PomanoB
сообщение 24.2.2012, 7:12
Сообщение #931


AmxModx Scripter
*****

Группа: Пользователи
Сообщений: 302
Регистрация: 2.12.2008
Из: Королев
Пользователь №: 1 283
Спасибо сказали: 127 раз




MIKHAIL, загружаешь точно также, потом при сохранении указываешь флаг b
Код
http = require"socket.http"

data, sError = http.request(sUrl)
hFile, sError = io.open(sFilename,"wb")
hFile:write(data)
hFile:flush()
hFile:close()


Спасибо сказали:
Go to the top of the page
+Quote Post
AirKobra45
сообщение 24.2.2012, 14:02
Сообщение #932


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




скрипт работает но постоянно выдаёт ошибку: "0.4.2.0-x64\scripts\Zapros.lua:69: bad argument #1 to 'RemoveTimer' (number expected, got userdata)"
т.е. если включить выключение скрипта при ошибке он вылетит :(
Go to the top of the page
+Quote Post
mariner
сообщение 24.2.2012, 14:38
Сообщение #933


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




В гугле набери man printf и будет тебе счастье. А по факто пишешь форматированную строку с параметрами. На то место, где стоит параметр формат подставит тот аргумент из списка своего вызова, что и номер параметра в форматированной строке
Go to the top of the page
+Quote Post
AirKobra45
сообщение 24.2.2012, 16:39
Сообщение #934


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз





В руководстве lua есть описание format, сколько ни читал никак не вкурю как им пользоваться!
Мануал
Код
string.format (formatstring, ···)
Возвращает параметры, передаваемые в функцию, отформатированные в соответствии первым параметром (который должен быть строкой). Строка формата должна строиться по тем же правилам, что и строка формата для семейства C функций printf. Отличие только в том, что опции/модификаторы *, l, L, n, p и h не поддерживаются, но имеется дополнительная опция q. Опция q позволяет вернуть строку в формате, безопасно воспринимаемом Lua интерпретатором: сама строка выводится в двойных кавычках, а все двойные кавычки, перевод строки, символы с кодом 0 и обратный слеш внутри строки экранируются обратным слешем (escaped). Например, вызов
     string.format('%q', 'a string with "quotes" and \n new line')
возвратит строку:

     "a string with \"quotes\" and \
      new line"
Опции c, d, E, e, f, g, G, i, o, u, X, и x должны использоваться только для числовых параметров, а q и s - для строковых.

Эта функция не принимает строковые параметры, содержащие символы с кодом 0, кроме параметров для формата, имеющего опцию q.

Даже на этом примере не могу понять (взять те же опции "c, d, E, e, f, g, G, i, o, u, X, и x" как их использовать и как вообще это работает..) :( объясните пожалуйста

Пример

Код
function UserConnected(tUser)
  local iHour, sMsg = tonumber(os.date"%H"), tUser.sNick..". Добро пожаловать на хаб!"
  if iHour >= 5 and iHour < 12 then
    Core.SendToUser(tUser, ("Доброе утро %s"):format(sMsg))
  elseif iHour >= 12 and iHour < 18 then
    Core.SendToUser(tUser, ("Добрый день %s"):format(sMsg))
  elseif iHour >= 18 and iHour <= 23 then
    Core.SendToUser(tUser, ("Добрый вечер %s"):format(sMsg))
  else
    Core.SendToUser(tUser, ("Доброй ночи %s"):format(sMsg))
  end
end
RegConnected, OpConnected = UserConnected, UserConnected

Go to the top of the page
+Quote Post
mariner
сообщение 24.2.2012, 17:07
Сообщение #935


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




Цитата
В гугле набери man printf и будет тебе счастье. А по факто пишешь форматированную строку с параметрами. На то место, где стоит параметр формат подставит тот аргумент из списка своего вызова, что и номер параметра в форматированной строке
Go to the top of the page
+Quote Post
Ksan
сообщение 24.2.2012, 22:24
Сообщение #936


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Код
    Core.SendToUser(tUser, ("Доброй ночи %s"):format(sMsg))

AirKobra45, тут %s означает, что при выводе сообщения вместо шаблона %s подставится очередная переменная из списка, идущего как аргумент выражения format, в данном случае подставится sMsg (оно должно быть уже создано до этого).
Так же можно использовать несколько таких %s, и при каждом встреченном в сообщении %s вместо него подставится очередная переменная из аргументов format'а.
Пример:
Код
    Core.SendToUser(tUser, ("<%s> Доброй, ночи %s! Твоё IP: %s, твоя шара: %s"):format(sBot, sNick, sIP, sShara))
Значения переменных sBot, sNick, sIP, sShara уже должны быть известны перед применением.
Выведет в чате, например, это:
Цитата
<Страшный_Бот> Доброй ночи, AirKobra45! Твоё IP: 10.20.30.40, твоя шара: 1234567890


Спасибо сказали:
Go to the top of the page
+Quote Post
AirKobra45
сообщение 25.2.2012, 22:19
Сообщение #937


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Цитата(Ksan @ 25.2.2012, 4:24) *
Код
    Core.SendToUser(tUser, ("Доброй ночи %s"):format(sMsg))

AirKobra45, тут %s означает, что при выводе сообщения вместо шаблона %s подставится очередная переменная из списка, идущего как аргумент выражения format, в данном случае подставится sMsg (оно должно быть уже создано до этого).
Так же можно использовать несколько таких %s, и при каждом встреченном в сообщении %s вместо него подставится очередная переменная из аргументов format'а.
Пример:
Код
    Core.SendToUser(tUser, ("<%s> Доброй, ночи %s! Твоё IP: %s, твоя шара: %s"):format(sBot, sNick, sIP, sShara))
Значения переменных sBot, sNick, sIP, sShara уже должны быть известны перед применением.
Выведет в чате, например, это:

Большое спасибо!! а всё так просто оказалось!
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 26.2.2012, 5:07
Сообщение #938


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Подскажите, пожалуйста, что означает добавление плюса "+" в режим открытия файла, т. к. встречается такое частенько?..
В режиме чтения файла:
Код
io.open(file,"a+")

или ещё видел в режиме записи:
Код
io.open(file,"w+")
Go to the top of the page
+Quote Post
AirKobra45
сообщение 26.2.2012, 9:35
Сообщение #939


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 2.10.2010
Из: Якутия, г.Нерюнгри
Пользователь №: 7 820
Спасибо сказали: 21 раз




Цитата(MIKHAIL @ 26.2.2012, 11:07) *
Подскажите, пожалуйста, что означает добавление плюса "+" в режим открытия файла, т. к. встречается такое частенько?..
В режиме чтения файла:
Код
io.open(file,"a+")

или ещё видел в режиме записи:
Код
io.open(file,"w+")

Повторение мать учения... (повторюсь за setuper - ом):
тут ранее писали об этом: жмём сюда
Код
На lua.ru плохо написано.

"r" - открыть файл для чтения. Файл должен существовать.
"w" - создать пустой файл для записи. Если файл с таким именем уже существует, то его содержание будет удалено, а файл будет рассматриваться как новый пустой файл.
"a" - добавить в файл. Дописывает данные в конец файла. Файл создается, если он не существует.
"r+" - открыть файл как для чтения, так и для записи. Файл должен существовать.
"w+" - создать пустой файл для чтения и записи. Если файл с таким именем уже существует, то его содержание будет удалено, а файл будет рассматриваться как новый пустой файл.
"a+" - открыть файл для чтения и добавления. Все операции записи выполняются в конец файла. Файл создается, если он не существует.

Кроме этого, для работы с бинарными файлами существуют моды: "rb", "wb", "ab", "r+b", "w+b", "a+b", то есть теже самые моды но с буквой b на конце.
Буква b может также находится и в середине: "rb+", "wb+", "ab+"

Можно сказать это более расширенные опции

подскажите почему не работает эта конструкция?
Код
t = okrugl(10)
Core.SendToAll(""..t)

function okrugl(a)
local b = math.floor(a)
local c = (a % b)
    if c == 0 then
        local ans = a
    elseif c < 0.5 then
        ans = b
    elseif c >= 0.5 then
        ans = math.ceil(a)
    end
    return ans
end

Пишет
Код
attempt to call global 'okrugl' (a nil value)

И вообще можно ли окраглить не к ближайшему меньшему или большему а по правилам округления?


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 26.2.2012, 10:27
Сообщение #940


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




функция должны быть определена до использования.


http://mydc.ru/index.html?showtopic=173&am...ost&p=41546
Go to the top of the page
+Quote Post

53 страниц V  « < 45 46 47 48 49 > » 
Ответить в данную темуНачать новую тему
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 43 527 21.3.2017, 17:31 Посл. сообщение: Alexey
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 304 848 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 067 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 27 704 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 5 052 31.10.2014, 19:20 Посл. сообщение: Ksan
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 4 517 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 6 877 29.7.2014, 16:11 Посл. сообщение: Артём
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 24 564 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 253 065 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 48 585 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 8 612 28.3.2013, 16:02 Посл. сообщение: настя
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 8 488 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 39 001 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 57 616 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 7 988 19.10.2011, 9:23 Посл. сообщение: Mangust

 



RSS Сейчас: 26.4.2024, 15:50