Все обсуждения - Форум для программистов, программируем с умом http://www.seocoder.ru/discussions/feed.rss Sat, 19 May 12 11:03:45 -0400 Все обсуждения - Форум для программистов, программируем с умом RUS Moscow WordPress Meetup http://www.seocoder.ru/discussion/281/moscow-wordpress-meetup Thu, 17 May 2012 05:07:36 -0400 Marfuta 281@/discussions Хочу пригласить всех, кому интересен WordPress на третий московский WordPress Meetup!

Moscow WordPress Meetup - это встречи на которых программисты, блоггеры, дизайнеры и все, кому интересен WordPress деляться своими знаниями и впечатлениями.
Участие во встрече бесплатно. Если есть желание, можно выступить с небольшим докладом на тему, связанную с WordPress.
Мы, в свою очередь, предлагаем вам интересную беседу, несколько докладов с презентациями, чай и кофе.
Подробности предстоящей встречи тут: www.facebook.com/events/289770961114314
В этот раз мы встречаемся в офисе ассоциации "Собрание" в районе метро Печатники. Начало в 11:15, вход свободный. Заявленные презентации:

* Что нового в WordPress 3.4
* Реализация Wiki средствами WordPress
* Введение в GNU GPL
* Повышаем производительность WordPress с HyperDB

Группа WordPress Meetup: www.facebook.com/groups/wordpressmoscow


Будем рады вас видеть! ]]>
Помогите пожалуйста отредактировать прогу.Очень нужн http://www.seocoder.ru/discussion/280/pomogite-pozhaluysta-otredaktirovat-progu.ochen-nuzhn Mon, 14 May 2012 18:51:40 -0400 ToxaRU 280@/discussions Я в такси работаю, и заказы идут через прогу для андроид. Пункт межгород обновляется через определенные промежутки времени(как я понимаю-через эти промежутки прога делает запрос и получает ответ с заказами). Мне очень нужно внести в прогу изменения которые позволят менять выдержку времени обновления данных с сервера. чтобы в зависимости от надобности я мог ставить от 1 сек до 15 например.
Трафик не важен-у меня мегафон с 5гб в месяц только для работы. Думаю этого обьема должно с лихвой хватить даже для посекундного обновления.
мое мыло xyz1982@mail.ru
Спасибо]]>
Форум Найти IT http://www.seocoder.ru/discussion/279/forum-nayti-it Fri, 11 May 2012 10:52:32 -0400 Baracuda 279@/discussions прошу хорошего, умного совета http://www.seocoder.ru/discussion/278/proshu-horoshego-umnogo-soveta Thu, 10 May 2012 08:57:19 -0400 Sasha 278@/discussions Очень, вас прошу!!!!]]> Как вы отдыхаете? http://www.seocoder.ru/discussion/5/kak-vy-otdyhaetes Sat, 16 Apr 2011 11:22:13 -0400 seocoder 5@/discussions Регистронезависимый LIKE в SQLite для кириллицы http://www.seocoder.ru/discussion/158/registronezavisimyy-like-v-sqlite-dlya-kirillicy Sun, 19 Jun 2011 12:34:00 -0400 Wiper 158@/discussions Написание системы управлениея http трафиком http://www.seocoder.ru/discussion/276/napisanie-sistemy-upravlenieya-http-trafikom Thu, 26 Apr 2012 06:31:10 -0400 madcracker 276@/discussions
В комманду для нового проекта с финансированием ищется кодер владеющий на хорошем уровне: Java Script(ajax), Action Script(Flash), Java , CSS, Perl/C# .
Возможно сдельное/постоянное сотрдуничество, всё зависит от того как сработаемся. Я очень прошу пустословов и людей с умыслом кидалова не тратить Ваше время, потому что никаких предоплат на перед не делается.
Хотите серьезно работать, покажите вначале что Вы умеете работать, а мы в свою очередь покажем Вам что справедливо оплачиваем труд.
Основная задача -это наисание системы для управления http трафиком, TDS но с определенными критериями фильтрации:
1. Получение всей возможной и полезной информации о посетители, на основе которой реализовать проверки на реального посетителя и бота.
2. Фильтрация трафика с помощью удобной системы управления потоками по признакам страны, языка системы и т.д.
3. Мобильность системы и возможность её быстро и не сложно инегрировать к новому серверу/сайту.
Бюджет проекта составляет: 1000-1200$
Прошу устанавливать контакт со мной только тех, кто знает что будет делать. Прошу не тратить время попусту
ICQ#: 907247]]>
отлов ошибок. валидация в нескольких моделях http://www.seocoder.ru/discussion/274/otlov-oshibok.-validaciya-v-neskolkih-modelyah Wed, 04 Apr 2012 16:52:21 -0400 ko3 274@/discussions
я использую метод, описанный здесь http://kohana3.ru/module/orm#%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9-%D0%BE%D0%B4%D0%BD%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE
в результате получаю сообщение об ошибке, которое говорит о том, что используется несуществующий метод merge()

