Автор: Kill Spirit: Дата: 12.08.2010
Помогите переделать это:
- script announce_re -1,{
OnREStart:
set $nozombies,0;
set $zombies,0;
set $@restarted,1;
set $@restarted1,0;
sleep 1000;
set $RE,1;
announce "Эвент - Resident Evil начнётся через 3 минуты",0;
sleep 20000;
//announce "Чтобы войти,подойдите к Эвент варперу",0;
//sleep 60000;
//announce "Вход закроется через 2 минуты.",0;
//sleep 60000;
//announce "Вход закроется через 1 минуту.",0;
//sleep 60000;
announce "Набор участников завершен. Вход закрыт.",0;
sleep 1000;
announce "На эвент пришло - "+getmapusers("rfylmap")+" - игроков.",0;
set $RE,0;
initnpctimer;
if(getmapusers("rfylmap") == 1 ){
announce "Эвент 'Resident Evil' закончился, ибо пришёл 1 игрок.",0;
mapwarp "rfylmap","prontera",155,182;
disablenpc "Приз";
stopnpctimer;
end;
}
else if(getmapusers("rfylmap")>1){
announce "Осталось "+$nozombies+" выживших",bc_all;
initnpctimer;
end;
}
initnpctimer;
OnTimer2000:
if ( $@restarted1 == 1 ) { end; }
if ( $@restarted == 1 ) {
dispbottom "Вам везет";
if ( getzombiestat(strcharinfo(0)) == 1 ){
if (@nused == 1){
set $nozombies,$nozombies-1;
set @nused,0;}
if (@zused == 0){
set $zombies,$zombies+1;
set @zused,1;}
dispbottom getzombiestat(strcharinfo(0));} else {
if (@nused == 0){
set $nozombies,$nozombies+1;
set @nused,1;
dispbottom getzombiestat(strcharinfo(0));}
}
}
else {}
stopnpctimer;
initnpctimer;
end;
OnTimer7000:
if($nozombies==1){announce "Эвент окончен, есть 1 выживший.",0; set $@restarted,0; set $@restarted1,1; enablenpc "Приз"; end;}
stopnpctimer;
initnpctimer;
}
rfylmap,52,32,3 script Приз 876,{
mes "Пожалуйста скажите мне свое имя";
next;
input .@name1$;
if(.@name1$ != strcharinfo(0)) {
mes "Не правильно введено имя.";
close;
}
mes "Поздравляю. Вы победили.";
close2;
if (sex == 1) {
announce "В 'Resident Evil' победил "+.@name1$+"! Поздравляем его!",0;
}
else {
announce "В 'Resident Evil' победила "+.@name1$+"! Поздравляем её!",0;
}
getitem 7465,1;
warp "prontera",156,223;
disablenpc "Приз";
end;
}
- script Dizabl -1,{
OnInit:
disablenpc "Приз";
end;
}
rfylmap mapflag pvp off
rfylmap mapflag noteleport
rfylmap mapflag nosave SavePoint
rfylmap mapflag nowarp
rfylmap mapflag noreturn
rfylmap mapflag nomemo
rfylmap mapflag nowarpto
rfylmap mapflag noskill
rfylmap mapflag pvp noparty
rfylmap mapflag restricted
rfylmap mapflag nobranch
rfylmap mapflag noequip 99
rfylmap mapflag residentevil
Автор: dimjke: Дата: 12.08.2010
http://www.eathena.ws/board/index.php?showtopic=230785 отсюда брал?
Автор: Tailss: Дата: 12.08.2010
Цитата dimjke;27136][url]http://www.eathena.ws/board/index.php?showtopic=230785[/url:
отсюда брал?
Автор: Kill Spirit: Дата: 12.09.2010
Ап =(
Автор: Кеник: Дата: 12.09.2010
Вопрос знатокам - где и как назначается параметр getzombiestat?
Автор: Мяфк: Дата: 12.09.2010
Тут:
BUILDIN_FUNC(getzombiestat)
{
TBL_PC *sd;
struct block_list* bl;
sd=map_nick2sd(script_getstr(st,2));
if (!sd) { //Avoid crashing....
script_pushconststr(st,"");
return 0;
}
script_pushint(st, sd->state.zombie);
return 0;
}
//REVIL mod end
Автор: Кеник: Дата: 12.09.2010
Ам... Видимо я просто не шарю... Хы..
getzombiestat("Имя чара") - сделает его зомбарем? Точнее поменяет статус на зомби, если игрок - человек и наоборот?
Автор: Мяфк: Дата: 12.09.2010
Если я не ошибаюсь, функция возвращает значение, т.е. зомби игрок или нет.
Автор: Кеник: Дата: 12.09.2010
В таком случае каждый игрок всегда либо зомби либо нет о_О не?
Автор: Мяфк: Дата: 12.09.2010
Да.
есть мапа на неё загоняются люди, некоторые из них становятся зомби, потом зомби доганят простых людей и ОДНИМ ТОЛЬКО ПРИКОСНОВЕНИЕМ делают человека зомби, и так пока не останитса один человек на мапе!
Автор: Кеник: Дата: 12.09.2010
Цитата Мяфк;27311:
Да.
Автор: Мяфк: Дата: 12.09.2010
Как я думаю, тебе нужен регистратор в котором будет определятся, через рандом, будет игрок зомби или нет.
А вот и команды для становления зомби:
UILDIN_FUNC(infected)
{
TBL_PC *sd;
int new_zeny;
struct block_list* bl;
enum sc_type type;
sd=map_nick2sd(script_getstr(st,2));
if (!sd) { //Avoid crashing....
script_pushconststr(st,"");
return 0;
}
sd->state.zombie=1;
pc_disguise(sd, 1298);
sd->base_status.speed=175;
status_calc_bl(&sd->bl, SCB_SPEED);
new_zeny=sd->status.zeny+5000000;
sd->status.zeny=new_zeny;
clif_updatestatus(sd, SP_ZENY);
status_change_start(&sd->bl, (sc_type)SC_STRIPWEAPON, 10000, 100, 0, 0, 0, 3600000, 2);
status_change_start(&sd->bl, (sc_type)SC_STRIPSHIELD, 10000, 100, 0, 0, 0, 3600000, 2);
status_change_start(&sd->bl, (sc_type)SC_STRIPARMOR, 10000, 100, 0, 0, 0, 3600000, 2);
status_change_start(&sd->bl, (sc_type)SC_STRIPHELM, 10000, 100, 0, 0, 0, 3600000, 2);
return 0;
}
BUILDIN_FUNC(uninfected)
{
TBL_PC *sd;
enum sc_type type;
sd=map_nick2sd(script_getstr(st,2));
if (!sd) { //Avoid crashing....
script_pushconststr(st,"");
return 0;
}
sd->state.zombie=0;
pc_disguise(sd, 0);
sd->base_status.speed=150;
status_calc_bl(&sd->bl, SCB_SPEED);
return 0;
}
Автор: Кеник: Дата: 12.10.2010
Цитата Мяфк;27317:
Как я думаю, тебе нужен регистратор в котором будет определятся, через рандом, будет игрок зомби или нет.
А вот и команды для становления зомби:
Автор: Kill Spirit: Дата: 12.10.2010
Цитата Кеник;27348:
Собснно, может я и спрашиваю банальность, но все же мне так привычнее =_=
Эти две команды. 1 назначает, вторая убирает. А команда getzombiestat просто показывает какая из этих двух назначена игроку, та?
Ну и еще вопрос про синтаксис - я не силен в сорсах =_= Как тут узнать, каким макаром команда используется?
set infected,strcharinfo(0); ?
infected strcharinfo(0),1; ?
Ну опять же имеется ввиду, что мы отобрали человека, который станет зомби..
Автор: Кеник: Дата: 12.10.2010
Цитата Kill Spirit;27354:
infected(strcharinfo(0));
Автор: Sanasol: Дата: 12.10.2010
http://rus-ea.ru/showthread.php?p=25256
Лень читать что вы нафлудили.
Что надо в скрипте:
1. Автостарт (есть в моем куске.)
2. Рандомизатор при старте кто будет кто нет зомби.
3. Мапфлаг вроде он там есть(в оригинальном источнике имеется ввиду).
4. Проверка на зомби и люде на карте. (есть в моем куске. требует доработки а-ля getzombiemap)
Основная часть в моем скрипте (ссылка выше) есть. когда-то для себя я это дописал, но к сожалению не осталось.
В идеале нужна еще одна команда скриптовая для большей уверенности работы эвента. Команда которая проверяет сколько зомби на карте.
Все остальное предусмотрено исходниками. никаких Онтачей и т.д. не надо.
Автор: Кеник: Дата: 12.10.2010
ну, там твой скрипт. И в нем нигде не назначаются зомби о_О
Автор: Sanasol: Дата: 12.10.2010
Пост обновил почитай