l0rd01
Янв. 13, 2013 21:35:47
Вообшем у меня есть скрипт для игры. В связи с некоторыми проблемами после обновления он перестал работать и выдает ошибку
* EventScripts caught an exception:
Traceback (most recent call last):
File “/games/тут был ип/css_27018/orangebox/cstrike/addons/eventscripts/es.py”, line 409, in loadModuleAddon
newaddon = __import__(importname)
File “/games/77.243.98.236/css_27018/css/cstrike/addons/eventscripts/bhoptimer/bhoptimer.py”, line 55, in <module>
mapDicts = cPickle.load(fileStream)
ValueError: insecure string pickle
Could not open script for addons/eventscripts/bhoptimer/es_bhoptimer.txt
Error source (console): (no script)
Уже неделю я веду войну с этим проказником.
Ошибку я нашёл это таберор. Как я понял виноват отступ. Но если я его исправляю умирает другой и так ломается вообше все. Помогите сил моих больше нету.
Сам скрипт я прикрепил.
Кусок кода в котором ошибка :
def unload():
es.addons.unregisterSayFilter(myfilter)
es.unregclientcmd('!back321')
del started
players.clear()
fileStream = open(dictPath, ‘w’)
cPickle.dump(mapDicts, fileStream)
fileStream.close()
gamethread.cancelDelayed('climbtime_checkloop')
gamethread.cancelDelayed('climbtimer_hudloop')
if playerList:
playerList.delete()
ZAN
Янв. 13, 2013 22:04:30
Сделал s.expandtabs(4), потом вручную исправил в некоторых местах, где не поправило автоматически.
Вообще скрипт написан небрежно. Прикрепил версию без синтаксических ошибок (хотя это не значит, что нет других ошибок)
l0rd01
Янв. 13, 2013 23:12:00
Исправил еше около 6 ошибок. Заступорился опять :
*** EventScripts caught an exception:
Traceback (most recent call last):
File “/games//css_27018/css/cstrike/addons/eventscripts/es.py”, line 409, in loadModuleAddon
newaddon = __import__(importname)
File “/games//css_27018/css/cstrike/addons/eventscripts/bhoptimer/bhoptimer.py”, line 57, in <module>
mapDicts = cPickle.load(fileStream)
ValueError: I/O operation on closed file
Could not open script for addons/eventscripts/bhoptimer/es_bhoptimer.txt
Error source (console): (no script)
Код опять же прикреплен
l0rd01
Янв. 14, 2013 00:32:15
так же как я понимаю ошибка которая выше мешает записывать в дб результаты таймера.
Помогает удаление дб , но выходит другая ошибка
NameError: global name ‘myfilter’ is not defined
Из за неё таймер записывает только один результат и крашиться до удаления дб.
Все ешё хелп ми D:
pyuser
Янв. 14, 2013 05:11:40
Ну так traceback же Вам все сказал - поменяйте местами 56 и 57 строки.
l0rd01
Янв. 14, 2013 11:38:49
pyuser
Ну так traceback же Вам все сказал - поменяйте местами 56 и 57 строки.
Вот в том то и загвозка, что меняя их местами ровно ничего не происходит.
l0rd01
Янв. 14, 2013 11:46:41
Для большей наглядности упаковал в пост вообше все, что связано со скриптом .
И вот, что я надумал, но пка не могу затестировать.
Проблема вообше возможно реально в 56 и 57 строке. Не меняя их первый результат таймер записывает его в дб на одной магии, а при втором “адрес уже не доступен” . Как буду дома попробую поменять местами, и обнулить дб.
l0rd01
Янв. 14, 2013 12:14:42
не помогло, все ешё
es.addons.registerSayFilter(myfilter)
NameError: global name ‘myfilter’ is not defined
l0rd01
Янв. 14, 2013 13:30:41
Завроде убрал ошибку выше. Но краш продолжаеться все на той же записи в дб
l0rd01
Янв. 14, 2013 21:20:45
Решил проблему. Дел тему