так же пробовал проверять таким образом
class Model_Checkcategory {

// public $error;

public function check($category, $title, $text, $active)
{


// $error = new ORM_Validation_Exception('', Validation::factory(array()));

$menuL = ORM::factory('menuL');
$page = ORM::factory('page');

try
{
$menuL->title = $category;
$menuL->active = $active;
$menuL->check();

$page->menuL_id = $menuL->pk();
$page->title = $title;
$page->content = $text;
$page->check();

}
catch(ORM_Validation_Exception $e)
{
//$this->error = merge($e);
$this->error = $e->errors('validation');
return FALSE;
}

$menuL->save();
$page->save();

return TRUE;
}

}
в результате получа или сообщения об ошибках валидации для первой модели(rules()), или сообщения об ошибках валидации для второй модели(rules()).

здесь можно скачать архив всего проекта, если так будет понятнее мой вопрос http://prozaik.16mb.com/val/kohana_ART.rar

буду благодарен, если посоветуете принципиально другой способ решения проблемы.]]>
C# http://www.seocoder.ru/discussion/273/c Mon, 02 Apr 2012 13:47:28 -0400 Sveta11 273@/discussions - фамилия, имя;
- номер телефона;
- день рождения (массив из трех чисел).
Определить методы доступа к этим полям и методы для чтения из файла и записи в файл для объектов типа NOTE.
2. Написать программу, выполняющую следующие действия:
- ввод из файла данных в массив, состоящий из восьми объектов типа NOTE; записи должны быть упорядочены по датам дней рождения;
- вывод в файл информации о человеке, номер телефона которого введен с клавиатуры; если такого нет, выдать в файл соответствующее сообщение
]]>
Kohana http://www.seocoder.ru/discussion/13/kohana Sat, 16 Apr 2011 14:35:39 -0400 seocoder 13@/discussions C/C++: Для новичков http://www.seocoder.ru/discussion/76/cc-dlya-novichkov- Tue, 14 Jun 2011 15:36:42 -0400 nerodocente 76@/discussions Если у вас есть вопрос, поверьте, существовало множество случаев, когда у людей возникал тот же вопрос, притом некоторые удосужились задать его где-нибудь в интернете. Если вы нашли такой вопрос, ответ на который не выдает поисковик - вероятно вы стали мастером, поздравляю, вам нечего делать на этом форуме (в разделе "для новичков").

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

Паттерны. Антипаттерны.
Скорее всего паттерны поведают мало, в первое время, но уделите им время, книжка банды четырех - тонкая (немного букв), заложите ее в сознание - она даст о себе знать, когда придет время. Во многих антипаттернах, вероятнее всего, вы узнаете себя, не пугайтесь - процесс нормальный, все проходят через это, не поняв ошибки трудно ее устранить.

База.
Пример:
Ежели вы настропалились заниматься Image Processing'ом, то вам нужно разбираться в таких вещах как:
- вычислительная математика: основные понятия, численное дифференцирование, интегрирование;
- хранение изображений, видеоряда в контексте данной операционной системы.
- etc.
Как бы скучно это ни было, но все премудрости изучить придется. Существенно помочь могут вузы.

Решимость.
Хороший программист всегда востребован. Если вы не востребованы - значит вы недостаточно хороший программист. Улучшайте навыки - не поддавайтесь синдрому непризнанного гения.

Я все знаю.
Нет. Вы ничего не знаете.
Автор испытывал подобное ощущение, по крайней мере, трижды в жизни (благодарю умных людей, которые выводили из этого состояния). Вы никогда не будете знать все, даже такое подмножество, как конкретный язык программирования. Всегда найдутся темные углы, чаще всего эти "углы" окажутся активно используемыми. Скорее всего вы что-то упустили. Языки меняются, то что вчера было стандартом - сегодня стало ошибкой.

Образование.
Не надейтесь, что кто-то вас обучит (по крайней мере в нашей стране - РФ). Считайте, что все, что вам необходимо узнать - ваша задача.
Такой, и только такой подход приведет вас к успеху.

