Автор: 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;
}
Автор: 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)
Автор: 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;