Guida C++ Invetario 4 pagine

Stato
Discussione chiusa ad ulteriori risposte.

finaltorment

Utente Premium
16 Ottobre 2009
139
23
22
104
Ultima modifica:
in quanto non capisco il motivo ma questa comunity è mezza morta e la maggior parte delle persone ormai naviga su siti stranieri e condivide le cose con loro invece che qua (è una critica costruttiva) condivido con voi una guida pubblicata altrove ma non su inforge ricostruita a modo in quanto anche su quel sito era davvero frammentata.
ora vedremo come implementare i 4 inventari funzionanti tramite source:
ATTENZIONE Le tabulazioni sottostanti sono da fare tutte, quindi non usate il copia-incolla.

per prima cosa andiamo nella nosta folder /common e apriamo lenght.h e cerchiamo:
PHP:
INVENTORY_MAX_NUM       = 90,
sostituiamo con:
PHP:
INVENTORY_MAX_NUM       = 180,
Salviamo, apriamo char_item.cpp in /game/src e cerchiamo la funzione:
ATTENZIONE le seguenti 2 funzioni sono richiamate 2 volte quindi ricordatevi di sostituirle entrambe.
PHP:
BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2);
sostituiamo con:
PHP:
BYTE bPage = bCell / (INVENTORY_MAX_NUM / 4);
cerchiamo:
PHP:
if (p / (INVENTORY_MAX_NUM / 2) != bPage)
sostituiamo con:
PHP:
if (p / (INVENTORY_MAX_NUM / 4) != bPage)
per chi potesse avere problemi per gli ultimi 3 slot del belt system consiglio anche questa modifica
cerchiamo:
PHP:
BYTE bCell = Cell.cell;
e modifichiamo in:
PHP:
WORD bCell = Cell.cell;
Salviamo e sempre nella stessa cartella cerchiamo exchange.cpp cerchiamo la funzione:
PHP:
static CGrid s_grid1(5, INVENTORY_MAX_NUM/5 / 2); // inven page 1
la sostituiamo con la seguente funzione:
PHP:
static CGrid s_grid1(5, INVENTORY_MAX_NUM/5 / 4); // inven page 1
static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 4); // inven page 2
static CGrid s_grid3(5, INVENTORY_MAX_NUM/5 / 4); // inven page 3
static CGrid s_grid4(5, INVENTORY_MAX_NUM/5 / 4); // inven page 4

s_grid1.Clear();
s_grid2.Clear();
s_grid3.Clear();
s_grid4.Clear();
subito sotto cerchiamo questa funzione:
PHP:
for (i = 0; i < INVENTORY_MAX_NUM / 4; ++i)
e sostituiamo tutto con la seguente:
PHP:
    for (i = 0; i < INVENTORY_MAX_NUM / 4; ++i)
    {
        if (!(item = victim->GetInventoryItem(i)))
            continue;

        s_grid1.Put(i, 1, item->GetSize());
    }
    for (i = INVENTORY_MAX_NUM / 4; i < (INVENTORY_MAX_NUM / 4) * 2; ++i)
    {
        if (!(item = victim->GetInventoryItem(i)))
            continue;

        s_grid2.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
    }
    for (i = (INVENTORY_MAX_NUM / 4) * 2; i < (INVENTORY_MAX_NUM / 4) * 3; ++i)
    {
        if (!(item = victim->GetInventoryItem(i)))
            continue;

        s_grid3.Put(i - (INVENTORY_MAX_NUM / 4) * 2, 1, item->GetSize());
    }
    for (i = (INVENTORY_MAX_NUM / 4) * 3; i < (INVENTORY_MAX_NUM / 4) * 4; ++i)
    {
        if (!(item = victim->GetInventoryItem(i)))
        continue;

        s_grid4.Put(i -(INVENTORY_MAX_NUM / 4) * 3, 1, item->GetSize());
    }