Как начать обучение.
Действительно сложный вопрос. Нет, я знаю рецепт, но дело в том, что таких рецептов - множество. Сложность заключается в том, что многие программисты, пройдя свой путь, начинают предписывать их как единственно правильные, некоторые только рекомендуют, но, в силу высоты их авторитета перед новичками, это равносильно предписыванию. Тут как на выборах - голосуй или проиграешь. Разница с реальными выборами в том, что от твоего критического отношения действительно зависит все.
Если нетерпится с чего то начать - начните с insidecpp.ru (разделы арт, паттерны, антипаттерны, заметки заслуживают внимания. Замечу, что сайт не мой, даже автора не знаю лично) - автор слишком категоричен, по моему мнению, но для новичка такая крайность - самое оно (снова ИМО).]]>
реализация речевого сигнала методом фурье http://www.seocoder.ru/discussion/263/realizaciya-rechevogo-signala-metodom-fure Fri, 09 Mar 2012 15:43:38 -0500 nikol 263@/discussions HelpDesk http://www.seocoder.ru/discussion/262/helpdesk Mon, 05 Mar 2012 13:02:37 -0500 wymkent 262@/discussions PHP vs Python http://www.seocoder.ru/discussion/15/php-vs-python Sun, 17 Apr 2011 04:51:51 -0400 seocoder 15@/discussions http://www.seocoder.org/2011/04/04/php-vs-python/]]> Эфект по событию в Javascript http://www.seocoder.ru/discussion/260/efekt-po-sobytiyu-v-javascript Mon, 27 Feb 2012 04:59:38 -0500 yamoodo 260@/discussions Вы могли бы мне подсказать, ка решить такую задачу:
1. есть таблица с несколькими ячейками, в каждой ячейке указан фон картинкой и текст, при наведении на определенную ячейку фон в ней меняется и оформление текста, если убрать курсор - восстанавливается прежнее оформление.
2. при нажатии необходимо чтобы то оформление которое было при наведении на ячейку "фиксировалось", и если до этого было нажато на другую ячейку, то там тоже чтобы сбрасывалось оформление на предыдущее.

Первый пункт я реализовал, см. код, а вот как быть со вторым не знаю :(


function change_size_1(id) {
document.getElementById(id).style.color = '#fff';
document.getElementById(id).style.backgroundImage = 'url(images/size_1b.png)';
};
function source_size_1(id) {
document.getElementById(id).style.color = '#000';
document.getElementById(id).style.backgroundImage = 'url(images/size_1a.png)';
};

<'td height="40" align="center" valign="middle" background="images/size_1a.png" id="size_1" onmouseover="change_size_1('size_1')" onmouseout="source_size_1('size_1')" style="cursor:pointer" title="Размер - 35,5 (система размеров RUS)" class="size_1">35,5
<'td height="40" align="center" valign="middle" background="images/size_1a.png" id="size_2" onmouseover="change_size_1('size_2')" onmouseout="source_size_1('size_2')" style="cursor:pointer" title="Размер - 35,5 (система размеров RUS)" class="size_1">35,5
<'td height="40" align="center" valign="middle" background="images/size_1a.png" id="size_3" onmouseover="change_size_1('size_3')" onmouseout="source_size_1('size_3')" style="cursor:pointer" title="Размер - 35,5 (система размеров RUS)" class="size_1">35,5


Заранее благодарен.]]>
Создание апплетов для G19 http://www.seocoder.ru/discussion/259/sozdanie-appletov-dlya-g19 Fri, 24 Feb 2012 09:43:19 -0500 FordiN_ 259@/discussions Python на Java. Скрипт эвента для Lineage2 http://www.seocoder.ru/discussion/258/python-na-java.-skript-eventa-dlya-lineage2 Tue, 07 Feb 2012 04:57:13 -0500 Holsten 258@/discussions
[code]import sys
from l2dot.gameserver.model.quest import State
from l2dot.gameserver.model.quest import QuestState
from l2dot.gameserver.datatables import DoorTable
from l2dot.gameserver.datatables import SkillTable
from l2dot.gameserver.model.quest.jython import QuestJython as JQuest
from l2dot.gameserver import Announcements
from l2dot import L2DatabaseFactory
from l2dot.gameserver.ai import CtrlIntention
from l2dot.util import Rnd
from java.lang import System
from l2dot.gameserver.model import L2World

