PDA

Просмотр полной версии : Есть такая функция? :) или может кто её написать мне?


dyh9l
28.05.2011, 06:50
В общем, постоянно работает ~15 скриптов (Все скрипты это копии, одновременно работающие), часто приходится менять константы в каждом скрипте очень занудно раскрывать каждый скрипт, хотелось бы как нибудь управлять это все с 1 скрипта, имена констант там одинаковые (если это важно).
т.е, допустим в 15 скриптах
const
a = 50 ;
а я хочу изменить 1 махом во всех скриптах
a = 100;
Я видел какую то функцию, позволяющую вызывать процедуру с другого скрипта, дак мб и редактировать другой скрипт можно)

wimax
28.05.2011, 08:04
dyh9l, хз нащет функции но можно зделоть по другому)
Открываешь все нужные скрипты в nodepad++ там есть вкладка serach потом replace и пишешь что на что заменить и replace in all opened documents
и все готово) также можно прогу написать на делфи чтоб открывала все твои скрипты и автоматом заменял

Breadfan
28.05.2011, 15:31
А засунуть все изменяемые константы в один отдельный *.ini файл - никак? Можно и в tlist их сунуть, можно и отдельный модуль сделать содержащий переменные эти. Как угодно.

SeregaZ
28.05.2011, 15:35
собери всех чаров в пати, и рассылай им сообщение в пати чате в виде своей константы. ничего сложного :)

Добавлено через 1 минуту
о! даже без посылки на сервер, а сендтуклиент.

dyh9l
28.05.2011, 16:39
SeregaZ, тоже мысль, но она какая-то странная, разве константу можно будет поменять без выключения скрипта?
да и как константе значение присваивать, если ":=" это так вроде тока с переменными всякими, а "=" он примет как проверку, равно ли?

Добавлено через 33 минуты
разве что мысль появилась, все где используются константы добавить туда переменные, а в ините заполнять эти переменные константами, а чатом уже в свою очередь менять переменные)

wimax
28.05.2011, 17:36
dyh9l, a:word;?

dyh9l
28.05.2011, 17:48
wimax, integer и string, несколько констант

SeregaZ
28.05.2011, 21:45
кстати да! а нахрена именно константа то? чем переменная плоха? лишним знаком двоеточия чтоль?

Azury
28.05.2011, 22:26
в PHP настройки выводятся обычно отдельным файлом например config.php
и в каждом файле где оно надо, подключают этот файл include "config.php";

все изменения в файле настроек сразу же меняют работу скриптов задйствующих эти настройки)

dyh9l
28.05.2011, 22:51
блеа)))))) скока переписывать щас)

wimax
29.05.2011, 01:46
dyh9l, блин береш нод пад и заменой за пару кликов все делаеш трудно чтоли)

dyh9l
29.05.2011, 02:17
дак, обновлять скрипты каждый раз, включать их, это же ужас

SeregaZ
29.05.2011, 15:36
поэтому я и просил глобальные переменные для скриптов в л2пх :) сказали писать плагин, так я то не бум бум... плагин блин...

с глобальной переменной как раз бы твой момент решался в три клика. то есть она глобальная для всех скриптов, все скрипты получали бы значения из какого-то определенного поля с таблицей-описанием этих глобальных переменных и констант.

кстати! хочу поставить звуковую сирену на дисконект клиента. не совсем понял команды из плагина, который родной в комлекте идет. есть примеры этих типа OnDisconnect?

dyh9l
29.05.2011, 22:17
supernewbie напиши)))))))))))))))))))))))))))))
серега это нерабочие штуки, я когда с подобным обращался, алекс тоже мне сказал, пиши плагин

wimax
29.05.2011, 23:41
dyh9l,ну так в исходниках нод пада посмотри функцию замены текста и перепишы ие

dyh9l
30.05.2011, 00:07
мне написали)))))))))))))))))) уря))))))))))))

alexteam
30.05.2011, 16:59
А засунуть все изменяемые константы в один отдельный *.ini файл - никак?
самый нормальный ответ.

dyh9l
30.05.2011, 19:34
не представляю просто даже как это сделать, а точнее брать константы из ини файла

Breadfan
31.05.2011, 08:41
примитивно и вкратце:
в ини файле строки
one=1000
two=2000

в скрипте считываеш:
const_ini.loadfromfile('xxxx.ini');
var_one:=vartoint(const_ini.values('one'));
var_two:=vartoint(const_ini.values('two'));

Все в том же скрипте на заточку имеется.
Немного изменив считывание и сделав запись - можно упростить, и получать сразу наборы констант для разных клиентов из инишек формата
'имя перса 1'='набор констант для 1'
'имя перса 2'='набор констант для 2'

у меня примерно так бд велась:
запись:
//на входе: x,y,z,oid,class,name
//на выходе: хекс строка в бд
x,y,z,oid,class:integer;
name:string;
...........
_buf:=buf;
buf:='';WriteD(x);WriteD(y);WriteD(z);WriteD(class );WriteS(name);
CharInfo.Values(inttostr(oid)):=buf;
buf:=_buf;
и чтение:
//на входе oid перса
//на выходе:набор переменных
_pck:=pck;j:=1;
pck:=CharInfo.Values(inttostr(oid));
x:=ReadD(j);y:=ReadD(j);z:=ReadD(j);class:=ReadD(j );name:=ReadS(j);
pck:=_pck;
.............в итоге - 1 перс = 1 запись, без лишних телодвижений с перебиранием строк.