Victor
-
Постов
55 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Сообщения, опубликованные Victor
-
-
Вот вам отдельный пример из архивов, только под флюкс немного поправить надо.
Скрытый текст<h1><b>Статистика вещей </b> сервера</h1><br/> <?php $host = "ип"; $user = "логин"; $pass = "пароль"; $rodb = "название_базы"; $db = mysql_connect($host, $user, $pass) or die("Ошибка подключения к базе данных"); mysql_select_db($rodb,$db); $iids = array( 4236, 4054, 4241, 4425, 4147, 4145, 4386, 4174, 4142, 4134, 4137, 4123, 4330, 4441, 4047, 4128, 4324, 4430, 4403, 4376, 4146, 4198, 4132, 4131, 4143, 4135, 4144, 4148, 4121, 4342, 4263, 4318, 4302, 4305, 4407, 4374, 4372 ); $zeny = mysql_fetch_row(mysql_query('SELECT sum(`zeny`) FROM `char`;')); ?> <table class="chtable2" style="width:100%;" cellspacing="1" cellpadding="0" border="0"> <tr > <th style="width: 50%;padding:5px;"><b>Zeny в игре</b></th> <th style="padding:5px;"><?php echo ceil($zeny[0] / 1000000); ?> kk</th> </tr> <?php foreach($iids as $i => $val) { $name = mysql_fetch_row(mysql_query('SELECT `name_japanese` FROM `item_db` where `id` = '.$val.';')); //if($name[0] == '') // $name = mysql_fetch_row(mysql_query('SELECT `name_japanese` FROM `item_db2` where `id` = '.$val.';')); $amount = 0; $q = mysql_fetch_row(mysql_query('SELECT sum(`amount`) FROM `inventory` where `nameid` = '.$val.';')); $amount += $q[0]; $q = mysql_fetch_row(mysql_query('SELECT sum(`amount`) FROM `storage` where `nameid` = '.$val.';')); $amount += $q[0]; $q = mysql_fetch_row(mysql_query('SELECT sum(`amount`) FROM `guild_storage` where `nameid` = '.$val.';')); $amount += $q[0]; if($val > 4000 and $val < 4454) { $q = mysql_fetch_row(mysql_query('SELECT count(*) FROM `storage` where `card0` = '.$val.' or `card1` = '.$val.' or `card2` = '.$val.' or `card3` = '.$val.';')); $amount += $q[0]; $q = mysql_fetch_row(mysql_query('SELECT count(*) FROM `inventory` where `card0` = '.$val.' or `card1` = '.$val.' or `card2` = '.$val.' or `card3` = '.$val.';')); $amount += $q[0]; $q = mysql_fetch_row(mysql_query('SELECT count(*) FROM `guild_storage` where `card0` = '.$val.' or `card1` = '.$val.' or `card2` = '.$val.' or `card3` = '.$val.';')); $amount += $q[0]; } echo '<tr class="' . ($i % 2 ? 'odd' : 'even' ) . '"><td style="width: 40%;padding:5px;"><img src="http://www.sharonov.ru/ro/database/images_item_small/'.$val.'.gif" border="0"> '.$name[0].'</td><td style="padding:5px;">'.$amount.'</td></tr>'; } ?> </table>
- 1
-
В 23.07.2016в5:50 PM, Clown сказал:
И как можно сделать чтобы эффект не спадал при телепортации, @go и тд и тп?
Советую просмотреть исходник команды @aura. Там при использовании эффекты не сбрасываются.
-
/src/map/pc.c
Находим pc_gainexp
И после
if(!battle_config.pvp_exp && map[sd->bl.m].flag.pvp) // [MouseJstr] return 0; // no exp on pvp maps
Добавляем например
if(sd->status.base_level == 255) { base_exp = base_exp/180; job_exp = job_exp/180; }
-
Попробуйте взять этот (старее сборки не нашёл)
- 1
-
Вопрос тоже актуальный, где взять луа файлы для определенной версии EXE? Поделитесь, у кого есть ссылки рабочие.
-
Хотел давно создать тему, но никак всё руки не доходили до этого. Данный человек также покупал сборку на гармошке, но так и не оплатил до сих пор, хотя вся работа была выполнена. Слот я отключил - в любом случае там ничего работать не будет, если не снести защиту конечно. Ниже видно как он только кормит обещаниями со своей "женой".
Пруф:
Скрытый текст[23.02.2016 16:01:21] Valentyn marushchak: умнож и переведи в долары
[23.02.2016 16:01:27] Valentyn marushchak: пожайлусто
[23.02.2016 16:03:21] Victor: 50$ вообщем
[23.02.2016 16:03:32] Valentyn marushchak: хорошо
[11.04.2016 1:14:33] Victor: 50$ оплати для начала
[11.04.2016 1:14:39] Valentyn marushchak: ок
[11.04.2016 1:15:45] Victor: Когда скинешь?
[11.04.2016 1:16:36] Valentyn marushchak: в вторник будет оплата
[11.04.2016 1:16:41] Valentyn marushchak: на пейпал
[11.04.2016 1:16:45] Valentyn marushchak: в $
[14.04.2016 22:42:19] Victor: Привет, когда оплата будет?
[14.04.2016 23:12:05] Valentyn marushchak: уже дал денги жене и твои даные
[14.04.2016 23:12:11] Valentyn marushchak: скинет
[21.04.2016 21:51:40] Victor: привет, когда ждать оплату?
[21.04.2016 21:55:37] Valentyn marushchak: Воскрисение
[21.04.2016 21:55:48] Valentyn marushchak: Здарова
[21.04.2016 22:02:44] Victor: Ок, жду -
Скрытый текст
//===== eAthena Script ======================================= // Обменник MvP карт //===== Автор ================================================ // nomn. ICQ 898022 //===== Текущая версия ======================================= // 1.0 //===== Совместимость ======================================== // All eA //===== Описание ============================================= // Меняет 3 любых МвП карты на одну из заданных МвП карт (рандомно) //===== Изменения ============================================ // v1.0 - Релиз. prontera,192,168,4 script Обмен MVP Карт 405,{ mes "[Обмен Карт]"; if (mvp_exchange > 2) { mes "Готов получить свою карту?"; if (select("Да","Нет") == 2) { mes "Ок. Приходи как надумаешь."; close; } next; mes "[Обмен Карт]"; set @tmp_card, $mvp_cards[rand(getarraysize($mvp_cards))]; mes "Ты получаешь:"; mes "^A512E3"+getitemname(@tmp_card)+"^000000"; getitem @tmp_card, 1; set mvp_exchange, 0; close; } mes "Привет, я обмениваю MvP карты."; if (mvp_exchange > 0) { mes "Сейчас у меня ^A512E3"+mvp_exchange+" из 3^000000 твоих карт."; } mes "Чем могу помочь?"; switch(select("Обменять","^A512E3Информация^000000","Ничем")){ case 1: next; mes "[Обмен Карт]"; mes "За 3 твоих MvP карты я выдам тебе какую-нибудь одну, из списка."; mes "^A512E3Какую именно карту тебе дать выбираю я сам.^000000"; mes "Согласен?"; if (select("Нет","Да") == 1) close; next; for(set .@i,0; .@i < getarraysize($mvp_cards); set .@i, .@i+1) { if (countitem($mvp_cards[.@i]) > 0) { mes "[Обмен Карт]"; mes "Я нашел у тебя 1 ^A512E3"+getitemname($mvp_cards[.@i])+"^000000"; mes "Засчитать?"; if (select("Нет","Да") == 2) { delitem $mvp_cards[.@i], 1; set mvp_exchange, mvp_exchange + 1; if (mvp_exchange == 3) { mes "Достаточно. Секунду..."; close; break; } } next; } } mes "[Обмен Карт]"; mes "MvP Карт не найдено!"; close; break; case 2: next; mes "[Обмен Карт]"; mes "Процедура обмена: Я осматриваю твой инвентарь и выбираю из него MvP карты, поодной."; mes "Пока ты не принесешь мне ^A512E33 карты я не продолжу обмен.^000000"; mes "Т.е. можешь принести мне первую сегодня, вторую послезавтра, а третью хоть через неделю."; mes "Как только все 3 карты у меня я выдаю тебе в замен одну другую. При этом она может совпасть с одной из тех, что ты мне сдал."; if (select("Список возможных карт","Ясно. Пока.") == 2) close; next; mes "[Обмен Карт]"; for(set .@i,0; .@i < getarraysize($mvp_cards); set .@i, .@i+1) mes getitemname($mvp_cards[.@i]); close; break; case 3: close; break; } end; OnInit: setarray $mvp_cards[0], 4144,4147,4142,4132,4128,4143,4137,4123,4146,4131,4148, 4121,4135,4318,4324,4168,4305,4276,4241,4134,4330,4263,4236,4302,4342,4372,4352, 4374,4376,4386,4403,4407,4408,4419,4425,4430,4441; end; }
- 1
-
Используйте генератор eASpriteNameGen для названия спрайта
-
Время перед сообщением.(При большом онлайне грузит сервер)
by QwadratОткрыть clif.c Найти void clif_parse_GlobalMessage(int fd, struct map_session_data* sd) После: char *name, *message; int namelen, messagelen; Добавить: char prefix[255]; // prefix for timestamp [Qwadrat] time_t t = time(NULL); // time var [Qwadrat] Дальше найти: // send message to others (using the send buffer for temp. storage) И перед ним вставь: // timestamp feature by Qwadrat strftime(prefix, 10, "[%H:%M] ", localtime(&t)); strcat(prefix,text); textlen = strlen(prefix)+1; Дальше: // send message to others (using the send buffer for temp. storage) Заменить оригинальный кусок кода на: WFIFOHEAD(fd, 8 + textlen); WFIFOW(fd,0) = 0x8d; WFIFOW(fd,2) = 8 + textlen; WFIFOL(fd,4) = sd->bl.id; safestrncpy((char*)WFIFOP(fd,8), prefix, textlen); clif_send(WFIFOP(fd,0), WFIFOW(fd,2), &sd->bl, sd->chatID ? CHAT_WOS : AREA_CHAT_WOC); // send back message to the speaker //memcpy(WFIFOP(fd,0), RFIFOP(fd,0), RFIFOW(fd,2));-original memcpy(WFIFOP(fd,4), prefix, textlen); // [Qwadrat] WFIFOW(fd,0) = 0x8e; WFIFOW(fd,2) = RFIFOW(fd,2) + 8; // 8 - textlen [Qwadrat] WFIFOSET(fd, WFIFOW(fd,2));
- 6
-
/modules/admin_spawn/parse.php
Меняем
$path = FLUX_ROOT . '/upload_npc/npc/' . $this->pref . '/scripts_main.conf';
На
$path = FLUX_ROOT . '/upload_npc/npc/scripts_main.conf';
Находим
$files[] = FLUX_ROOT . '/upload_npc/' . $item;
Заменяем на
$files[] = FLUX_ROOT . '/upload_npc/' . trim($item);
Ищем
$files = array_merge($files, $this->getFiles(FLUX_ROOT . '/upload_npc/' . $item));
И вместо этого пишем
$files = array_merge($files, $this->getFiles(FLUX_ROOT . '/upload_npc/' . trim($item)));
Должно помочь. У меня так работает.
- 1
-
Цитата
1. у барда и дансы разные пассивки на владение оружием, а значит комуто они атаки давать не будут, если конечно сможешь одеть на того и другого.
2. у каждого типа оружия свой номер например двуручный меч это 34, а броня это 16, ты ведь знаешь как точить вещи командой. Так вот плетки имеют дэфолтный рэндж атак 2, а гитары -1, логично предположить что это разные виды оружия.Думаю эта инфа будет полезной. То чувство, когда игрок знает больше тебя
- 1
-
3 часа назад, Gendalf сказал:
Я хз что вы за проблемы тут выдумываете, хочешь норм серв - пили, будет онлайн, если у тебя голова на плечах.
Ничего не умирало, да, конечно людей играет меньше, но они играют, и набрать 1-1.5к онлайна можно. Главное уметь. Я вот не умею1. Выделенный сервер в Европе с анти-ддосом (ежемесячно 3-5к руб.)
2. Накрутка в популярных игровых топах (можно конечно самому, а так хз последний раз когда обращался в 3 топах по 1к голосов стоило мне ~2к руб.)
3. Мультиязычность сервера, клиента и сайта.
4. Пиар на форумах топовых гильдий, в фейсбуке, в вк и других ресурсах, можно также подрубить директ (неплохо будет на этапе перед открытием)
5. Хороший саппорт со знанием английского для осуществления техподдержки на форуме и в игре.
6. Защита Gepard Shield 2.0 (самая актуальная, стоимость помоему ~150$)
Основные моменты для успешного сервера. Возможно что-то упустил... На самом деле всё реально, вот только кому это надо так заморачиваться, когда проще открыть серв для себя и друзей, или для быстрой наживы и через месяц-другой закрыть его.
-
В СНГ странах РО давно уже вымерло, пора бы уже это понять.
Завтра Tree of Savior должна стать бесплатной для всех: http://steamcommunity.com/app/372000/
Некоторые уже там играют и еще какая-то часть свалит туда.
-
-
Смею предположить, что для атача надо использовать sleep2
- 1
-
Это не только с этим косяк, везде на форуме хайд полетел. Почините уже наконец.
-
1 час назад, botka4aet сказал:
да, проглядел
Ну тогда самый оптимальный вариант - https://rathena.org/board/topic/84828-utility-vendor-control/
Решение конечно неплохое, но хотелось бы получить помощь с реализацией в SRC
-
Появилась необходимость сделать проверку минимального расстояния до трейдера
vending.cв функции vending_openvending
после// check number of items in shop if( count < 1 || count > MAX_VENDING || count > 2 + vending_skill_lvl ) { // invalid item count clif_skill_fail(sd, MC_VENDING, USESKILL_FAIL_LEVEL, 0); return; }
добавитьstruct block_list *bl; if((check_distance_blxy(sd->bl.m,sd->bl.x,sd->bl.y,3))&& (((TBL_PC*)bl)->vender_id)) { clif_displaymessage(sd->fd, "Вы ставите магазин слишком близко к другому торговцу. Минимальное расстояние: 3 клетки."); clif_skill_fail(sd, MC_VENDING, USESKILL_FAIL_LEVEL, 0); return; }
Компилируется без ошибок, но мод работает криво. Т.е расстояние не проверяет и магазин можно всё равно ставить рядом.
Источник: https://www.eathena.ws/board/index.php?showtopic=189873
Есть идеи как поправить?
-
Смотрю много желающих помочь. Вообщем плачу 5 WMZ за решение вопроса.
-
Ты хочешь, чтоб статусы не снимались?
Или снимались только отрицательные?
Если статусы снова накладываются, то на какое время
У меня через скрипт на персонажа вешаются положительные бафы
sc_start SC_INCMATKRATE,-1,10;
Здесь благодаря таймеру, уходящему в минус - мы получаем баф на неопределенный срок.
Но госпел сбрасывает его, а мне не нужно чтобы он этого делал, либо чтобы после окончания умения эти бафы снова накладывались.
-
Имеется умение PA_GOSPEL
Также есть скрипт, дающий статусы (бонусы), к примеру SC_INCATKRATE и SC_INCMATKRATE
Госпел эти статусы скидывает.
Где-то в этом куске это нужно сделать, только вот как именно понять не могу.
case PA_GOSPEL:
if (sce && sce->val4 == BCT_SELF)
{
status_change_end(src, SC_GOSPEL, INVALID_TIMER);
return 0;
}
else
{
sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
if (!sg) break;
if (sce)
status_change_end(src, type, INVALID_TIMER); //Was under someone else's Gospel. [Skotlex]
sc_start4(src,type,100,skilllv,0,sg->group_id,BCT_SELF,skill_get_time(skillid,skilllv));
clif_skill_poseffect(src, skillid, skilllv, 0, 0, tick); // PA_GOSPEL music packet
}
break;Нарыл в примерах проверку:
if (sd->sc.count && (sd->sc.data[SC_INCATKRATE] || sd->sc.data[SC_INCMATKRATE]))
{
...
}Требуется: при использовании госпеля, чтобы статусы после сброса по новой присваивались персонажу.
Помогите разобраться. Как sc_start реализовать в проверку?
-
Правильная ссылка потому что будет такая:
http://game100rus.com/sitedetails_10883.html
-
АП теме....Может у кого то все же есть решение проблемы?
Плохо искали...
-
Я даже догадываюсь чей это эмулятор.
Я конечно извиняюсь, но какое отношение это имеет к данной теме? Если этот баг присутствует во всех сборках и про него знают лишь единицы.
Запрет @alootid на определённый ID
в Скрипты
Опубликовано
https://rathena.org/board/topic/65099-using-getmapxy-to-monster/