qn = "5556_Base"
# =======================================
# НЕ ТРОГАЕМ
# =======================================
closed=1
res_timer=0
npc1=0
npc2=0
TEAM1 = []
TEAM2 = []
attacked = 0
annom = 1
# =======================================
# КОНФИГ
# =======================================
NAME = u"\u0417\u0430\u0445\u0432\u0430\u0442 \u0431\u0430\u0437\u044b" # Название (только английские символы)
LOC = u"\u0413\u0438\u0440\u0430\u043d" # Место, где вы поставили регистрирующего НПЦ.
REGISTER = 99998 # Регистрирующий нпц. НЕ ЗАБЫВАЕМ ДЕЛАТЬ ЕГО БЕССМЕРТНЫМ.
locr = [82840,149402,-3468] # Соответственно координаты, где будет появляться НПЦ
PENI = 4037 # Итем, необходимый для участия
PENI_KOL = 0 # Сколько итемов необходимо для участия. Если хотите чтобы участие было бесплатным - поставте 0
LEVEL = 76 # Минимальный уровень, на котором игрок сможет принять участие в ивенте.
AFTER_RESTART = 3 # Время, которое пройдёт от запуска сервера(перезагрузки скрипта) до начала ивента.
TIME_FOR_WAIT = 60 # Время между ивентами в минутах
TIME_FOR_REG = 1 # Время на регистрацию в минутах
ANNOUNCE_INTERVAL = 1 # Как часто аннонсить о регистрации на ивент в минутах.
YCH_MIN = 1 # Минимальное количество участников в команде
YCH_MAX = 20 # Максимальное количество участников в команде
REWARD =[[8762,1,100],[6407,1,100]] # Список наград. Выдаётся каждому участнику. Формат записи: [[itemId1,count1,chance1],[itemId2,count2,chanceN],...[itemIdN,countN,chanceN]]
t1 =[-90915,148611,-3626] # Место телепорта 1 команды и 1 базы
t2 =[-91182,151404,-3626] # Место телепорта 2 команды и 1 базы
BASE1 = 55561 # ИД НПЦ базы №1
BASE2 = 55562 # ИД НПЦ базы №2
com1 = "Dark Team" # Название 1 команды
com2 = "Light Team" # Название 2 команды
RES_TIME = 2 # Время, через которое будут ресаться дохлые игроки - секунды.

print "3AXBAT 6A3bI:................................Initialized"
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

def init_LoadGlobalData(self) :
self.startQuestTimer("open", AFTER_RESTART *60000, None, None)
return

def onTalk (Self,npc,player):
global TEAM1,TEAM2,npc1,npc2,closed
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == REGISTER:
if closed<>1:
if not player.isInOlympiadMode() :
if player.getLevel() >= LEVEL:
if player.getName() not in TEAM1 + TEAM2 :
if len(TEAM1)>len(TEAM2) :
kolych = len(TEAM1)
else:
kolych = len(TEAM2)
if kolych <= YCH_MAX :<br /> if PENI_KOL<>0:
if st.getQuestItemsCount(PENI)>PENI_KOL:
st.takeItems(PENI,PENI_KOL)
if len(TEAM1)>len(TEAM2):
TEAM2.append(player.getName())
return "reg.htm"
else:
TEAM1.append(player.getName())
return "reg.htm"
else:
st.exitQuest(1)
return "nopeni.htm"
else:
if len(TEAM1)>len(TEAM2):
TEAM2.append(player.getName())
return "reg.htm"
else:
TEAM1.append(player.getName())
return "reg.htm"
else:
return "max.htm"
else:
return "yje.htm"
else:
return "lvl.htm"
else:
return "You register in olympiad games now"
else:
return "noreg.htm"
return

