Jump to content

Yoh Asakura

Members
  • Content Count

    261
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Yoh Asakura


  1.  

    Something like this?

    -	script	MapAnnounce	-1,{OnPCLoadMapEvent:if( strcharinfo(PC_MAP) != "pvp_y_2-2" ) end;if( !getmapusers(strcharinfo(PC_MAP))%3 )	announce "There are " + getmapusers(strcharinfo(PC_MAP)) + " players on map " + strcharinfo(PC_MAP) + ".";end;}pvp_y_2-2	mapflag	loadevent

    Almost like that, the problem is that I just want it to announce when it gets 3 players, then if gets 6 players will announce too. And if it has more than 10 it will announce that the pvp is full of players.

    So means that if there's 2 players it won't announce, or 4, or 7, 8, etc.


  2. I had this idea before and I told to Dastgir if he could make it.

     

    But my idea is a little bit different. The option to bet with Cash should be the following:

    The players can bet using cash, and the NPC will show how many bets was made till now and the amount of cash acumulated..

    The player can bet only 5 cash, this way will be fair to everyone.

     

    Example:

    Total Bets: 5 bets

    Total Cash Acumulated: 25 cash

     

    And in the end of the month the NPC will give the prize to a player (random).

     

    You can do this?


  3. How to add delay to use the npc again?

     

    Example:

    The player uses the NPC, like the healer, after that he needs to wait 1 hour to use it again.

     

    I tried using function but it didin't work.

     

     

    if (!callfunc("CheckLastUse",1,$@delay)) {

    dispbottom "Desculpe mas você precisa esperar "+($@delay - (gettimetick(2) - @TLTime))+" segundos para utilizar meus serviços novamente.";
    close;
    }
    percentheal 100,100;
    sc_start 32, 240000, 10; // Increase Agi Duração: 999 sec
       sc_start 30, 240000, 10; // Blessing Duração: 999 sec
       skilleffect 29,0; // Increase Agi
       skilleffect 34,0; // Blessing
    if(gethominfo(1)) healhomun 100,100;
    goto L_END;
    end;
     
    L_END:
    callfunc "SetLastUse",1;
    end;

     

     

    function script CheckLastUse {

    set @TNPCID, getarg(0);
    set @delay, $@delay;
    set @TLTime, getd("$@NPT_" + getcharid(3) + "_" + @TNPCID);
    if (!@TLTime) return 1;
    set @TLEFT, (gettimetick(2) - @TLTime);
    if (@TLEFT < @delay) return 0;
    return 1;
    }
     
    function script SetLastUse {
    set @TNPCID, getarg(0);
    setd "$@NPT_" + getcharid(3) + "_" + @TNPCID, gettimetick(2);
    return;

    }

     


  4. Hi,

     

    I would like an script that only announce when it has x players in a map.

     

    Example:

    When it has 3 players in a pvp map, such as pvp_y_2-2, the npc will announce that there are currently 3 players in that map. And if it has 6 players in that map it will announce again that has 6 players...

     

    Hope anyone can help me, thanks in advance.


  5.  

    I tried to add a npc to block the item but it's still possible to bring the item in the cart (with merchant and alchemist)

    Is there anyway to block the item inside the cart?

     

    @edit

    Maybe I can add a script that checks each second if a player has this item, this way, when they pick the item from the cart the script will detect.

    Who can do the edition to me?

     

    Like the AFK script, but this one to check an item in the inventory...

     

    even the whatever class bring the ygg in the cart they won't be able to use it, that mean your purpose served and don't forget set the items.conf as @@Emistry said above

     

    // Will disabled consumables (disabled by map_zone_db.conf) be consumed when trying to use them?// 1 (official): yes// 0: noitem_restricted_consumption_type: 1// Unequip the equipments that has disabled by map_zone_db.conf ?// 0 : disabled equipments and cards are nullify (official)// 1 : disabled equipments are unequip, disabled cards are nullify// 2 : disabled equipments are nullify, disabled cards will caused the equipment to unequip// 3 : disabled equipments are unequip, disabled cards will caused the equipment to unequip (1+2)unequip_restricted_equipment: 0

    https://github.com/HerculesWS/Hercules/blob/master/conf/battle/items.conf

     

    item_restricted_consumption_type: 0 // so your player won't feel scamed using item without feeling the effect

     

    Already did that but it's still possible to use the item.


  6. Hi,

     

    I'm trying to block an item in a map but some players just put this item in the cart and they can enter in the map, take the item from the cart and use.

    Well, if I add a script that checks each second if the player has this item, the script would detect who has the item and teleport them to prontera.

    I tried to do it based on the AFK script.

     

     

     

    - script checkitem -1,{
     
     
    OnInit:
        .timetocheck = 1;        //Seconds after which idle is checked.
    end;
     
     
    OnPCLoadMapEvent::
        addtimer .timetocheck*1000,strnpcinfo(3)+"::OnCheckAFK";
        end;
                                                                   
    OnCheckAFK:
    if(countitem(607) > 0 || countitem(608) > 0) { 
    mes "[^FF0000 Guard ^000000]"; 
    mes "Sorry this item is not allowed in here!,"; 
    close2; 
    warp "prontera",150,150; 
    }
    end;
    }
        addtimer .timetocheck*1000,strnpcinfo(3)+"::OnCheckAFK";
    }
     
    // Mapflag
    pvp_n_6-5 mapflag loadevent
     

     

     

     

    Anyone could help me?

     

    Other topic: http://herc.ws/board/topic/9089-map-zone-db/


  7. I tried to add a npc to block the item but it's still possible to bring the item in the cart (with merchant and alchemist)

    Is there anyway to block the item inside the cart?

     

    @edit

    Maybe I can add a script that checks each second if a player has this item, this way, when they pick the item from the cart the script will detect.

    Who can do the edition to me?

     

    Like the AFK script, but this one to check an item in the inventory...


  8. My old emulator is like this

     

    static int battle_calc_base_damage(struct status_data *status, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag)

    {
    unsigned short atkmin=0, atkmax=0;
    short type = 0;
    int damage = 0;
     
    if (!sd)
    { //Mobs/Pets
    if(flag&4)
    {
    atkmin = status->matk_min;
    atkmax = status->matk_max;
    } else {
    atkmin = wa->atk;
    atkmax = wa->atk2;
    }
    if (atkmin > atkmax)
    atkmin = atkmax;
    } else { //PCs
    atkmax = wa->atk;
    type = (wa == &status->lhw)?EQI_HAND_L:EQI_HAND_R;
     
    if (!(flag&1) || (flag&2))
    { //Normal attacks
    atkmin = status->dex;
    if (sd->equip_index[type] >= 0 && sd->inventory_data[sd->equip_index[type]])
    atkmin = atkmin*(80 + sd->inventory_data[sd->equip_index[type]]->wlv*20)/100;
     
    if (atkmin > atkmax)
    atkmin = atkmax;
    if(flag&2 && !(flag&16))
    { //Bows
    atkmin = atkmin*atkmax/100;
    if (atkmin > atkmax)
    atkmax = atkmin;
    }
    }
    }
    if (sc && sc->data[sC_MAXIMIZEPOWER])
    atkmin = atkmax;
    //Weapon Damage calculation
    if (!(flag&1))
    damage = (atkmax>atkmin? rand()%(atkmax-atkmin):0)+atkmin;
    else 
    damage = atkmax;
    if (sd)
    {
    //rodatazone says the range is 0~arrow_atk-1 for non crit
    if (flag&2 && sd->arrow_atk)
    damage += ((flag&1)?sd->arrow_atk:rand()%sd->arrow_atk);
     
    //SizeFix only for players
    if (!(sd->special_state.no_sizefix || (flag&8)))
    damage = damage*(type==EQI_HAND_L?
    sd->left_weapon.atkmods[t_size]:
    sd->right_weapon.atkmods[t_size])/100;
    }
    //Finally, add baseatk
    if(flag&4)
    damage += status->matk_min;
    else
    damage += status->batk;
    //rodatazone says that Overrefine bonuses are part of baseatk
    //Here we also apply the weapon_atk_rate bonus so it is correctly applied on left/right hands.
    if(sd) {
    if (type == EQI_HAND_L) {
    if(sd->left_weapon.overrefine)
    damage += rand()%sd->left_weapon.overrefine+1;
    if (sd->weapon_atk_rate[sd->weapontype2])
    damage += damage*sd->weapon_atk_rate[sd->weapontype2]/100;;
    } else { //Right hand
    if(sd->right_weapon.overrefine)
    damage += rand()%sd->right_weapon.overrefine+1;
    if (sd->weapon_atk_rate[sd->weapontype1])
    damage += damage*sd->weapon_atk_rate[sd->weapontype1]/100;;
    }
    }
    return damage;

    }

     

     

    With the old emulator the physical hit could not be above 32k...After the renewal, this new emulator can be more than 32k hit.

    or even easier, just go to trunk/conf/battle/battle.conf

     

    and look this up: enable_baseatk

     

    I think you have it set on 31 (players, monsters, pets, homunculus and mercenary) all you have to do is set it to 15 so that mercenaries don't do it, or set it to 1 for only players to be affected.

     

    // Who should have a baseatk value (makes str affect damage)? (Note 3)enable_baseatk: 9

  9.  

     

    becoz  you choose increase damage option when you diff your client

    There's no such option, and if it has I didin't choose. :(

    sryy, I wrote the wrong word. the option is  Increase attack display, if you choose that option ,your attck damage number can show above 32K

    u3MHvErz7.png

    It's not about this and I didin't select this option.

     

    I think he meant, the damage should not reach that much...

    That's right. The damage is above 32k, which is not normal. The mercenaries are really strong, they can kill very easy because they are hiting 100k+

    How to fix this?


  10. Hi,

     

    After I started using this new emulator from Hercules, the players from my server (pre-renewal) can hit (physical hit) more than 32k in pvp maps.

    The server is a high rate, but before the hit was not above 32k...

     

    Anyone knows why? This is a bug? I already report as a bug but nobody has answered.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.