Unmantained Guida [Release]Cambia equip professionale

  • Autore discussione Autore discussione Luscha
  • Data d'inizio Data d'inizio
Una guida contrassegnata come Unmantained contiene informazioni su un argomento obsoleto, non più utile o files non aggiornati da parte del creatore.
Stato
Discussione chiusa ad ulteriori risposte.

Luscha

Utente Platinum
21 Dicembre 2009
1,909
118
2,738
1,149
Ultima modifica da un moderatore:
Yo oggi sono qui per rilasciarvi la mia revisione del ormai notissimo cambia equipaggiamento, introdotto da AeternA (del quale ringrazio lo staff dal cuore perchè mi ha introdotto al mondo del python <3)

Che ha di diverso rispetto a quello originale o da quelli che normalmente girano su inforge? niente di chè alla fine, il funzionamento è lo stesso, però ho aggiunto il tooltip quando si passa sopra gli oggetti, ho fatto in modo che controlli se l'item messo è nel posto giusto (niente più orecchini al posto delle armi), ho fatto in modo che tutti i settaggi di tutti i player che salverete vengano salvati in un solo file e sopratutto quando spostate un oggetto messo nell'equip switcher lo switcher cambierà la posizione di riferimento, tenendolo quindi memorizzato.

Questa volta non vi posto tutti i file, perchè è tardi e perchè la grafica è quella di universal (e non ho voglia di postarla D: )

vi lascio il modulo princiapale e la parte per far "seguire" gli oggetti quando vengono postati. In questo modo potrete cambiare quello che volete e come volete (anche perchè la realizzazione lascia un po a desiderare....)

modulo (nome: uifastequip.py)
QUI

modulo per Python2.2 con cPickle invece che marshal
QUI

grafica (se volete prendere spunto) (nome fastequip.py) (da mettere in locale)
QUI

NB dovete scaricare marshal.pyc per python 2.2 e metterlo in lib se volete far andare, o in alternativa sostituire marshal con cPickle (e cambiare i metodi quelle 2/3 volte che viene utilizzato)

andate in interfacemodule.py, tra le prime righe, tra gli import, mettete

Codice:
import uiFastEquip

_____________________________________________
in __init__ mettete tra i tanti self.blabka = none

Codice:
        self.wndFastEquip = None

__________________________________________
sempre in intefacedule, tra i vari metodi piazzare

Codice:
    def ToggleFastEquipWindow(self):
        if False == player.IsObserverMode():
            if False == self.wndFastEquip.IsShow():
                self.wndFastEquip.Show()
                self.wndFastEquip.SetTop()
_______________________________
andate in __MakeWindows

e mettete dentro al metodo

Codice:
        self.wndFastEquip = uiFastEquip.uiFastEquip()
                        self.wndFastEquip.Hide()
        ### FastEquip
        self.objFastEquipSlots = uiFastEquip.FastEquipSlots()
        self.objFastEquipSlots.GenerateSlots()
        
        self.wndInventory.SetFastEquipEvents(self.objFastEquipSlots.GetSlots, self.objFastEquipSlots.SetNSave)
        self.wndFastEquip.SetFastEquipEvents(self.objFastEquipSlots.GetSlots, self.objFastEquipSlots.SetSlots,                  self.objFastEquipSlots.SetNSave, self.objFastEquipSlots.ResetSlots, self.objFastEquipSlots.SaveSots)
        #######

______________________________
cercate
Codice:
self.wndInventory.SetItemToolTip(self.tooltipItem)

e metteteci sotto

Codice:
        self.wndFastEquip.SetItemToolTip(self.tooltipItem)


################################
spostatevi in game.py

tra i tanti __Press

mettete

Codice:
    def __PressXKey(self):
        if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            self.interface.ToggleFastEquipWindow()
_____________________________

cercate onPressKeyDict[app.DIK_M] = lambda : self.interface.PressMKey()

e sotto mettete

Codice:
        onPressKeyDict[app.DIK_X]            = lambda : self.__PressXKey()

#################################
andate in uiinventory.py

in fondo mettete

Codice:
    #### FASTEQUIP
    def CheckIfFastEquipSlot(self, SlotPos):
        slots = self.EventfastEquipManagementGet()
        for i in xrange(8):
            if slots[i] == SlotPos:
                return i
            
        return -1
        
    def SetFastEquipEvents(self, eventGet, eventSave):
        self.EventfastEquipManagementGet = eventGet
        self.EventfastEquipManagementSet = eventSave


    ## Slot Event

_____________________
cercate def SelectEmptySlot

e sotto a if player.SLOT_TYPE_INVENTORY == attachedSlotType: mettete

Codice:
#### FASTEQUIP
                index = self.CheckIfFastEquipSlot(attachedSlotPos)
                if index > -1:
                    #self.EventfastEquipManagementGet[index] = selectedSlotPos
                    self.EventfastEquipManagementSet(index, selectedSlotPos)

Dopo tutto sto casino avete fatto (ci saranno errori sicuramente, chiedo venia, ma ora di meglio non so fare)

Ringraziementi:
AeternA

Enjoy
 
Ottimo


4bd7k
 
Che intendi come slot reali?

S'intendono slot aggiuntivi fisici, dove l'equipaggiamento spostato è fuori inventario.
Con tale tipologia di slot puoi espandere in lungo ed in largo l'attuale equipaggiamento, aggiungendo per esempio gli slot per gli anelli (diversi ovviamente dagli slot item shop che sono perfettamente inutili). Inoltre con tali slot puoi creare nuovi inventari, nuovi magazzini e quant'altro.
Piccolo esempio, chi ha mai pensato di creare un sistema per immagazzinare oggetti di gilda? Con permessi e tutto s'intende.
Con i sorgenti in mano puoi fare tutto quel che ti passa per la testa, ed il cambia equip è una delle tante chicchette.
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom