Jump to content

Break

Members
  • Posts

    153
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Break

  1. "Filter by job class" does not work in the top rankings ( add your own scripts)

     

    If the filter is not used , then all shows

    post-6008-0-88924900-1411300938_thumb.jpg

     

    That shows that the use of

    post-6008-0-40642100-1411300977_thumb.jpg

     

    Help solve the problem.

    Thanks in advance!

  2. I'm not sure exactly what the file is called, but you should be able to find it in Data/Texture/Effect folder. I looked in there and I don't think it's a bmp, since  I couldn't find any bmps that looked like that.

    So it must be a .tga. You check out all the tga files in that folder.

    Among .tga files too, there's nothing.

  3. Is it possible to change textures crit damage on non-interfering, say for example a transparent, so you can see only the numbers (without any red labels). If so, who do not share difficult or at least tell me the name of the file.

  4. Сделал через цикл, вроде бы работает. Осталось теперь разобраться с нечетным кол-вом игроков на карте...

    И да ув. Lilith просьба пишите под eAthena если вас конечно это не затруднит, а то тот код что вы выложили не работает и его пришлось переписывать под свой эмуль)

  5. За старания конечно спасибо, но к сожалению не работает :(

    Вот остальные исходники, может помогут)

    BUILDIN_FUNC(createparty)
    {
    char* nombre; //Genera un warning C4090
    int cid;
    TBL_PC* sd;
    
    nombre = script_getstr(st,2);
    cid = script_getnum(st,3);
    
    sd = map_charid2sd(cid); //Obtiene el map_session_data del char_id
    if( sd == NULL )
    {
    script_pushint(st, -1);
    return 0; //No estб enganchado a un usuario
    }
    
    if( sd->status.party_id > 0 || sd->party_joining || sd->party_creating )
    {// already associated with a party
    script_pushint(st, 0);
    return 0;
    }
    
    party_create(sd, nombre, 0, 0); //Manda a crear la Party
    
    script_pushint(st, 1);
    return 0;
    }
    
    BUILDIN_FUNC(inviteparty)
    {
    struct script_data* data;
    int32 id;
    int32 idx;
    int32 i;
    int32 n;
    int32 arr[256];
    
    struct map_session_data *sd, *tsd;
    
    data = script_getdata(st, 2);
    
    id = reference_getid(data);
    idx = reference_getindex(data);
    
    n = script_getnum(st, 3);
    
    for( i = 0; i < n; ++i )
    {
    arr[i]=(int32)get_val2(st, reference_uid(id, idx + i), reference_getref(data));
    script_removetop(st, -1, 0);
    }
    
    sd=map_charid2sd(arr[0]);
    if (sd == NULL) { return 0; }
    
    for( i = 1; i < n; ++i )
    {
    tsd=map_charid2sd(arr[i]);
    if (tsd == NULL) { continue; }
    
    if (party_invite(sd,tsd)) { party_reply_invite(tsd,sd->status.account_id,1); };
    }
    
    return 0;
    }
    BUILDIN_DEF(inviteparty,"ri"), //YXAZA
    BUILDIN_DEF(createparty,"si"),
    

    Кстати возникла ещё одна проблема. Подскажите как правильно проверить принадлежит ли игрок одному из списков, и после этого вычитать его. Мой вариант не хочет работать.

    Нужный кусок выделил тегом

    prontera,0,0,0 script pvpLadder2 -1,{
    OnPCDieEvent:
    if (getmapxy($@killer_map$,@mapx,@mapy,0,strcharinfo(0))!=0) end;
    if ( ($@killer_map$=="pvp_n_1-5") ){
    warp "prontera",180,160;
    [b]if($@sns_group1[0]){
    set $@sns_pt1,$@sns_pt1-1;}
    if($@sns_group2[0]){
    set $@sns_pt2,$@sns_pt2-1;}[/b]
    if($@sns_pt1 == 0 && $@sns_pt2 == 0) {
    mapannounce "pvp_n_1-5","[Стенка на Стенку] бой завершен!!!",17;
    enablenpc "SNS Prize";
    set $@MeveSNS, 0;
    cleararray $@mapusersid[0],0,getarraysize($@mapusersid);
    cleararray $@sns_group1[0],0,getarraysize($@sns_group1);
    cleararray $@sns_group2[0],0,getarraysize($@sns_group2);
    set $@sns_member,0;
    end;
    }
    mapannounce "pvp_n_1-5","Выживших - Команда Синих: "+$@sns_pt1+" Команда Красных: "+$@sns_pt2,1;
    end;
    }
    }

  6. Обьяснить не могу что они выполняют, т.к не я эти скриптовые команды писал, лишь догадки только...

    Вот сам код, если разберетесь

    BUILDIN_FUNC(mapusersid)
    {
    int m = map_mapname2mapid(script_getstr(st,2)),users = 0;
    struct s_mapiterator* iter;
    TBL_PC *sd;
    
    if (m < 0)
    { script_pushint(st,-1); return 0; }
    
    iter = mapit_getallusers();
    
    for (sd = (TBL_PC*)mapit_first(iter);mapit_exists(iter);sd = (TBL_PC*)mapit_next(iter))
    if ((sd->bl.m == m) && (!pc_isdead(sd))) {
    mapreg_setreg(add_str("$@mapusersid") + (users<<24), sd->status.char_id);
    mapreg_setregstr(add_str("$@mapusersname$")+(users<<24),sd->status.name);
    users++;}
    
    mapit_free(iter);
    return 0;
    }
    
    
    BUILDIN_FUNC(leaveparty)
    {
    struct script_data* data;
    int32 id;
    int32 idx;
    int32 i;
    int32 n;
    int32 arr[256];
    
    struct map_session_data *sd;
    
    data = script_getdata(st, 2);
    
    id = reference_getid(data);
    idx = reference_getindex(data);
    
    n = script_getnum(st, 3);
    
    for( i = 0; i < n; ++i )
    {
    arr[i]=(int32)get_val2(st, reference_uid(id, idx + i), reference_getref(data));
    script_removetop(st, -1, 0);
    if (((sd=map_charid2sd(arr[i])) != NULL ) && sd->status.party_id) { party_leave(sd); }
    }
    
    return 0;
    }
    BUILDIN_DEF(mapusersid,"s"), //NetherRO
    BUILDIN_DEF(leaveparty,"ri"), //YXAZA
    

  7. Ещё раз - что? )

    На примере объясни.

    Что тут непонятного? Распределение игроков на карте идёт по ровну в две пати, если же игроков нечетное кол-во, то один всегда остаётся без пати... Допустим на карте 5 человек, из них 4 распределяет по 2 человека в каждую пати и 1 в пролёте получается =/

  8. Дело в том, что когда нечетное кол-во игроков на карте, то разделение идет между четным кол-вом, а нечетный остается в центре карты не попадая ни в одну из пати, что в таком случае нужно сделать?

    function script nashest36 {
    mapusersid("pvp_n_1-5");
    leaveparty($@mapusersid[0],getarraysize($@mapusersid));
    set $@sns_member,(getmapusers("pvp_n_1-5")/2);
    copyarray $@sns_group1[0],$@mapusersid[0],$@sns_member;
    copyarray $@sns_group2[0],$@mapusersid[$@sns_member],$@sns_member;
    
    sleep 2000;
    
    set $@random,rand(1,100);
    createparty("Blue "+$@random,$@sns_group1);
    set $@sns_pt1,getarraysize($@sns_group1);
    createparty("Red "+$@random,$@sns_group2);
    set $@sns_pt2,getarraysize($@sns_group2);
    
    sleep 2000;
    
    if(getmapusers("pvp_n_1-5")>2 && getmapusers("pvp_n_1-5")<4) {
    inviteparty($@sns_group2[0],$@sns_member);}
    
    else if (getmapusers("pvp_n_1-5")>3) {
    inviteparty($@sns_group1[0],$@sns_member);
    inviteparty($@sns_group2[0],$@sns_member);}
    
    for (set .i, 0; .i < $@sns_member; set .i, .i+1) {
    warpchar "pvp_n_1-5",66,100,$@sns_group1[.i];
    warpchar "pvp_n_1-5",136,100,$@sns_group2[.i];}
    pvpon "pvp_n_1-5";
    }
    
    pvp_n_1-5,99,103,5 script Stenka_test 800,{
    callfunc "nashest36";
    close;
    }

  9. И кто тебе такое подсказал... Я бы в твоём случае скрипт переписал, используя массив, и не обязательно глобальный.

    С массивами я особо не дружу, лучше подскажи как без них решить мою проблему, а то я уже много чего перепробывал, а толку никакого либо показывает всех чаров на 3 местах, либо на 2 или показывает вроде бы нормально сначала, но до тех пор пока кто нибудь не тыкнет и не сдаст лут и всё собьется и хрен знает в каком порядке встанет.

  10. Мне подсказали методом переноса сделать позиции, но не фурычит всё равно... Изначально было так:

    if(loot2>$leaderloot){
    set $leaderloot,loot2;
    set $leaderchar$,strcharinfo(0);
    }
    if(loot2>$leaderloot2){
    set $leaderloot2,loot2;
    set $leaderchar2$,strcharinfo(0);
    }
    if(loot2>$leaderloot3){
    set $leaderloot3,loot2;
    set $leaderchar3$,strcharinfo(0);
    }

×
×
  • Create New...