OCCHIO alle tabulazioni. ultima cosa, cerchiamo:
PHP:
int iPos = s_grid1.FindBlank(1, item->GetSize());
e sostituiamo tutta la funzione con:
PHP:
int iPos = s_grid1.FindBlank(1, item->GetSize());

            if (iPos >= 0)
            {
                s_grid1.Put(iPos, 1, item->GetSize());
            }
            else
            {
                iPos = s_grid2.FindBlank(1, item->GetSize());

                if (iPos >= 0)
                {
                    s_grid2.Put(iPos, 1, item->GetSize());
                }
                else
                {
                    iPos = s_grid3.FindBlank(1, item->GetSize());
                   
                    if (iPos >= 0)
                    {
                        s_grid3.Put(iPos, 1, item->GetSize());
                    }
                    else
                    {
                        iPos = s_grid4.FindBlank(1, item->GetSize());
                       
                        if (iPos >= 0)
                        {
                            s_grid4.Put(iPos, 1, item->GetSize());
                        }
                        else
                        {
                            return false;
                        }
                    }
                }
            }
        }
    }
    return true;
}
MI RACCOMANDO ALLE TABULAZIONI. ora la parte source server è completa passiamo al launcher:
Dirigiamoci in /Userinterface, apriamo GameType.h e cerchiamo la seguente funzione:
PHP:
const DWORD c_Inventory_Page_Count = 2;
modifichiamola in:
PHP:
const DWORD c_Inventory_Page_Count = 4;
compiliamo pure il nostro launcher e passiamo al lato client.
dirigiamoci nella nostra locale nel percorso /ui e apriamo inventorywindow.py e cerchiamo:
PHP:
EQUIPMENT_START_INDEX = 90
sostituiamolo con:
PHP:
EQUIPMENT_START_INDEX = 180
ora dirigiamoci in root, apriamo uiinventory.py e cerchiamo:
PHP:
self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))
subito sotto aggiungete:
PHP:
self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))
self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))
adesso cerchiamo la funzione:
PHP:
self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
e sostituiamo il tutto con:
PHP:
self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg))
self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))
self.inventoryTab[0].Down()
adesso cerchiamo:
PHP:
def SetInventoryPage(self, page):
e sostituiamo (occhio alle tabulazioni):
PHP:
def SetInventoryPage(self, page):
        self.inventoryPageIndex = page
        for i in xrange(4):
            if i != self.inventoryPageIndex:
                self.inventoryTab[i].SetUp()
                self.inventoryTab[self.inventoryPageIndex].Down()
        self.RefreshBagSlotWindow()
adesso rechiamoci in uiscript modifichiamo in beltinentorywindow.py:
PHP:
EQUIPMENT_START_INDEX = 90
in:
PHP:
EQUIPMENT_START_INDEX = 180
adesso torniamo nella locale e apriamo locale_interface.txt e cerchiamo:
PHP:
INVENTORY_PAGE_BUTTON_TOOLTIP_2    2° Inventario
e aggiungiamo subito sotto:
PHP:
INVENTORY_PAGE_BUTTON_TOOLTIP_3    3° Inventario
INVENTORY_PAGE_BUTTON_TOOLTIP_4    4° Inventario
per ultima cosa vi posto la mia inventorywindow.py da cui prendere spunto:
PHP:
import uiScriptLocale
import item

EQUIPMENT_START_INDEX = 180

