Teleport

    
  1. Atsijungęs

    TakeDefo

    Pranešimai: 0

    Labas rytas. Žodžiu esmė tokia, kad pas mane Interlude Gatekeeperis teleportuoja už adenas. Aš noriu, kad visi teleportai būtų kaip ir yra už adenas, išskyrus vieną.
    Navicate 'teleport' skiltį yra tik už adenas padaryta, count įrašai už kiek skatikų teleportintu ir viskas.
    Tai kaip man pakeisti tą vieną vienintelį teleportą, kad jis veiktu tarkim už kokius Festival Adena?
    31 Sausio 2016 - 09:48 / #1
  2. 
  3. Atsijungęs

    Jeppi

    Pranešimai: 0

    Sveikas, cia jau turi jungtis i source ir darasyt
    
    if(teleportID() = 55***){
       player.getInventory().destroyItem(FA item ID,10)
    }
    
    


    Nezinau kaip tikslai ten sukoduota, cia tik +- kaip pavyzdeli
    Paskutinį kartą redagavo: Jeppi 31 Sausio 2016 - 10:49
    31 Sausio 2016 - 10:48 / #2
  4. 
  5. Atsijungęs

    TakeDefo

    Pranešimai: 0

    Ok, dėkui.
    Einu žiūrėtis kaip kas.
    31 Sausio 2016 - 10:58 / #3
  6. 
  7. Atsijungęs

    NoMansLand

    Pranešimai: 0

    Dar vertas tobulinimo, bet:

    teleports.xml
    <teleport id="1006" loc_x="115113" loc_y="-178212" loc_z="-901" price="46000" fornoble="0" specitem="6673"/>
    prie bet kurio teleporto pridėjus specitem="spec item id" teleportuos už tą itemą price="" atitinka tavo spec itemų kiekį.
    Kaip ir ankščiau teleportina už adenas:
    <teleport id="1006" loc_x="115113" loc_y="-178212" loc_z="-901" price="46000" fornoble="0"/>
    


    TeleportLocationTable.java => load() funkcija ten kur kraunami elementai xml.
    //[ext] specific item
    Node specitemnode = node.getNamedItem("specitem");
    if(specitemnode != null)
        teleport.setSpecItem(Integer.valueOf(specitemnode.getNodeValue()));
    else
        teleport.setSpecItem(-1);


    L2TeleportLocation.java
    //[ext]
    private int specitem;
        
    public void setSpecItem(int id) {
        specitem = id;
    }
            
    public int getSpecItem() {
        return specitem;
    }


    L2TeleporterInstance.java => doTeleport() ties funkcijos galu ten.
    //[ext] use spec item on teleport
    if (list.getSpecItem() != -1) {
        if (player.destroyItemByItemId("Teleport use spec item", list.getSpecItem(), price, this, true))
            player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ(), 20);
    } else if (Config.ALT_GAME_FREE_TELEPORT || player.destroyItemByItemId("Teleport " + (list.getIsForNoble() ? " nobless" : ""), 57, price, this, true)) {
        if (Config.DEBUG)
            _log.fine("Teleporting player " + player.getName() + " to new location: " + list.getLocX() + ":" + list.getLocY() + ":" + list.getLocZ());
        player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ(), 20);
    }
    


    Ant greito pratestavus veikia. Ant acis tikrai tiks ant kitų packų matyt kažką pakeist reiks kur nors.
    31 Sausio 2016 - 13:14 / #4
  8. 
  9. Atsijungęs

    TakeDefo

    Pranešimai: 0

    Pasidariau jau, ačiū.
    31 Sausio 2016 - 13:30 / #5