Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Технические вопросы по PtokaX _ Не ставятся скрипты на 0.4.1.1

Автор: DriverZX-10 25.8.2009, 10:31

Друзья,почему то не все скрипты API2 ставятся на хаб PtokaX 0.4.1.1(галочки не втыкаются на скрипт),некоторые даже вообще не появляются в GUI,хотя хаб пишет что скрипты загружены...
Что и где ни так могу делать?

Автор: STRELOK 25.8.2009, 11:24

Возможно, отсутствует какая-либо библиотека, которая необходима для работы скрипта, возможно, в скрипте есть ошибки, возможно, не создана папка, куда бы скрипт сохранял данные...

Автор: Wariner 25.8.2009, 16:07

1) если скрипт кладёшь скрипт в папку скрипт а скриптменеджеровое окно птоки открыто, то надо нажать обновить скрипты. если и после этого они не появляются значиит это не скрипты или положил не туда или просто расширение у скрипта не lua
2) если галочка не ставится то скрипт пишет ошибку! если не пишет то скорее всего это не тот API

Автор: INVISIBLE 25.8.2009, 20:18

DriverZX-10
Выложи тут код любого скрипта на которую Галочка не ставится. Возможно Wariner прав, мож это не тот Api. Edblbd код, можно сразу определить, Скрипты на птоку или нет, и под какой Api.

Автор: DriverZX-10 25.8.2009, 21:30

на этот галочка не ставится- "seen_script":

CODE
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
-- Данный скрипт взят с сайта http://mydc.ru/r/?http://board.univ-angers.fr/main.php
-- Оптимизировал и протестировал для русско-язычных хабов:
-- NRJ ( nrj@labo.ru )
--
--
-- Любые боты и скрипты - поддержка/обновления/новинки:
-- 1) http://mydc.ru/r/?http://dc.hovel.ru/
-- 2) http://mydc.ru/r/?http://forum.proc.ru/index.php?showforum=24
--
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------

BotName = "PtokaX" --имя бота

minLen = 2 -- минимальная длина ника
maxLen = 20 -- максимальная длина ника
-- 1: отсылать всем,
-- 2: отсылать пользователю, пославшему запрос
-- 3: отсылать в личку пользователю, сделавшему запрос (бот регистрируется на хабе)
HowToSend = 2

require("seen.dat")

function Main()
if HowToSend == 3 then
frmHub:RegBot(BotName)
end
end

function NewUserConnected(curUser)
local boolDisc = 0
if (boolDisc == 0) then
if seenArray == nil then
seenArray = {}
seenArray[curUser.sName] = {}
seenArray[curUser.sIP] = {}
seenArray[curUser.sName] = os.date(curUser.sName.." \
подсоединился %d/%m/%Y в %T и все еще остается здесь.")
seenArray[curUser.sIP] = os.date(curUser.sIP.." \
подсоединился %d/%m/%Y в %T и все еще остается здесь.")
SaveToFile("Seen.dat", seenArray, "seenArray")
SendToAll("Weee")
else
seenArray[curUser.sName] = os.date(curUser.sName.." \
подсоединился %d/%m/%Y в %T и все еще остается здесь.")
seenArray[curUser.sIP] = os.date(curUser.sIP.." \
подсоединился %d/%m/%Y в %T и все еще остается здесь.")
SaveToFile("Seen.dat", seenArray, "seenArray")
end
end
end

function OpConnected(curUser)
if seenArray == nil then
seenArray = {}
seenArray[curUser.sName] = {}
seenArray[curUser.sIP] = {}
seenArray[curUser.sName] = os.date(curUser.sName.." \
подсоединился %d/%m/%Y в %T и все еще остается здесь.")
seenArray[curUser.sIP] = os.date(curUser.sIP.." \
подсоединился %d/%m/%Y в %T и все еще остается здесь.")
SaveToFile("Seen.dat", seenArray, "seenArray")
else
seenArray[curUser.sName] = os.date(curUser.sName.." \
подсоединился %d/%m/%Y в %T и все еще остается здесь.")
seenArray[curUser.sIP] = os.date(curUser.sIP.." \
подсоединился %d/%m/%Y в %T и все еще остается здесь.")
SaveToFile("Seen.dat", seenArray, "seenArray")
end
end

function OpDisconnected(curUser)
if seenArray == nil then
seenArray = {}
seenArray[curUser.sName] = {}
seenArray[curUser.sIP] = {}
seenArray[curUser.sName] = os.date(curUser.sName.." \
отключился %d/%m/%Y в %T и с тех пор не появлялся.")
seenArray[curUser.sIP] = os.date(curUser.sIP.." \
отключился %d/%m/%Y в %T и с тех пор не появлялся.")
SaveToFile("Seen.dat", seenArray, "seenArray")
else
seenArray[curUser.sName] = os.date(curUser.sName.." \
отключился %d/%m/%Y в %T и с тех пор не появлялся.")
seenArray[curUser.sIP] = os.date(curUser.sIP.." \
отключился %d/%m/%Y в %T и с тех пор не появлялся.")
SaveToFile("Seen.dat", seenArray, "seenArray")
end
end

UserDisconnected = OpDisconnected

function OnError(ErrorMsg)
SendToOps(ErrorMsg)
end

