Niedawno zauważyłem że w G1 na ekranie pokazują mi się artefakty ale tylko po otrzymaniu obrażeń, pokazują się małe kwadraciki a przy śmierci na pół ekranu i wyglądają one jak brak tekstury czyli taka "Skała". Wcześniej tego nie zauważałem dopiero ostatnio i zastanawiam sie czy może to być po wgraniu systempacka 1.7 a wcześniej grałem na 1.6. Warto dodać że pokazują się jedynie przy otrzymanych obrażeniach, przy włączonym Cheat God się nie pokazują bo bohater nie dostaje damage.
EDIT:
Okazało się że to przez moda dodającego swobodne celowanie do G1 mod chyba dodaje plamy krwi na ekranie ale gra chyba nie wykrywa tekstur. Staram się to jakoś ogarnąć ale jeśli ktoś będzie wiedział jak się tego pozbyć to proszę o pomoc.
Tu jest ta instancja od plam krwi tylko właśnie pisze że wymaga ona pliku Bloodsplats.d a nigdzie w gothicu ani w plikach moda takiego nie ma.
Spoiler
/***********************************\
BLOODSPLATS
\***********************************/
/* Diese Instanz wird in der Bloodsplats.d verwendet
* und gehört in Scripts/System/VisualFX/VisualFxInst.d
*/
instance HERO_HURT(CFx_Base_Proto)
{
visName_S = "screenblend.scx";
userString[0] = "0.1";
userString[1] = "128 0 0 64";
userString[2] = "0.1";
visAlphaBlendFunc_S = "ADD";
emFXLifeSpan = 0;
};
EDIT2:
Dobra mam bloodsplats.d dodaję go do Visualfxinst.d i po reparsowaniu skryptów wywala mi błąd Syntax error: ZCVIEW (line2691)
Spoiler
/***********************************\
BLOODSPLATS
\***********************************/
//========================================
// [intern] Variablen
//========================================
var int Hero_LastHP; //Wird in Bloodsplats_Loop gesetzt.
//========================================
// Spritzer auf den Bildschirm
//========================================
func void Bloodsplat(var int currDam) {
if(!currDam) {
return; //Kein Schaden.
};
var int ptr; var zCView v;
var int x; var int y; var int mult;
var int texSizeX; var int texSizeY;
Print_GetScreenSize();
mult = divf(mkf(Print_Screen[PS_X]), mkf(Print_Screen[PS_Y]));
texSizeX = currDam<<BLOODSPLAT_DAM;
if(texSizeX > 6144) { texSizeX = 6144; };
texSizeY = roundf(mulf(mkf(texSizeX), mult));
if(texSizeX > 3072) {
// Volltreffer
x = (r_Max(2)<<13) - (texSizeX>>1);
y = 1024+r_Max(6144) - (texSizeY>>1);
}
else {
// Norm. Treffer
x = 1024+r_Max(6144)-(texSizeX>>1);
y = 1024+r_Max(6144)-(texSizeY>>1);
};
ptr = View_Create(x, y, x+texSizeX, y+texSizeY);
var int s; s = SB_New();
SB ("BLOODSPLAT");
SBi(r_Max(BLOODSPLAT_TEX));
SB (".TGA");
View_SetTexture(ptr, SB_ToString());
SB_Destroy();
View_Open(ptr);
var int a8; a8 = Anim8_NewExt(255, _Bloodsplat_Handler, ptr, false);
Anim8_RemoveIfEmpty(a8, true);
Anim8_RemoveDataIfEmpty(a8, true);
Anim8 (a8, 255, 300, A8_Wait);
Anim8q(a8, 0, 2000, A8_SlowStart);
};
func void _Bloodsplat_Handler(var int h, var int val) {
var zCView v; v = get(h);
v.alpha = val;
};
//========================================
// Screen komplett vollpampen
//========================================
func void Bloodsplats_Rage() {
var int i; i = 0;
var int pos; pos = MEM_StackPos.position;
if(i < BLOODSPLAT_NUM) {
Bloodsplat(100);
i += 1;
MEM_StackPos.position = pos;
};
};
//========================================
// [intern] Perception für den Helden
//========================================
func void _B_HeroDamage() {
var int currDam; currDam = Hero_LastHP - hero.attribute[ATR_Hitpoints];
if(currDam) {
Bloodsplat(currDam);
if (GOTHIC_BASE_VERSION == 2) {
// Call by string for Gothic 1 parsing compatibility
MEM_PushStringParam("HERO_HURT");
MEM_CallByString("WLD_STOPEFFECT");
// The effect flickers under Gothic 1
Wld_PlayEffect("HERO_HURT", hero, hero, 0, 0, 0, 0);
};
};
};
//========================================
// [intern] FF Loop
//========================================
func void _Bloodsplats_Loop() {
// PC_Hero is empty on level change, use hero instead
Npc_PercEnable(hero, PERC_ASSESSDAMAGE, _B_HeroDamage); //Deaktiviert sich manchmal grundlos, deshalb lieber reinkloppen
Hero_LastHP = hero.attribute[ATR_Hitpoints];
};
EDIT3:
Dobra pozbyłem się problemu temat do zamknięcia.