def onAdvEvent (self,event,npc,player):
global TEAM1,TEAM2,npc1,npc2,res_timer,annom,closed
if event == "open" :
TEAM1=[]
TEAM2=[]
closed=0
annom=1
npc=self.addSpawn(REGISTER,locr[0],locr[1],locr[2],30000,False,0)
self.startQuestTimer("close", TIME_FOR_REG*60000, npc, None)
self.startQuestTimer("announce", ANNOUNCE_INTERVAL*60000, None, None)
Announcements.getInstance().announceToAll(u"\u041e\u0442\u043a\u0440\u044b\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0430 \u044d\u0432\u0435\u043d\u0442 "+str(NAME)+u". \u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432 \u0433\u043e\u0440\u043e\u0434\u0435 "+str(LOC)+".")
if event == "close":
res_timer = 1
self.startQuestTimer("res", RES_TIME*1000, None, None)
self.startQuestTimer("open", TIME_FOR_WAIT*60000, None, None)
for nm in TEAM1:
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if not i.isOnline() or i.isInOlympiadMode():
TEAM1.remove(nm)
else:
TEAM1.remove(nm)
for nm in TEAM2:
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if not i.isOnline() or i.isInOlympiadMode():
TEAM2.remove(nm)
else:
TEAM2.remove(nm)
while abs(len(TEAM1)-len(TEAM2))>1:
if len(TEAM1)>len(TEAM2):
self.saveGlobalQuestVar(str(TEAM1[0].getObjectId()), "team2")
TEAM2.append(TEAM1[0])
TEAM1.remove(TEAM1[0])
else:
self.saveGlobalQuestVar(str(TEAM2[0].getObjectId()), "team1")
TEAM1.append(TEAM2[0])
TEAM2.remove(TEAM2[0])
if (len(TEAM1)+len(TEAM2))< 2*YCH_MIN :
npc.deleteMe()
closed=1
Announcements.getInstance().announceToAll(u"\u042d\u0432\u0435\u043d\u0442 "+str(NAME)+u" \u043e\u0442\u043c\u0435\u043d\u0451\u043d \u0438\u0437-\u0437\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432!!!")
else:
closed=1
Announcements.getInstance().announceToAll(u"\u042d\u0432\u0435\u043d\u0442 "+str(NAME)+u" \u043d\u0430\u0447\u0430\u043b\u0441\u044f!!!")
npc.deleteMe()
npc1=self.addSpawn(BASE1,t1[0],t1[1],t1[2],30000,False,0)
npc2=self.addSpawn(BASE2,t2[0],t2[1],t2[2],30000,False,0)
for nm in TEAM1 :
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
i.stopAllEffects()
i.setTeam(2)
i.broadcastStatusUpdate()
i.broadcastUserInfo()
i.teleToLocation(t1[0]+100,t1[1],t1[2])
for nm in TEAM2 :
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
i.stopAllEffects()
i.setTeam(1)
i.broadcastStatusUpdate()
i.broadcastUserInfo()
i.teleToLocation(t2[0]+100,t2[1],t2[2])
if event == "announce" and closed==0 and (TIME_FOR_REG - ANNOUNCE_INTERVAL * annom)>0:
Announcements.getInstance().announceToAll(str(TIME_FOR_REG - ANNOUNCE_INTERVAL * annom ) + u" \u043c\u0438\u043d\u0443\u0442(\u044b) \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u044d\u0432\u0435\u043d\u0442\u0430 "+str(NAME)+u" \u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432 \u0433\u043e\u0440\u043e\u0434\u0435 "+str(LOC)+u". \u0423\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e "+str(len(TEAM1))+u" Dark Team \u0438 "+str(len(TEAM2))+u" Light Team.")
annom=annom+1
self.startQuestTimer("announce", ANNOUNCE_INTERVAL*60000, None, None)
if event == "return_1" :
res_timer = 0
for nm in TEAM1 :
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
i.teleToLocation(locr[0],locr[1],locr[2])
i.setTeam(0)
i.broadcastStatusUpdate()
i.broadcastUserInfo()
for nm in TEAM2 :
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
i.teleToLocation(locr[0],locr[1],locr[2])
i.setTeam(0)
i.broadcastStatusUpdate()
i.broadcastUserInfo()
Announcements.getInstance().announceToAll(u"\u042d\u0432\u0435\u043d\u0442 "+str(NAME)+u" \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f. \u041f\u043e\u0431\u0435\u0434\u0438\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 "+str(com1)+".")
if event == "return_2" :
res_timer = 0
for nm in TEAM1 :
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
i.teleToLocation(locr[0],locr[1],locr[2])
i.setTeam(0)
i.broadcastStatusUpdate()
i.broadcastUserInfo()
for nm in TEAM2 :
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
i.teleToLocation(locr[0],locr[1],locr[2])
i.setTeam(0)
i.broadcastStatusUpdate()
i.broadcastUserInfo()
Announcements.getInstance().announceToAll(u"\u042d\u0432\u0435\u043d\u0442 "+str(NAME)+u" \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f. \u041f\u043e\u0431\u0435\u0434\u0438\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 "+str(com2)+".")
if event == "exit" :
if player.getName() in TEAM1:
TEAM1.remove(player.getName())
else:
TEAM2.remove(player.getName())
return "exit.htm"
if event == "res" and res_timer==1:
self.startQuestTimer("res", RES_TIME*1000, None, None)
for nm in TEAM1:
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
if i.isDead():
i.doRevive(0)
i.setCurrentCp(i.getMaxCp())
i.setCurrentHp(i.getMaxHp())
i.setCurrentMp(i.getMaxMp())
i.stopAllEffects()
i.setTeam(0)
i.setTeam(2)
i.broadcastStatusUpdate()
i.broadcastUserInfo()
i.teleToLocation(t1[0]+100,t1[1],t1[2])
for nm in TEAM2:
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
if i.isDead():
i.doRevive(0)
i.setCurrentCp(i.getMaxCp())
i.setCurrentHp(i.getMaxHp())
i.setCurrentMp(i.getMaxMp())
i.stopAllEffects()
i.setTeam(0)
i.setTeam(1)
i.broadcastStatusUpdate()
i.broadcastUserInfo()
i.teleToLocation(t2[0]+100,t2[1],t2[2])
return

def onAttack (self,npc,player,damage,isPet):
npcId = npc.getNpcId()
if npcId == BASE2 and player.getName() not in TEAM1 :
player.reduceCurrentHp(99999,player)
if npcId == BASE1 and player.getName() not in TEAM2 :
player.reduceCurrentHp(99999,player)
return

def onSkillSee (self,npc,player,skill,targets,isPet) :
if player.getTarget() == npc and skill.getId() in [1218,1015,1258,1011,1401,58,1217,329]:
player.setTeam(0)
player.broadcastStatusUpdate()
player.broadcastUserInfo()
player.teleToLocation(locr[0],locr[1],locr[2])
if player.getName() in TEAM1 :
TEAM1.remove(player.getName())
elif player.getName() in TEAM2 :
TEAM2.remove(player.getName())