function ChatArrival(curUser, data)
if seenArray == nil then
seenArray = {}
seenArray[curUser.sName] = {}
seenArray[curUser.sIP] = {}
seenArray[curUser.sName] = os.date(curUser.sName.." \
находится на хабе. Последний раз он писал сообщение %d/%m/%Y в %T .")
seenArray[curUser.sIP] = os.date(curUser.sIP.." \
находится на хабе. Последний раз он писал сообщение %d/%m/%Y в %T .")
SaveToFile("Seen.dat", seenArray, "seenArray")
else
seenArray[curUser.sName] = os.date(curUser.sName.." \
находится на хабе. Последний раз он писал сообщение %d/%m/%Y в %T .")
seenArray[curUser.sIP] = os.date(curUser.sIP.." \
находится на хабе. Последний раз он писал сообщение %d/%m/%Y в %T .")
SaveToFile("Seen.dat", seenArray, "seenArray")
end
local data = string.sub(data, 1, -2)
local s,e,cmd = string.find(data, "%b<>%s+[%!%+%?%#](%S+)")
if cmd then
local tCmds = {
["seen"] = function(curUser, data)
local s,e,arg = string.find(data, "%b<>%s+%S+%s+(%S+)")
if not arg then
if HowToSend == 1 then
SendToAll(BotName, "Правильно: !" ..cmd.. " <Ник/IP>")
elseif HowToSend == 2 then
curUser:SendData(BotName, "Правильно: !" ..cmd.. " <Ник/IP>")
elseif HowToSend == 3 then
curUser:SendPM(BotName, "Правильно: !" ..cmd.. " <Ник/IP>")
end
return 1
end
if (arg == curUser.sName) or (arg == curUser.sIP) then
if HowToSend == 1 then
SendToAll(BotName, "Вы не можете посмотреть \
информацию о себе " ..curUser.sName.. " ;)" )
elseif HowToSend == 2 then
curUser:SendData(BotName, "Вы не можете посмотреть \
информацию о себе " ..curUser.sName.. " ;)" )
elseif HowToSend == 3 then
curUser:SendPM(BotName, "Вы не можете посмотреть \
информацию о себе " ..curUser.sName.. " ;)" )
end
return 1
end
if seenArray[arg] == nil then
if HowToSend == 1 then
SendToAll(BotName, "Хм.. Я ни разу не видел на хабе этого пользователя "..arg.."!" )
elseif HowToSend == 2 then
curUser:SendData(BotName, "Хм.. Я ни разу не видел на хабе этого пользователя "..arg.."!" )
elseif HowToSend == 3 then
curUser:SendPM(BotName, "Хм.. Я ни разу не видел на хабе этого пользователя "..arg.."!" )
end
return 1
end
if HowToSend == 1 then
SendToAll(BotName, "Пользователь: "..seenArray[arg] )
elseif HowToSend == 2 then
curUser:SendData(BotName, "Пользователь: "..seenArray[arg] )
elseif HowToSend == 3 then
curUser:SendPM(BotName, "Пользователь: "..seenArray[arg] )
end
return 1
end,
}
if tCmds[cmd] then
return tCmds[cmd](curUser, data)
end
end
end

function Serialize(tTable, sTableName, sTab)
assert(tTable, "tTable equals nil");
assert(sTableName, "sTableName equals nil");
assert(type(tTable) == "table", "tTable must be a table!");
assert(type(sTableName) == "string", "sTableName must be a string!");
sTab = sTab or "";
sTmp = ""
sTmp = sTmp..sTab..sTableName.." = {\n"
for key, value in tTable do
local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key);
if(type(value) == "table") then
sTmp = sTmp..Serialize(value, sKey, sTab.."\t");
else
local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value);
sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
end
sTmp = sTmp..",\n"
end
sTmp = sTmp..sTab.."}"
return sTmp
end

function SaveToFile(file , table , tablename)
local handle = io.open(file,"w+")
handle:write(Serialize(table, tablename))
handle:flush()
handle:close()
end

function LoadFromFile(file)
local handle = io.open(file,"r")
if (handle ~= nil) then
loadstring(handle:read("*all"))
handle:flush()
handle:close()
end
end

http://mydc.ru/r/?http://imageshost.ru/links/0c0276856dd6e4433d8c72f163dbf3d5

Автор: mariner 25.8.2009, 21:51

это скрипт не для этой версии PtokaX

Автор: INVISIBLE 25.8.2009, 22:12

Wariner прав оказался, Api не тот.
DriverZX-10 тебе потребуется вот что http://mydc.ru/topic117.html
Насколько я знаю, что конвертор не гарантирует 100% перевод, так что придется чуть чуть самому поработать. Вещь кстати отличная, я своим внукам пожалуй ее оставлю big_smile.gif

Автор: Alexey 26.8.2009, 4:27

Ну там ещё проблемы с отсутствующими файлами, если верить сообщениям в окне ошибок.

Автор: DriverZX-10 27.8.2009, 13:24

Цитата(Alexey @ 26.8.2009, 2:27) *
Ну там ещё проблемы с отсутствующими файлами, если верить сообщениям в окне ошибок.

вот и вот,пишет- отсутствуют какие то там файлы *.dll....но какие файлы могут отсутствовать при запуске скрипта?все остальные же скрипты запускаются,этот же нет..и уже переконвертировал его в API 2 прогой которую посоветовали выше-всё одно не робит(((
Не знаю короче,может просто отказаться от его установки,но просто уже спортивный интерес разгорелся его запустить

Автор: Артём 27.8.2009, 15:30

DriverZX-10 тебе на скрипт seen.lua нужны библиотеки...

Автор: Setuper 27.8.2009, 16:31

Никакие длл библиотеки не нужно!
Просто скрипт писал не разбирающийся в этом человек, который не знает как работает функция require. Напиши вместо неё функцию dofile, и положи файл seen.dat в папку scripts вместе со скриптом, если и так не прокатит, то кладёшь его в папку, где находится ptokax.exe.

Видимо скрипт скачен не с нашего форума, так как на нашем форуме в этом скрипте именно dofile, а не require: http://mydc.ru/topic1665.html