window = {
    "name" : "InventoryWindow",

    ## 600 - (width + ¿À¸¥ÂÊÀ¸·Î ºÎÅÍ ¶ç¿ì±â 24 px)
    "x" : SCREEN_WIDTH - 176,
    "y" : SCREEN_HEIGHT - 42 - 570,

    "style" : ("movable", "float",),

    "width" : 176,
    "height" : 585,

    "children" :
    (
        ## Inventory, Equipment Slots
        {
            "name" : "board",
            "type" : "board",
            "style" : ("attach",),

            "x" : 0,
            "y" : 0,

            "width" : 176,
            "height" : 585,

            "children" :
            (
                ## Title
                {
                    "name" : "TitleBar",
                    "type" : "titlebar",
                    "style" : ("attach",),

                    "x" : 8,
                    "y" : 7,

                    "width" : 161,
                    "color" : "yellow",

                    "children" :
                    (
                        { "name":"TitleName", "type":"text", "x":77, "y":3, "text":uiScriptLocale.INVENTORY_TITLE, "text_horizontal_align":"center" },
                    ),
                },

                ## Equipment Slot
                {
                    "name" : "Equipment_Base",
                    "type" : "image",

                    "x" : 10,
                    "y" : 33,

                    "image" : "d:/ymir work/ui/equipment_bg_without_ring.tga",

                    "children" :
                    (

                        {
                            "name" : "EquipmentSlot",
                            "type" : "slot",

                            "x" : 3,
                            "y" : 3,

                            "width" : 150,
                            "height" : 182,

                            "slot" : (
                                        {"index":EQUIPMENT_START_INDEX+0, "x":39, "y":37, "width":32, "height":64},
                                        {"index":EQUIPMENT_START_INDEX+1, "x":39, "y":2, "width":32, "height":32},
                                        {"index":EQUIPMENT_START_INDEX+2, "x":39, "y":145, "width":32, "height":32},
                                        {"index":EQUIPMENT_START_INDEX+3, "x":75, "y":67, "width":32, "height":32},
                                        {"index":EQUIPMENT_START_INDEX+4, "x":3, "y":3, "width":32, "height":96},
                                        {"index":EQUIPMENT_START_INDEX+5, "x":114, "y":67, "width":32, "height":32},
                                        {"index":EQUIPMENT_START_INDEX+6, "x":114, "y":35, "width":32, "height":32},
                                        {"index":EQUIPMENT_START_INDEX+7, "x":2, "y":145, "width":32, "height":32},
                                        {"index":EQUIPMENT_START_INDEX+8, "x":75, "y":145, "width":32, "height":32},
                                        {"index":EQUIPMENT_START_INDEX+9, "x":114, "y":2, "width":32, "height":32},
                                        {"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32},
                                        ## »õ ¹ÝÁö1
                                        ##{"index":item.EQUIPMENT_RING1, "x":2, "y":106, "width":32, "height":32},
                                        ## »õ ¹ÝÁö2
                                        ##{"index":item.EQUIPMENT_RING2, "x":75, "y":106, "width":32, "height":32},
                                        ## »õ º§Æ®
                                        {"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32},
                                    ),
                        },
                        ## Dragon Soul Button
                        {
                            "name" : "DSSButton",
                            "type" : "button",

                            "x" : 114,
                            "y" : 107,

                            "tooltip_text" : uiScriptLocale.TASKBAR_DRAGON_SOUL,

                            "default_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_01.tga",
                            "over_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_02.tga",
                            "down_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_03.tga",
                        },
                        ## MallButton
                        {
                            "name" : "MallButton",
                            "type" : "button",

                            "x" : 118,
                            "y" : 148,

                            "tooltip_text" : uiScriptLocale.MALL_TITLE,

                            "default_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_01.tga",
                            "over_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_02.tga",
                            "down_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_03.tga",
                        },
                        ## CostumeButton
                        {
                            "name" : "CostumeButton",
                            "type" : "button",

                            "x" : 78,
                            "y" : 5,

                            "tooltip_text" : uiScriptLocale.COSTUME_TITLE,

                            "default_image" : "d:/ymir work/ui/game/taskbar/costume_Button_01.tga",
                            "over_image" : "d:/ymir work/ui/game/taskbar/costume_Button_02.tga",
                            "down_image" : "d:/ymir work/ui/game/taskbar/costume_Button_03.tga",
                        },                    
                        {
                            "name" : "Equipment_Tab_01",
                            "type" : "radio_button",

                            "x" : 86,
                            "y" : 161,

                            "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",
                            "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",
                            "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

                            "children" :
                            (
                                {
                                    "name" : "Equipment_Tab_01_Print",
                                    "type" : "text",

                                    "x" : 0,
                                    "y" : 0,

                                    "all_align" : "center",

                                    "text" : "I",
                                },
                            ),
                        },
                        {
                            "name" : "Equipment_Tab_02",
                            "type" : "radio_button",

                            "x" : 86 + 32,
                            "y" : 161,

                            "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",
                            "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",
                            "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

                            "children" :
                            (
                                {
                                    "name" : "Equipment_Tab_02_Print",
                                    "type" : "text",

                                    "x" : 0,
                                    "y" : 0,

                                    "all_align" : "center",

                                    "text" : "II",
                                },
                            ),
                        },

                    ),
                },

                {
                    "name" : "Inventory_Tab_01",
                    "type" : "radio_button",

                    "x" : 10,
                    "y" : 33 + 189,

                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1,

                    "children" :
                    (
                        {
                            "name" : "Inventory_Tab_01_Print",
                            "type" : "text",

                            "x" : 0,
                            "y" : 0,

                            "all_align" : "center",

                            "text" : "I",
                        },
                    ),
                },
                {
                    "name" : "Inventory_Tab_02",
                    "type" : "radio_button",

                    "x" : 10 + 78,
                    "y" : 33 + 189,

                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2,

                    "children" :
                    (
                        {
                            "name" : "Inventory_Tab_02_Print",
                            "type" : "text",

                            "x" : 0,
                            "y" : 0,

                            "all_align" : "center",

                            "text" : "II",
                        },
                    ),
                },
                {
                    "name" : "Inventory_Tab_03",
                    "type" : "radio_button",

                    "x" : 10,
                    "y" : 33 + 210,

                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_3,

                    "children" :
                    (
                        {
                            "name" : "Inventory_Tab_03_Print",
                            "type" : "text",

                            "x" : 0,
                            "y" : 0,

                            "all_align" : "center",

                            "text" : "III",
                        },
                    ),
                },
                {
                    "name" : "Inventory_Tab_04",
                    "type" : "radio_button",

                    "x" : 10 + 78,
                    "y" : 33 + 210,

                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_4,

                    "children" :
                    (
                        {
                            "name" : "Inventory_Tab_04_Print",
                            "type" : "text",

                            "x" : 0,
                            "y" : 0,

                            "all_align" : "center",

                            "text" : "IV",
                        },
                    ),
                },

                ## Item Slot
                {
                    "name" : "ItemSlot",
                    "type" : "grid_table",

                    "x" : 8,
                    "y" : 264,

                    "start_index" : 0,
                    "x_count" : 5,
                    "y_count" : 9,
                    "x_step" : 32,
                    "y_step" : 32,

                    "image" : "d:/ymir work/ui/public/Slot_Base.sub"
                },

                ## Print
                {
                    "name":"Money_Slot",
                    "type":"button",

                    "x":8,
                    "y":28,

                    "horizontal_align":"center",
                    "vertical_align":"bottom",

                    "default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
                    "over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
                    "down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

                    "children" :
                    (
                        {
                            "name":"Money_Icon",
                            "type":"image",

                            "x":-18,
                            "y":2,

                            "image":"d:/ymir work/ui/game/windows/money_icon.sub",
                        },

                        {
                            "name" : "Money",
                            "type" : "text",

                            "x" : 3,
                            "y" : 3,

                            "horizontal_align" : "right",
                            "text_horizontal_align" : "right",

                            "text" : "123456789",
                        },
                    ),
                },

            ),
        },
    ),
}

bene ora abbiamo finito e implementato corettamente i 4 inventari senza alcun bug.
spero sia stato di vostro gradimento in quanto io personalmente ho trovato un'pò di difficoltà la prima volta che ho implementato il tutto, spero di aver riunito tutto il più possibile e senza errori, se ci sono problmi, critiche o suggerimenti sono tutti ben accetti.
 
Probabilmente perchè pubblicando in quelle community estere lo facciamo sapendo che ne verrà fatto un buon utilizzo ed il lavoro non verrà unicamente criticato come qui in italia. Non credi?
 
non saprei, so solo che le stesse persone che pubblicano qua criticano subito per cavolate, mentre in altri forum tutti buoni, gentili e coccolosi... boh valle a capire le persone, cmq spero sia di aiuto questa guida come lo è stata per me.
 
Più che altro, capirai tu stesso quando la gente cercherà di seguire questa guida, avrà dei problemi e tu non sarai li ad aiutarli, vedrai come si comporteranno.
 
Ultima modifica:
[OT]
Il motivo per qui (quasi) nessuno posta il proprio lavoro su Inforge, o sulle community Italiane in generale, è perché al primo problema trovato lo scriveranno qui, senza neanche degnarsi di fare le proprie prove e/o riprovare ad implementare il sistema nuovamente, e, per questo motivo, le persone più esperte nel campo rifiuteranno di aiutare il prossimo (perché il problema non sarà sicuramente uno).. pertanto la parola community perde il suo reale significato. Quello che c'è di diverso nelle altre community, e basandomi su quelle dedicate soprattutto al mondo di Metin2, è la voglia di imparare e di migliorare le proprie abilità, ovvero, l'inverso di quello che la maggior parte degli Italiani che crea e/o gestisce un server si pone in mente (€€).
[/OT]

Come consigliai io stesso su un'altra community, suggerirei l'utilizzo di un vettore per le griglie (s_grid1, s_grid2, s_grid3, s_grid4) in quanto vedere 4 variabili che riguardano lo stesso oggetto mi fa veramente venire i brividi.
 
Grazie, utilissimo!
Welcome
 
Come consigliai io stesso su un'altra community, suggerirei l'utilizzo di un vettore per le griglie (s_grid1, s_grid2, s_grid3, s_grid4) in quanto vedere 4 variabili che riguardano lo stesso oggetto mi fa veramente venire i brividi.

potresti spiegarti meglio, magari editando tale funzione? anche io sono alle prime armi e sono interessato a imparare e cercare di fare le cose il piu pulite possibile.
 
Utile :) .
Piccolo ot, secondo me uno dei tanti moltivi per cui la sezione di metin non si riattiva è che i grandi programmatori, scripter, modellatori etc, preferiscono ottimizzare i loro shop piuttosto che aiutare e condividere, sembra quasi che si siano dimenticanti da dove provengono e chi di loro ancora scrive lo fa per criticare.
Fra questi però ancora qualcuno si salva, cito luzzi perchè ho notato che ha messo le sue conoscienze a disposizione della community con la creazione di quest e altro.
 
potresti spiegarti meglio, magari editando tale funzione? anche io sono alle prime armi e sono interessato a imparare e cercare di fare le cose il piu pulite possibile.
Prima di tutto, apriamo exchange.cpp e cerchiamo la seguente stringa
Codice:
static CGrid s_grid1(5, INVENTORY_MAX_NUM/5 / 2);
modifichiamo in:
Codice:
static CGrid s_grid[4] =
{
    CGrid(5, 9),
    CGrid(5, 9),
    CGrid(5, 9),
    CGrid(5, 9)
};

for (int i = 0; i < 4; i++)
{
    s_grid[i].Clear();
}
immediatamente sotto guardiamo per la seguente stringa:
Codice:
for (i = 0; i < INVENTORY_MAX_NUM / 4; ++i)
e modifichiamo in questo modo:
Codice:
for (i = 0; i < 4; i++)
{     
    for (int j = i * 45; j < ((i * 45) + 45); j++)
    {
         if (!(item = victim->GetInventoryItem(j)))
         {
             continue;
         }

          s_grid[i].Put(j - (i * 45), 1, item->GetSize());
        }
    }
Dirigetevi, sempre nella stessa funzione, alla riga dov'è presente questa stringa:
Codice:
 int iPos = s_grid1.FindBlank(1, item->GetSize());
e sostiuitamo questa e alcuni parti sotto di essa questo codice:
Codice:
int free_space = -1;

for (i = 0; i < 4; i++)
{
    if ((free_space = s_grid[i].FindBlank(1, item->GetSize())) >= 0)
    {
        break;
     }
}

if (free_space == -1)
{
    return false;
}
Il codice, se noti, è stato ridotto il più possibile.
 
  • Mi piace
Reazioni: Aioriax
Utile :) .
Piccolo ot, secondo me uno dei tanti moltivi per cui la sezione di metin non si riattiva è che i grandi programmatori, scripter, modellatori etc, preferiscono ottimizzare i loro shop piuttosto che aiutare e condividere, sembra quasi che si siano dimenticanti da dove provengono e chi di loro ancora scrive lo fa per criticare.
Fra questi però ancora qualcuno si salva, cito luzzi perchè ho notato che ha messo le sue conoscienze a disposizione della community con la creazione di quest e altro.