def onKill(self,npc,player,isPet):
global TEAM1,TEAM2,npc1,npc2,res_timer
npcId = npc.getNpcId()
if npcId == BASE1:
res_timer=0
self.startQuestTimer("return_2", 10000, None, None)
npc2.deleteMe()
for nm in TEAM2 :
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
for id, count, chance in REWARD :
if Rnd.get(100)<=chance :<br /> i.getQuestState(qn).giveItems(id,count)
if npcId == BASE2:
res_timer=0
self.startQuestTimer("return_1", 10000, None, None)
npc1.deleteMe()
for nm in TEAM1 :
i=L2World.getInstance().getPlayer(nm)
if i<>None:
if i.isOnline() :
for id, count, chance in REWARD :
if Rnd.get(100)<=chance :<br /> i.getQuestState(qn).giveItems(id,count)
return

QUEST = Quest(5556, qn, "Custom")

QUEST.addKillId(int(BASE1))
QUEST.addAttackId(int(BASE1))
QUEST.addKillId(int(BASE2))
QUEST.addAttackId(int(BASE2))
QUEST.addStartNpc(int(REGISTER))
QUEST.addTalkId(int(REGISTER))
QUEST.addSkillSeeId(int(BASE1))
QUEST.addSkillSeeId(int(BASE2))[/code]
Знаю что етот кусок отвечает за запрет наносить дамаг по своей базе.

[code] def onAttack (self,npc,player,damage,isPet):
npcId = npc.getNpcId()
if npcId == BASE2 and player.getName() not in TEAM1 :
player.reduceCurrentHp(99999,player)
if npcId == BASE1 and player.getName() not in TEAM2 :
player.reduceCurrentHp(99999,player)
return[/code]
Мои примерные догадки как может выглядеть:

[code] if player = target.getLevel() not in TEAM1 :
player.getLevel()
if player = target.getLevel() not in TEAM2 :
player.getLevel()[/code]
Или так:

[code] if player = target.getLevel() not in TEAM1 :
target.getLevel()
if player = target.getLevel() not in TEAM2 :
target.getLevel()[/code]
Но так же не понятно куда етот кусок вставлять и при каких условиях. Кто разбирается плиз помогите.]]>
ScriptJava Framework - готовые примеры на javascript http://www.seocoder.ru/discussion/257/scriptjava-framework-gotovye-primery-na-javascript Tue, 07 Feb 2012 03:21:20 -0500 perepyk 257@/discussions
ScriptJava это JavaScript Framework, который создан для облегчения разработки динамических веб-приложений.

[B]ScriptJava Framework[/B]

* работа с элементами
* работа с ajax
* динамическая подгрузка скриптов
* динамическое создание элементов
* динамическая подгрузка css стилей
* отправка файлов через ajax
* отправка формы через ajax
* работа с cookie
* работа с событиями
* работа с браузером, экраном, числами, элементами

Подробный мануал на русском
http://scriptjava.net/

Поддерживает все современные браузеры!

[COLOR=Red][B]Краткое описание функций[/B][/COLOR]

[CODE]
$$() - получение доступа к элементам
$$a() - работа с ajax
$$c() - работа с cookie
$$e() - работа с событиями
$$f() - отправка форм через ajax
$$i() - динамическое подключение скриптов стилей и создание элементов
$$r() - работа с событием window.onload
$$s() - набор полезных функций по работе с экраном, мышью, браузером, элементами, числами и т.д.
[/CODE]

[B]Примеры на scriptjava:[/B]

[COLOR=Red][B]Отправка файла через AJAX[/B][/COLOR]

Вначале нужно подключить сам scriptjava фреймворк

[CODE]

[/CODE]

Для отправки файлов серверу есть такая форма

[CODE]





Тут будет статус загрузки



Отправить файл через Ajax


[/CODE]

Пишем для него функцию отправки

[CODE]

