Назад

Вопросы

Автор: San: Дата: 06.11.2010

1.Подскажите что делают ети функции, и как их использовать в скрипте?

BUILDIN_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;
}
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;

}


2. Как в скрипте можно узнать статус игрока(зомби,или обычный игрок)?;)

Заранее спасибо.

Автор: San: Дата: 06.11.2010

а как их использовать?
set strcharinfo(0),inficted;?

Автор: Sanasol: Дата: 06.11.2010

infected strcharinfo(0);

Автор: San: Дата: 06.11.2010

еще подскажите как можно сделать проверку, чтоб при касании был анонс, и проверяло количество игроков на карте?

Автор: nomn: Дата: 06.14.2010

[COLOR="Indigo"]оО

при касании чего и куда? скриптом?[/COLOR]

Автор: XKoriKX: Дата: 06.14.2010

Ну мб онтач?
ИМХО
Если статус пашется как
0-неиинфесирован
1-инфецирован
то

OnTouch:
if (getzombiestat==1) { //проверка на инфецированного
mes "Ты инфецирован"; close2;
announce "Сейчас на карте "+getmapusers("МАПА")+",bc_yellow|bc_map;}
else
{mes "Ты не инфецирован"; close2;
announce "Сейчас на карте "+getmapusers("МАПА")+",bc_yellow|bc_map;}

Автор: Sanasol: Дата: 06.14.2010

Корик бред написал. эти команды не так работают.

getzombiestat(strcharinfo(0))

или
getzombiestat strcharinfo(0);

Автор: XKoriKX: Дата: 06.14.2010

ну тогда проверку надо попробовать написать через 1ый пример сана. Заменить

if (getzombiestat==1)
на
if (getzombiestat(strcharinfo(0))==1)


P.S. Я не понял что команде нужен ник перса)

Автор: Sanasol: Дата: 06.14.2010

Начал вчера писать эту фигню выложу что имеется...

attachnpctimer strcharinfo(0);
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;



set $nozombies,0;
set $zombies,0;
set $@restarted,1;
set $@restarted1,0;
sleep 1000;
announce "Поехали!",0;
initnpctimer;

OnTimer5000:
announce "На эвенте "+$nozombies+" людей и "+$zombies+" Зомби",bc_all;

OnTimer7000:
if ( $nozombies == 1 ){ announce "Обитель Зла: Остался один человек эвент окончен! Победитель пройдите к НПЦ Выдача Призов!",0; set $@restarted,0; set $@restarted1,1; enablenpc "Выдача Призов"; end;}
stopnpctimer;
initnpctimer;