Beiträge von Aura

    Okay, ich habe das Problem jetzt verstanden. Erstmal danke.


    Also:

    Ich arbeite in der SidebarInventoryWindow, nicht in der InventoryWindow

    Ich habe es so versucht, wie P3nger das sagte und habe mir auch die anderen Klassen angeschaut um zu sehen was fehlt, weil es da ja klappt.

    Ich bekomme jetzt den Fehler:

    Code
    1. 'NoneType' object has no attribute 'OpenTimerWindow'

    Ich checks absolut nicht.

    Hier meine uiinventory.py:

    Bitte melden Sie sich an, um diesen Link zu sehen.


    EDIT:

    Nein, es geht mir um die Funktion "OpenTimerWindow"

    Das mit der BigMessage war nur bei dem Tipp von VegaS.

    Die Funktion ist in der game.py und in der interfacemodule. Wobei die Funktion in der game.py einfach nur die Funktion in der InterfaceModule aufruft. Mehr will ich auch nicht

    Zur Verständnis:

    Ich möchte quasi einfach nur das machen:

    Bitte melden Sie sich an, um diesen Link zu sehen.

    Da das Thema von LordZiege geschlossen wurde ohne Lösung und egal welchen Thread ich in welchem Forum auch immer durchgehe keine Lösung hat, frage ich hier. Ich habs auch so versucht wie Ziege und hatte denselben Fehler.


    Du kannst es umständlich aber wahrscheinlich metin like machen und nen command an den Server schicken der nen command im der game.py ruft. Rein vom Instanzhandling her wäre es sinnvoll

    Ist das nicht viel zu komplex um nur ein Interface zu öffnen? Es öffnet sich ja schon in der game.py über F5, das ist nicht das Problem. Es will einfach nur nicht über die uiinventory.py gehen

    Ich kann eine Funktion aus einer anderen Datei aufrufen. Das ist nicht das Problem.
    Das Problem ist, dass die Funktion in der game.py ist. Die Funktion in der game.py ruft eine Funktion in der interfacemodule.py auf. Deswegen kann ich die Funktion nicht normal callen. Das hab ich schon versucht

    Hallo,


    ich würde gerne in der uiinventory (genau gesagt inventory sidebar) einen Button öffnen. Dieser Button braucht eine Funktion aus der game.py


    Auf m2dev hat VegaS eine Lösung gepostet. Die ist allerdings nicht vollständig.


    VegaS Lösung:


    Hab ich genau so gemacht. Meine Funktion in der uiinventory sieht so aus:

    Code
    1. def ClickIesire(self):
    2. wndGame = self.interface.wndGame
    3. if wndGame:
    4. wndGame.BINARY_SetBigMessage('OpenTimerWindow') # Function from game.py

    Wenn ich das so mache, öffnet sich aber nichts. syserr:

    Lösung?

    Das einzige, was ich finde, ist das:

    Code
    1. WORD GetRefineSet() { return m_pProto ? m_pProto->wRefineSet : 0; }

    Sonst nichts. Nur, dass es aufgerufen wird. Im ganzen Source.

    Bitte melden Sie sich an, um dieses Bild zu sehen.

    (Hab VS nur genutzt, um alle Aufrufe,Deklarationen usw. zu suchen.)


    EDIT: Habs selbst gefixed. Lag an den Expanded Reload Commands.

    Hallo,

    Titel sagt schon alles. Er findet kein RefineSet mehr. Weder die, die ich hinzugefügt habe, noch die, die schon drinnen waren. Ich kann nichts mehr Uppen.
    Woran kann das liegen?

    Das einzige, was ich im Source gefunden hab, ist die Codestelle, die den Fehler ausgibt:

    C: char_item.cpp
    1.     CRefineManager & rm = CRefineManager::instance();
    2. const TRefineTable* prt = rm.GetRefineRecipe(item->GetRefineSet());
    3. if (!prt)
    4. {
    5. sys_err("RefineInformation NOT GET REFINE SET %d", item->GetRefineSet());
    6. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 아이템은 개량할 수 없습니다."));
    7. return false;
    8. }

    Bitte melden Sie sich an, um diesen Link zu sehen.


    Du kannst auch mal deine game.py und deine petgui.py hier hochladen.

    Dann kann dir besser geholfen werden.

    Klar, sorry.


    Hier hole ich mir über die Servercommands aus meiner Pet Quest den Besitzernamen, in meinem Fall xPain.

    Python: game.py
    1. "HaustierName" : self.__PetName,

    Da wird diese Funktion in der game.py ausgelöst:

    Python: game.py
    1. def __PetName(self, HaustierName):
    2. self.petG = petgui.PetGUI()
    3. self.petG.SetData(HaustierName)

    Diese Funktion gibt dann die Variable "HaustierName" an die petgui.py weiter.
    Das ist dann die Funktion in meiner petgui.py. Im Chat wird auch "xPain" und "Bin hier" angezeigt, das heißt ja theoretisch, dass er das "SetText" ausführt.

    Python: petgui.py
    1. def SetData(self, HaustierName):
    2. chat.AppendChat(chat.CHAT_TYPE_INFO, HaustierName)
    3. self.textLine.SetText("Besitzer: " + HaustierName)
    4. chat.AppendChat(chat.CHAT_TYPE_INFO, "Bin hier")


    Hier noch meine ganze petgui.py:

    Hallo,

    ich nutze die Python Examples von Ente , um mein PetGUI weiterzumachen
    Aktuell mache ich das, um testweise eine TextLine einzufügen:

    Das klappt soweit, er zeigt ingame den Text im Window an

    Nun hole ich mir über die Servercommands in der Game.py den Namen. Der Name wird hierhin übergeben:

    Python
    1. def SetData(self, HaustierName):
    2. chat.AppendChat(chat.CHAT_TYPE_INFO, HaustierName)
    3. self.textLine.SetText("Besitzer: " + HaustierName)
    4. chat.AppendChat(chat.CHAT_TYPE_INFO, "Bin hier")

    Die chat prints sind zum test. Der gibt den korrekten Namen aus, führt auch das Settext darunter aus, aber der Text ändert sich nicht. Was hab ich vergessen?


    EDIT: Damits klar ist, def SetData und def __LoadMe sind in derselben Datei (petgui.py), ich hole mir den Wert von HaustierName nur aus der game.py

    local count, petName = mysql_direct_...

    mysql_direct_query gibt dir immer zwei Werte zurueck.

    Erst die Anzahl der Zeilen, die von der Query betroffen waren und dann was die Query dir liefert.

    Erstmal danke.
    wenn ich das so mache:

    LUA
    1. local playerid = pc.get_player_id()
    2. local count, petName = mysql_direct_query("SELECT petname FROM player.player_pet WHERE pid = '"..playerid.."' AND petid = '1';")
    3. chat(count)
    4. chat(petName)

    Gibt er nur das aus:
    Bitte melden Sie sich an, um dieses Bild zu sehen.

    Table sieht so aus:
    Bitte melden Sie sich an, um dieses Bild zu sehen.

    Bitte melden Sie sich an, um dieses Bild zu sehen.

    Leider dasselbe Ergebnis



    EDIT:
    wenn ich

    Code
    1. mysql_direct_query("SELECT petname FROM player.player_pet;")

    mache, gibt er 2 aus, weil die Table 2 rows hat. Ich verstehs nicht

    Erstmal danke an euch, ich habs gefixt.
    Hab jetzt aber ein anderes Problem.

    Ich möchte den eingegebenen Namen und aufs Pet geben.
    Mache das wie folgt:

    LUA
    1. local petName = mysql_direct_query("SELECT 'petname' FROM player.player_pet WHERE pid = '"..playerid.."' AND petid = '1' LIMIT 1;")

    Er gibt aber nur die Anzahl der Zeilen aus, also in dem Fall 1. Einfach nur 1.
    Wenn ich noch eine Zeile einfüge, gibt er 2 aus wenn ich SELECT * FROM blabla mache, bei der Query oben immer noch 1 weil ich eine andere PID eingetragen habe, also filtert er auch korrekt.
    Warum gibt er den Row Count aus wenn ich nicht COUNT mache?
    Hat nichts damit zutun dass es ein Array ist, wenn ich es als Array ausgeben lassen will kommt:

    Code
    1. SYSERR: Jul 20 01:05:40 :: RunState: LUA_ERROR: [string "pets"]:18: attempt to index local `rows' (a number value)
    2. SYSERR: Jul 20 01:05:40 :: WriteRunningStateToSyserr: LUA_ERROR: quest pets.start click

    Ist also kein Array, sondern ein Int.

    Hi,

    mir ist schon bewusst, was der Fehler sagt. Nur macht er leider keinen Sinn.


    Ich möchte folgendes ausführen:

    LUA
    1. mysql_direct_query("INSERT INTO player.player_pet (pid, petid, petname) VALUES ('"..playerid.."',1,'"..pet_name.."');")


    playerid und pet_name sind so beschrieben:

    Code
    1. local pet_name = string.gsub(input(), "[^A-Za-z0-9]", "")
    2. local playerid = pc.get_player_id()


    Klappt soweit auch, er gibt den richtigen Namen und die richtige PID aus.

    Er fügt es aber nicht in die Table ein.

    Syserr:

    Code
    1. SYSERR: Jul 19 23:37:06 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Unknown column 'testnam' in 'field list'
    2. query: INSERT INTO player.player_pet (pid, petid, petname) VALUES (5,1,testnam);

    Was genau checke ich hier nicht? Die Spalten existieren und wie man sehen kann, erkennt er richtig meine PID (5) und hat meine Eingabe erkannt (testnam)

    Dann steht er nicht im Boden, das Modell lädt nicht. Irgendwo ist ein Name oder Pfad falsch. Das habe ich manchmal mit anderen NPCs, Mobs, pets oder sonst was. Schau mal in den Dateien im Frosch Ordner ob der Pfad von allem stimmt, schau ob alles in der npclist richtig eingetragen ist

    Ich würde bei ihm nicht kaufen.

    Er hat mir mal 2 (extrem hässliche und übergroße) Maps gemacht.

    Der property Ordner hat meinen Server zum Absturz gebracht, nicht nur den Client geschlossen. Dann wollte er dafür noch 50€ haben und hat es auf mich geschoben, ich wäre ja zu dumm Maps einzufügen. Hab mir dann irgendeine releaste runtergeladen und eingefügt, die ging direkt. Dann hat er mir DDOS gedroht wenn ich nicht zahle und irgendwann nicht mehr geantwortet

    Screens als Beweis bevor jemand denkt ich laber:


    Bitte melden Sie sich an, um dieses Bild zu sehen.

    Bitte melden Sie sich an, um dieses Bild zu sehen.

    Bitte melden Sie sich an, um dieses Bild zu sehen.




    Edit: screens korrigiert