function SendFile() {
$$f({
formid:'test_form',//id формы
url:'ajax.php',//адрес на серверный скрипт который будет принимать файл
onstart:function () {//действие при начале отправки файла на сервер
$$('status','начинаю отправку файла');
},
onsend:function () {//действие по окончании отправки файла на сервер
$$('status',$$('status').innerHTML+'
файл успешно загружен');
}
});
}

[/CODE]

Чтобы получить ответ от сервера, содержимое файла ajax.php может быть таким:

[CODE]
<?php<br /> if($_FILES['upload_file']['size']>0) {
echo '

var elm=parent.window.document.getElementById("status");
elm.innerHTML=elm.innerHTML+"
Получен файл '.$_FILES['upload_file']['name'].' размером '.$_FILES['upload_file']['size'].' байт";

';
}
?>
[/CODE]

[COLOR=Red][B]Работа с cookies[/B][/COLOR]

Вначале нужно подключить сам scriptjava фреймворк

[CODE]

[/CODE]

Для проверки поддерживает и браузер кукисы можно использовать следующий код:

[CODE]

//проверяю поддержку cookie браузером
if($$c.test()) {
alert('браузер поддерживает cookie');
}
else {
alert('браузер не поддерживает cookie');
}

[/CODE]

Вот так можно установить кукисы на 10 секунд

[CODE]

//устанавливаю cookie
$$c.set('test', 'содержимое test', 10);

[/CODE]

Вот так можно считать кукисы

[CODE]

//читаю cookie
alert($$c.get('test'));

[/CODE]

Для удаления установленных кукисов достаточно использовать такой код

[CODE]

//удаляю cookie
$$c.erase('test');

[/CODE]

[COLOR=Red][B]Отправка формы через Ajax.[/B][/COLOR]

Вначале нужно подключить сам scriptjava фреймворк

[CODE]

[/CODE]

Допустим на странице сайта у нас есть форма

[CODE]

Имя:

Комментарий:


Тут будет статус загрузки



Отправить форму через Ajax


[/CODE]

Ее можно отправить на сервер через AJAX с помощью кода

[CODE]

function SendForm() {
//отправка файла на сервер
$$f({
formid:'test_form',//id формы
url:'comment.php',//адрес на серверный скрипт, такой же как и в форме
onstart:function () {//действие при начале отправки
$$('result','начинаю отправку');//в элемент с id="result" выводим результат
},
onsend:function () {//действие по окончании отправки
$$('result',$$('result').innerHTML+'
комментарий успешно отправлен');//в элемент с id="result" выводим результат
}
});
}

[/CODE]

Чтобы получить ответ от сервера, содержимое файла comment.php может быть таким:

[CODE]
<?php<br /> if(isset($_POST['name'])) {
echo'

var elm=parent.window.document.getElementById("result");
elm.innerHTML=elm.innerHTML+"
Получено имя '.str_replace("\r","",str_replace("\n","
",htmlspecialchars(stripslashes($_POST['name'])))).' с текстом '.str_replace("\r","",str_replace("\n","
",htmlspecialchars(stripslashes($_POST['comment'])))).' ";

';
}
?>
[/CODE]

[COLOR=Red][B]Динамическое подключение скриптов[/B][/COLOR]

Вначале нужно подключить сам scriptjava фреймворк

[CODE]

[/CODE]

Чтобы динамически подключить скрипт, а также после его загрузки выполнить из него код, нужно выпонить следующий код

[CODE]

function GetScript() {
//Подключаю внешний скрипт и запускаю из него метод
$$i({
create:'script',
attribute: {
'type':'text/javascript',
'src':'http://nagon.net/js/NRMSLib.js'//адрес на подключаемый скрипт
},
insert:$$().body,
onready:function() {
modules.sound.start();//этот метод запускается уже из подключенного скрипта
}
});
}
GetScript();

[/CODE]

Дописываю вышепоказанный код, теперь он будет запускаться сразу после загрузки сайта:

[CODE]

//выполнение кода только после загрузки документа
$$r(function() {
//Подключаю внешний скрипт и запускаю из него метод
$$i({
create:'script',
attribute: {
'type':'text/javascript',
'src':'http://nagon.net/js/NRMSLib.js'//адрес на подключаемый скрипт
},
insert:$$().body,
onready:function() {
modules.sound.start();//этот метод запускается уже из подключенного скрипта
}
});

});

[/CODE]

[COLOR=Red][B]Отправка GET, POST, HEAD запросов через AJAX[/B][/COLOR]

Вначале нужно подключить сам scriptjava фреймворк

[CODE]

[/CODE]

Поместим на сайт такой html код

[CODE]
Тут будет ответ от сервера



Отправить GET запрос через Ajax


Отправить POST запрос через Ajax


Отправить HEAD запрос через Ajax


[/CODE]

Пишем код

[CODE]

function SendGet() {
//отправляю GET запрос и получаю ответ
$$a({
type:'get',//тип запроса: get,post либо head
url:'ajax.php',//url адрес файла обработчика
data:{'q':'1'},//параметры запроса
response:'text',//тип возвращаемого ответа text либо xml
success:function (data) {//возвращаемый результат от сервера
$$('result',$$('result').innerHTML+'
'+data);
}
});
}

function SendPost() {
//отправляю POST запрос и получаю ответ
$$a({
type:'post',//тип запроса: get,post либо head
url:'ajax.php',//url адрес файла обработчика
data:{'z':'1'},//параметры запроса
response:'text',//тип возвращаемого ответа text либо xml
success:function (data) {//возвращаемый результат от сервера
$$('result',$$('result').innerHTML+'
'+data);
}
});
}

function SendHead() {
//отправляю HEAD запрос и получаю заголовок
$$a({
type:'head',//тип запроса: get,post либо head
url:'ajax.php',//url адрес файла обработчика
response:'text',//тип возвращаемого ответа text либо xml
success:function (data) {//возвращаемый результат от сервера
$$('result',$$('result').innerHTML+'
'+data);
}
});
}

[/CODE]

Содержимое файла ajax.php

[CODE]
<?php<br /> if(isset($_GET['q'])) {
header("Content-type: text/txt; charset=UTF-8");
if($_GET['q']=='1') {
echo 'запрос GET успешно обработан, q = 1';
}
else {
echo 'карявый GET запрос';
}
}
if(isset($_POST['z'])) {
header("Content-type: text/txt; charset=UTF-8");
if($_POST['z']=='1') {
echo 'запрос POST успешно обработан, z = 1';
}
else {
echo 'карявый POST запрос';
}
}
?>
[/CODE]


[COLOR=Red][B]Остальные примеры смотрите на оф сайте фреймворка[/B][/COLOR]

]]>
программирование для Андроид Маркета http://www.seocoder.ru/discussion/256/programmirovanie-dlya-android-marketa Sun, 05 Feb 2012 07:09:29 -0500 VadimVGA 256@/discussions Задачка на графику в NetBeans (светофор) http://www.seocoder.ru/discussion/255/zadachka-na-grafiku-v-netbeans-svetofor Fri, 03 Feb 2012 13:26:24 -0500 LOGAN611 255@/discussions python 2.x vs python 3.x http://www.seocoder.ru/discussion/52/python-2.x-vs-python-3.x Fri, 03 Jun 2011 12:40:08 -0400 seocoder 52@/discussions charset_test в facebook. http://www.seocoder.ru/discussion/254/charset_test-v-facebook. Tue, 31 Jan 2012 06:50:48 -0500 kalombo 254@/discussions Нужно мнение... http://www.seocoder.ru/discussion/242/nuzhno-mnenie... Tue, 29 Nov 2011 12:26:21 -0500 ivlevdenis_ru 242@/discussions тут. Нужно ваше мнение, и может кто захочет подключиться к нему.]]> Почему не надо начинать с Django http://www.seocoder.ru/discussion/218/pochemu-ne-nado-nachinat-s-django Mon, 29 Aug 2011 10:39:41 -0400 medar 218@/discussions
http://www.mindcollapse.com/blog/265.html

"Все маленькие команды создают проекты на одной левой коленке с помощью простого и быстрого инструментария, а далее начинает действовать правило снежного кома - старый код обрастает новым и заменить ядро можно только полность раскопав верхние слои. Не обошла стороной эта проблема и нас, для реализации был выбран фреймворк Django, возможностей которого хватало примерно с год, а дальше мы столкнулись с проблемой большинства. При куче достоинств у этого инструмента есть один большущий минус - узколобое и совершенно не гибкое ORM на котором завязано абсолютно все: CRUD интерфейс панели администрирования, модуль аутентификации, генератор форм и тому подобное. Проблема была достаточно серьезная - нужно было либо внедрять прямые SQL инъекции, используя сторонние raw sql билдеры, сведя на нет переносимость, абстрагированность от синтаксиса и саму идею ORM, либо искать альтернативные решения."]]>
bottle мини фреймворк http://www.seocoder.ru/discussion/253/bottle-mini-freymvork Thu, 12 Jan 2012 05:50:25 -0500 specialistseo 253@/discussions http://bottlepy.org/docs/dev/ - под названием бутылка.
Поддерживает базовые возможности как в джанго, модель mvc
Пример hello world

from bottle import route, run

@route('/hello/:name')
def index(name='World'):
return 'Hello %s!' % name

run(host='localhost', port=8080)]]>
Литература по python и django http://www.seocoder.ru/discussion/17/literatura-po-python-i-django Wed, 20 Apr 2011 05:00:11 -0400 seocoder 17@/discussions Чем замерить позиции в google.com.ua? http://www.seocoder.ru/discussion/251/-chem-zamerit-pozicii-v-google.com.uas Mon, 09 Jan 2012 01:31:01 -0500 idolomatoff 251@/discussions Для чего вам деньги http://www.seocoder.ru/discussion/252/dlya-chego-vam-dengi Tue, 10 Jan 2012 05:41:34 -0500 evilempire 252@/discussions Реклама сайта через твиттер. http://www.seocoder.ru/discussion/244/reklama-sayta-cherez-tvitter. Wed, 30 Nov 2011 00:58:41 -0500 kapusta 244@/discussions Хотелось бы узнать ваше мнение на этот счёт.
Действительно ли такой метод эффективен?
За какие сроки можно ощутить результат?
спасибо.]]>
Проблема с Edit'ом http://www.seocoder.ru/discussion/250/problema-s-editom Mon, 09 Jan 2012 01:20:14 -0500 idolomatoff 250@/discussions