-
Printfunktion
Hi zusammen,
habe mal eine Frage bezüglich "Prints".
Wenn ich mehrere Items von einem NPC zu einem anderen geben lasse mach ich es wegen der Übersicht so:
Code:
AI_PrintScreen ("Velayis erhalten", -1, 41, FONT_ScreenSmall, 2);
AI_PrintScreen ("Degen erhalten", -1, 43, FONT_ScreenSmall, 2);
AI_PrintScreen ("Grog erhalten", -1, 45, FONT_ScreenSmall, 2);
CreateInvItems (hero, ItPl_Blueplant, 1);
CreateInvItems (hero, ITMW_1H_VLK_Sword, 1);
CreateInvItems (hero, ItFO_Addon_Grog, 1);
Mit dieser Methode werden übereinanderprints vermieden.
Anders mit dieser Lösung.
Code:
B_GiveInvItems (self, hero, ItPl_Blueplant, 1);
B_GiveInvItems (self, hero, ITMW_1H_VLK_Sword, 1);
B_GiveInvItems (self, hero, ItFO_Addon_Grog, 1);
Jetzt meine Anliegen. Der Held bekommt eine nicht definierte Menge an Items. Z.b. 1x Apfel, 2 x Pfeile etc und diese sollen dann automatisch untereinander geprintet werden. Da die Items immer unterschiedlich sind kann ich auf das oben genannte Modell leider nicht zurückgreifen.
Das Wappen -Eine fantastische Spielwelt erwartet dich- -bis zu 100 Stunden Spielzeit-
-
Du kannst b_GiveInvItems so überarbeiten das nicht mehr an konstanten Stellen geprintet wird, sondern variabel.
Beispiel:
Code:
func int B_GiveInvItems (var C_NPC giver, var C_NPC taker, var int itemInstance, var int amount)
{
[...]
AI_PrintScreen_Ext (concatText, -1, YPOS_GoldTaken + YPOS_ItemGiven_Offset, FONT_ScreenSmall, 2);
YPOS_ItemGiven_Offset = YPOS_ItemGiven_Offset + 3;
[...]
};
YPOS_ItemGiven_Offset wäre dann einfach eine globale int variable die an anderer Stelle wieder reduziert werden muss.
Code:
var int YPOS_ItemGiven_Offset;
func void calledEveryFrame()
{
if(YPOS_ItemGiven_Offset > 0)
{
YPOS_ItemGiven_Offset = YPOS_ItemGiven_Offset - 1;
};
};
Falls du aber nicht alle prints auf solch ein System umstellst, kann es dann natürlich zu neuen/anderen Überlappungen kommen.
-
Zitat von Cryp18Struct
Du kannst b_GiveInvItems so überarbeiten das nicht mehr an konstanten Stellen geprintet wird, sondern variabel.
Beispiel:
Code:
func int B_GiveInvItems (var C_NPC giver, var C_NPC taker, var int itemInstance, var int amount)
{
[...]
AI_PrintScreen_Ext (concatText, -1, YPOS_GoldTaken + YPOS_ItemGiven_Offset, FONT_ScreenSmall, 2);
YPOS_ItemGiven_Offset = YPOS_ItemGiven_Offset + 3;
[...]
};
YPOS_ItemGiven_Offset wäre dann einfach eine globale int variable die an anderer Stelle wieder reduziert werden muss.
Code:
var int YPOS_ItemGiven_Offset;
func void calledEveryFrame()
{
if(YPOS_ItemGiven_Offset > 0)
{
YPOS_ItemGiven_Offset = YPOS_ItemGiven_Offset - 1;
};
};
Falls du aber nicht alle prints auf solch ein System umstellst, kann es dann natürlich zu neuen/anderen Überlappungen kommen.
Ja, so wollte ich das. Hätte wohl mal in die Funktion gucken sollen
DANKE
Das Wappen -Eine fantastische Spielwelt erwartet dich- -bis zu 100 Stunden Spielzeit-
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|