-
Постов
367 -
Зарегистрирован
-
Посещение
-
Победитель дней
19
Сообщения, опубликованные nejiko
-
-
Сеты
if(число игроков на карте < 2)
set .gmname$, "Свободно";
else set .gmname$, "Занято";
waitingroom .gmname$, 0;Блин,оно на сколько просто я просто в ах*е! Почему я так не додумался?(((
-
подскажи как это написать в скриптовой версии,а то я этими сетами вообще не дружу!
-
Здравствуйте! Помогите реализовать такую идейку!
prontera,163,174,4 script Арена 810,{
if(Baselevel < 200) { mes "Простите, но минимальный лвл для входа 200!";close; }
set $duel,$duel+1;
if($duel >= 3) { mes "Простите,но максимальное кол-во игроков 2!";close; }
percentheal 100,100;
warp "pvp_2v2.gat",52,46;
skilleffect 34,0; sc_start SC_BLESSING,360000,10;
skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10;
close;
}Как можно прикрепить Waitingroom что бы показывал Когда игроков 1 - то (Свободно) когда 2 (Занято)
ЗА пример брал скрипт только не понял как править его!
prontera,111,111,1 script Technoviking 2125,{
end;
OnInit:
initnpctimer;
end;
OnTimer10000:
initnpctimer;
delwaitingroom;
set .gmname$,"GM-ChuckNorris";
if(isloggedin(getcharid(3,.gmname$)))
set .gmname$, .gmname$ + ": В сети";
else set .gmname$, .gmname$ + ": Не в сети";
waitingroom .gmname$, 0;
end;
} -
30007,godlike_shield,godlike_shield,5,14000,,600,,4,,1,0xFFFFFFFF,8,2,32,,0,1,2,{ bonus bMaxHPrate,10; bonus bStr,20; bonus bDex,20; },{},{}
все классы
3 проффесии
- 1
-
Народ подскажите,атаковать можно но только при зажатой клавишей Shift что можно сделать с этой проблемой? /shift не вариант не помогает!
-
Проблему товарищу решили, сорс модификацию исправили.
Готовое решение (большая часть копипаста и исходники там старенькие использовали, но вы без проблем поймёте чего и куда вставлять):
//battle.c
//find this
int battle_check_target( struct block_list *src, struct block_list *target,int flag)
//add this before it
bool cell_pk_check(struct block_list *t_bl, struct block_list *s_bl, int m)
{
if(t_bl->type == BL_PC && map[m].cell[s_bl->x+s_bl->y*map[m].xs].pk == true && map[m].cell[t_bl->x+t_bl->y*map[m].xs].pk == true) {
int s_party = status_get_party_id(s_bl);
int s_guild = status_get_guild_id(s_bl);
if( s_party && s_party == status_get_party_id(t_bl) ) {
if(map[m].flag.pvp_noparty)
return true;
else
return false;
}
if( s_guild && s_guild == status_get_guild_id(t_bl) ) {
if(map[m].flag.pvp_noguild && map[m].flag.gvg)
return true;
else
return false;
}
return true;
}
return false;
}
//+++++++++++++++++++++++++++++++++//
//find this
else if(( sd->duel_group && !((!battle_config.duel_allow_pvp && map[m].flag.p
//use this to replace
else if(( sd->duel_group && !((!battle_config.duel_allow_pvp && map[m].flag.pvp) || (!battle_config.duel_allow_gvg && map_flag_gvg(m))))||( cell_pk_check(t_bl, s_bl, m) == true ))
//+++++++++++++++++++++++++++++++++//
//map.c
void map_setcell(int m, int x, int y, cell_t cell, bool flag)
{
int j;
if( m < 0 || m >= map_num || x < 0 || x >= map[m].xs || y < 0 || y >= map[m].ys )
return;
j = x + y*map[m].xs;
switch( cell ) {
case CELL_WALKABLE: map[m].cell[j].walkable = flag; break;
case CELL_SHOOTABLE: map[m].cell[j].shootable = flag; break;
case CELL_WATER: map[m].cell[j].water = flag; break;
case CELL_NPC: map[m].cell[j].npc = flag; break;
case CELL_BASILICA: map[m].cell[j].basilica = flag; break;
case CELL_LANDPROTECTOR: map[m].cell[j].landprotector = flag; break;
case CELL_NOVENDING: map[m].cell[j].novending = flag; break;
case CELL_NOCHAT: map[m].cell[j].nochat = flag; break;
case CELL_PK: map[m].cell[j].pk = flag; break; //<---add this line
default:
ShowWarning("map_setcell: invalid cell type '%d'\n", (int)cell);
break;
}
}
//+++++++++++++++++++++++++++++++++//
//map.h
typedef enum {
CELL_WALKABLE,
CELL_SHOOTABLE,
CELL_WATER,
CELL_NPC,
CELL_BASILICA,
CELL_LANDPROTECTOR,
CELL_NOVENDING,
CELL_NOCHAT,
CELL_MAELSTROM,
CELL_ICEWALL,
CELL_PK, // <---add this line
} cell_t;
//+++++++++++++++++++++++++++++++++//
struct mapcell
{
// terrain flags
unsigned char
walkable : 1,
shootable : 1,
water : 1;
// dynamic flags
unsigned char
npc : 1,
basilica : 1,
landprotector : 1,
novending : 1,
nochat : 1,
pk : 1;//<---add this
//+++++++++++++++++++++++++++++++++//
// db\const.txt
cell_walkable 0
cell_shootable 1
cell_water 2
cell_npc 3
cell_basilica 4
cell_landprotector 5
cell_novending 6
cell_nochat 7
cell_pk 10 // <---add this line
//+++++++++++++++++++++++++++++++++//Огромное спасибо данному человеку!! Единственный кто помог в данной проблеме!
-
ап прошу помощи
-
Здравствуйте! Хотел узнать как можно реализовать ПВП только на определенных клетках на арене?
Как бы что-бы зрителей не могли атаковать и что-бы зрители не дрались,а просто смотрели!
Вот что я пытался сделать!
Пвп на локе отключено,а по кординатам должно было включаться!
Пробовал вместо basilica ставить pvp , pvp_off только значения менять на 0!
Сборка: 3ceam
Вот что искал нашел по этой теме: Тык и Тык
Кто что подскажет?
pvp_2v2,1,1,1 script NoPvPDuelArena -1,{
end;
OnInit:
// Можно
setcell "pvp_2v2.gat",41,52,41,39,cell_basilica,1;
setcell "pvp_2v2.gat",41,39,62,39,cell_basilica,1;
setcell "pvp_2v2.gat",62,39,62,52,cell_basilica,1;
setcell "pvp_2v2.gat",62,52,41,52,cell_basilica,1;
}Вот схема работы моей идеи!
-
я думаю,что @rates берет информацию из конфигов
А как можно проверить?
Испытал команду @showexp,всё работает спасибо,а в @rates это дописать никак нельзя?
-
не знаю у меня 3ceam,какая команда тогда?
-
ну опыт у премиумов не увеличился ввожу @rates, x1000 как было так и осталось(
-
Почему-то у меня не работает! Что не так то? Рекомпиляция прошла успешно!
/*==========================================
* Alters experienced based on self bonuses that do not get even shared to the party.
*------------------------------------------*/
static void pc_calcexp(struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src)
{
int bonus = 0;
struct status_data *status = status_get_status_data(src);
if (sd->expaddrace[status->race])
bonus += sd->expaddrace[status->race];
bonus += sd->expaddrace[status->mode&MD_BOSS?RC_BOSS:RC_NONBOSS];
if (battle_config.pk_mode &&
(int)(status_get_lv(src) - sd->status.base_level) >= 20)
bonus += 15; // pk_mode additional exp if monster >20 levels [Valaris]
if (sd->sc.data[SC_EXPBOOST])
bonus += sd->sc.data[SC_EXPBOOST]->val1;
if(!pc_isGM(sd))
{
*base_exp = (unsigned int) cap_value(*base_exp + (double)*base_exp * bonus/100., 1, UINT_MAX);
}
else if(pc_isGM(sd) == 1) // Иначе если гм лвл 1
{
*base_exp = (unsigned int) cap_value(*base_exp + (double)*base_exp * bonus * 2/100., 1, UINT_MAX);
}
else if(pc_isGM(sd) == 2) // Иначе если гм лвл 2
{
*base_exp = (unsigned int) cap_value(*base_exp + (double)*base_exp * bonus * 3/100., 1, UINT_MAX);
}
if (sd->sc.data[SC_JEXPBOOST])
bonus += sd->sc.data[SC_JEXPBOOST]->val1;
*job_exp = (unsigned int) cap_value(*job_exp + (double)*job_exp * bonus/100., 1, UINT_MAX);
return;
} -
Спасибо за минусы! Система нормально работает я сам разобрался! Можно закрывать!
-
нашел вот такие вещи,но это помоему в моем же скрипте есть!
*setbattleflag "<battle flag>",<value>;
*getbattleflag("<battle flag>")
Sets or gets the value of the given battle flag.
Battle flags are the flags found in the battle/*.conf files and is also used in Lupus' variable rates script.
Example(s):
//will set the base experience rate to 20x (2000%)
setBattleFlag "base_exp_rate",2000;
//will return the value of the base experience rate (when used after the above example, it would print 2000).
mes getBattleFlag("base_exp_rate");И вот кое что!
bonus2 bExpAddRace,n,x; Increase exp gained by x% vs. enemies of race n -
Все это можно сделать без сорца.
Я сделал иначе - в таблице аккаунта, добавил ячейку donat. Куда простым запросом вводилось значение (например 10, что ровнялось 10 долларам), а при заходе стояла проверка на то, что если ячейка donat не равна 0, то скрипт преобразовывал ее в глобальную переменную #CASHPOINTS, с которой и велись работы ;D
Также и по поводу бонусов аккаунта, все решаемо.
Для этого изучи:
doc/script_commands.txt
doc/item_bonus.txtВсе зависит только от твоего желания и фантазии ;D
Вот нашел по поводу Премиум системы и доната! Можете показать как это примерно реализовать??) Знаю оборзел совсем)
- 2
-
Нет я просто хотел тут попросить поменять эту часть
$@bxp,rand(1100000,5600000);
правильные значения! Так это будет действовать на весь сервер?
- 2
-
Здравствуйте!
Нужна помощь,на сервере стоят рейты х1000,нужно что-бы после 99 лвл-а они увеличились рандомно с х5000 до х10,000!
Написал не большой скриптик,поправте где ошибка!
- script announce_lvl -1,{
end;
OnPCBaseLvUpEvent:
if(BaseLevel==99){
set $@bxp,rand(1100000,5600000);
set $@jxp,rand(1100000,5600000);
setbattleflag("base_exp_rate",$@bxp);
setbattleflag("job_exp_rate",$@jxp);
dispbottom "Теперь вы сможете получать EXP в несколько раз больше от х5000 до х10,000!";
}
}Заранее спасибо!
- 2
-
разве vertigo? а не vertrigo ?
Спасибо,вот я слепой пиз*ец) Тему можно офф)
-
Вертриго же работает, причем тут порт. А пых админ уже давно пишет "Невозможно подключиться...." потому что логин и пароль неверные вводите.
Логин: root
Пароль: vertigo/localhost
-
Копай настройки вертриго, там порт стоит 8080, нужно установить просто 80. Если я правильно понял, в чем проблема.
Это когда не открываеться 127.0.0.1/phpmyadmin,у меня это работает!
И эта проблема только в версии 2.29!
-
Здравствуйте! Давно я тут не был вот решил восстановить нoстрaльгию,поковырять серверок! Дак ближе к делу:
1) Программа запущена!
2) Нет стат пишет только это!
3) Порт занят только Мозилой!
4) В итоге!
Что с этим делать? В интернете искал проблему решить не вышло собственно вопрос такой! Заранее спасибо!
Версии пробовал от 2.29 до 2.26!
Операционка: Windows 7 x86
-
Спасибо уже играю! Жаль только на русском нельзя общаться,а так понравилось уже 11 лвл! Ник AlexFe кто хочет добавляемся))) В стиме Felix такой синий чувак на Аве)
-
Какие вещи одеты на тебе когда клона создаешь? Может быть создается РоялГвард с Луком и крашит?
Да нет,проблема решилась сама собой после перекомпиляции сервера! Спасибо за помощь тему можно Клоуз!
-
1) Я так понял когда прописываешь в Castle_db то Имп нельзя бить скиллами?? Увы это мне не нужно,мешает ли тот [Error] который в Map-сервере? Его можно убрать без прописывания в Castle_db??
2) Появилась 2 проблема у меня стоит еще один скрипт Emperium Арены в Prontera Field 8 когда ломаешь сначала его, потом тот что в pvp_n_5-5 нельзя бить,как так?
Ап
Waitingroom - небольшая правка!
в Помощь в скриптинге
Опубликовано
Где ошибка в вайтруме пишет 0.
Где ошибка в вайтруме пишет 0.