http://www.inforge.net/xi/threads/how-to-metin2-cython.428424/
3 Commenti, 6 mi piace, 0 visibilità.
In altre community lo stesso post dello stesso autore scritto nella stessa maniera ha ricevuto 20 volte i commenti e 10 volte i like.
Penso che questa sezione non sia morta perchè la gente pensa ai big money, ma semplicemente perchè chi "riceve" non sa apprezzare.
A qual pro quindi condividere una cosa che o non si sa usare, o non si sa cosa sia, o non si apprezza?
Iniziate voi a imparare e a condividere, invece che accusare terzi di "non ricordare da dove si proviene"... Io ricordo da dove provengo e lo rimpiango quel posto, del tutto estraneo a Metin2It del 2015.
 
  • Mi piace
Reazioni: AlwaysOn e luzzi
Ultima modifica:
http://www.inforge.net/xi/threads/how-to-metin2-cython.428424/
3 Commenti, 6 mi piace, 0 visibilità.
In altre community lo stesso post dello stesso autore scritto nella stessa maniera ha ricevuto 20 volte i commenti e 10 volte i like.
Penso che questa sezione non sia morta perchè la gente pensa ai big money, ma semplicemente perchè chi "riceve" non sa apprezzare.
A qual pro quindi condividere una cosa che o non si sa usare, o non si sa cosa sia, o non si apprezza?
Iniziate voi a imparare e a condividere, invece che accusare terzi di "non ricordare da dove si proviene"... Io ricordo da dove provengo e lo rimpiango quel posto, del tutto estraneo a Metin2It del 2015.
Ottimo sapere che nel 2015 c'è ancora chi conta i like, la discussione citata è un caso.
Ti sei posto una domanda interessante: "A qual pro quindi condividere una cosa che o non si sa usare, o non si sa cosa sia, o non si apprezza?"
Si potrebbe ripartire facendo dei tutorial aggiornati = piu utenti interessati al lato tecnico = piu release = maggiori soddisfazioni.
Il mio era un commento generico, mi dispiace se te la sei presa, non era mia intenzione sollevare un polverone ne andare ot, se a qualcuno da fastidio il commento lo editerò.
Cordiali saluti.
 
Il contare il like è semplicemente un monito di quanto poco risalto si dia in questa community a release spesso molto importanti... Non scivoliamo in queste banalità....
Anche il mio era un commento generico, e ti assicuro che non me l'ero presa asd, semplicemente volevo esporre un altro punto di vista.
 
  • Mi piace
Reazioni: RedStar
Stato
Discussione chiusa ad ulteriori risposte.