Reset sprintu oraz paski (poraz kolejny) 6364 23

O temacie

Autor Siemekk

Zaczęty 11.12.2015 roku

Wyświetleń 6364

Odpowiedzi 23

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Kurdę, jednak nie można :F
Przerobiłem sprint na kliknięcie zamiast trzymania. Problem w tym że mds się nie wyłącza ale regeneracja już jest na += o co może chodzić.. próbowałm robić zmienną debugującą, ale nie działa
Skrypt:
func void Sprint_Init()
{
if (MEM_KeyState (KEY_GRAVE) == KEY_PRESSED && Stamina > 5)
    {
   if(!Sprint)&&(!sprintdebbuger)
   {
   if(C_BodyStateContains(hero, BS_STAND)||C_BodyStateContains(hero, BS_RUN))
   {
Sprint=true;
Mdl_ApplyOverlayMDS(hero,"Humans_Sprint");

};
}
else
{
if(C_BodyStateContains(hero, BS_STAND)||C_BodyStateContains(hero, BS_RUN)){
if(Sprint){
Sprint=false;
Mdl_RemoveOverlayMDS(hero,"Humans_Sprint");
};
};
};
};



};
func void Sprint_Regenerate(){
 if (Stamina < Stamina_Max && sprint == false) && (C_BodyStateContains(hero, BS_RUN))
    {
    Stamina += 1;
    }
    else if (MEM_Game.pause_screen || !InfoManager_HasFinished())
{
Stamina +=0;
}
else if (C_BodyStateContains(hero, BS_WALK ) || C_BodyStateContains(hero, BS_STAND)) && (Stamina < Stamina_Max && sprint == false)
{
Stamina += 2;
}
else if (C_BodyStateContains(hero, BS_SNEAK))&& (Stamina < Stamina_Max && sprint == false)
{
Stamina += 1;
}
else if (Stamina > 1 && sprint == true &&(C_BodyStateContains(hero, BS_RUN)))
    {
    Stamina -= 1;
    }
else
{
Stamina +=1;
};

    if (Stamina > Stamina_Max)
    {
    Stamina = Stamina_Max;     
    };

if (Stamina == 1 && (Sprint))
    {
    sprint = false;
sprintdebbuger=true;
    Mdl_RemoveOverlayMds  (hero, "HUMANS_SPRINT.MDS");
    Stamina = 0;
};
if (stamina>=10){
if(sprintdebbuger){
sprintdebbuger=false;
};
};
};
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
Mam tu takie coś w plikach:
func void funkcja()//nazwa funkcji
{
if(MEM_KeyState(KEY_NUMPAD3)==KEY_PRESSED)//jaki klawisz będzie wciśnięty
{
  var int zmienna;//zmienna

 
                if(zmienna)// jeśli zmienna
{


                } else {


                };
                zmienna = !zmienna;//zmienna jest przeciwna zmiennej.... XD
        };
};
Pamiętam że jeśli niema tej negacji na dole to skrypt nie działa, spróbuj się w to wmieszać
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Toworish, w Twoim skrypcie zmienna = !zmienna powoduje, że zmienna przechodzi w odwrotną wartość, czyli od 0 i niżej (czyli 0, -1, -2 itd.) to wartość ujemna (tak, nawet zero) a 1 i wyżej to wartość dodatnia. Więc działa to tak:

0 = !0 = 1 -> 1 = !1 = 0

Czyli w skrócie przemienia wartość z dodatniej na ujemną i odwrotnie.

@Siemaczys Skrypt powinien wyglądać tak:
func void Sprint_Init()
{
if (MEM_KeyState (KEY_GRAVE) == KEY_PRESSED && Stamina > 5)
&& !(C_BodyStateContains(hero, BS_FALL)||C_BodyStateContains(hero, BS_JUMP)))
{
if (sprint){
Mdl_ApplyOverlayMDS(hero,"Humans_Sprint");
}
else
{
Mdl_RemoveOverlayMDS(hero,"Humans_Sprint");
};
Sprint= !Sprint;
};
};
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
@Toworish  Nope. Nie działa.
Nie wiem co może takie cuś powodować :F Raczej do funkcji nie dodam return.
Może wina leży ze strony tego że if (Stamina == 1 && (Sprint))
    {
    sprint = false;
sprintdebbuger=true;
    Mdl_RemoveOverlayMds  (hero, "HUMANS_SPRINT.MDS");
    Stamina = 0;
};
Jest wywoływany co 0.1s ?
func void B_Hotkey_Sprint()
{
var int sbmode_local;

if(SBMODE <= 1)
{
sbmode_local = 1;
}
else if(SBMODE <= 3)
{
sbmode_local = 3;
}
else if(SBMODE >= 4)
{
sbmode_local = 5;
};
if(SPRINT_ACTIVE == TRUE)
{
SPRINT_ACTIVE = FALSE;
Mdl_RemoveOverlayMds(hero,"HUMANS_SPRINT.MDS");
}
else
{
if((ATR_STAMINA > 0) && (hero.attribute[ATR_HITPOINTS] > (hero.attribute[ATR_HITPOINTS_MAX] / (sbmode_local * 2))))
{
SPRINT_ACTIVE = TRUE;
Mdl_ApplyOverlayMds(hero,"HUMANS_SPRINT.MDS");
}
else
{
AI_OutputSVM(hero,hero,"$IMPOSSIBLEFORME");
};
};
};
To do dopiero jest nawalone, a i tak działa właściwie :F
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry