Skocz do zawartości

H2S04

Użytkownicy
  • Zawartość

    31
  • Rejestracja

  • Ostatnia wizyta

Reputacja

0 Neutralny

O H2S04

  • Tytuł
    Chicken
  • Urodziny 04/12/1995

Profile Fields

  • Skąd
    Lubelskie
  • Płeć
    Male
  1. Temat zbiorczy na drobnostki

    Gdzieś wydybałem jak gnysek pisał o plikach ini, że lepiej sprawuje się string jak real, dodałem linijkę real() i jest gitara 😁
  2. Temat zbiorczy na drobnostki

    Jutro po robocie (po 20) obczaję, jak coś napisze, czy pykło, pozdrówki 😁
  3. Temat zbiorczy na drobnostki

    Mam taki fajny error. Czemu nie chce mi zmienić wielkości surface? Jak wpiszę liczby 1920 i 1080, odczytuje normalnie i działa, a jak chce odczytać z ini, to nie chce, nawet jak próbuję odczytać ini inną zmienną. OCB? Znalazłem, że multiplikacja ale dalej nie wiem ocb. ___________________________________________ ############################################################################################ FATAL ERROR in action number 1 of Create Event for object o_controller: DoMul :: Execution Error at gml_Script_scr_camera (line 20) - surface_resize(application_surface,view_width*window_scale,view_height*window_scale); ############################################################################################ -------------------------------------------------------------------------------------------- stack frame is gml_Script_scr_camera (line 20) called from - gml_Object_o_controller_Create_0 (line 6) - scr_camera(); Kod Kamery: ini_open("GameOptions.ini"); view_width = ini_read_string("Resolution", "Width", 1920); view_height= ini_read_string("Resolution", "Height", 1080); ini_close(); //// TAK NIE DZIAŁA //view_width = 1920; //// TAK DZIAŁA NORMALNIE //view_height = 1080; window_scale = 3; window_set_size(view_width,view_height); surface_resize(application_surface,view_width*window_scale,view_height*window_scale); if moenter = 3{ // Jak najedzimy na back button if mouse_check_button_pressed(mb_left){ // ini file save if resolution = 1{ // jeżeli wybrana jest 1 rozdzielczość roomwid = 1920; roomhei = 1080; } else { if resolution = 2{ // etc roomwid = 1280; roomhei = 720; } else { if resolution = 3{ // etc roomwid = 1366; roomhei = 768; } else { if resolution = 4{ // itp itd roomwid = 1280; roomhei = 960; } else { if resolution = 5{ roomwid = 1024; roomhei = 768; } else { if resolution = 6{ roomwid = 800; roomhei = 600; } } } } } } ini_open("GameOptions.ini"); //Keys ini_write_string("Keys", "KeyUp", upkey); // nadpisujemy sobie keye ini_write_string("Keys", "KeyDown", downkey); ini_write_string("Keys", "KeyLeft", leftkey); ini_write_string("Keys", "KeyRight", rightkey); ini_write_string("Keys", "KeyDrop", dropkey); ini_write_string("Keys", "KeyUse", usekey); ini_write_string("Keys", "KeyGrenade", grenkey); ini_write_string("Keys", "KeyExpMenu", expmenukey); ini_write_string("Keys", "KeySprint", sprintkey); ini_write_string("Keys", "KeyWalk", walkkey); //Resolution ini_write_string("Resolution", "Width", roomwid); // ustalam szerokośc room (w tym wypadku na resloution 1 czyli 1920x1080) ini_write_string("Resolution", "Height", roomhei); // to samo z wysokością ini_write_string("Resolution", "FullScreen", fullscreen); // i czy gra ma być odpalona w full screen ini_close(); options = false; // wyłączam rysowanie opcji }
  4. Tak, ale jakoś znaleźć dalej nie mogłem 🤣 ale w końcu przypomniało mi się, że chyba nawet Ty zwracałeś mi uwagę na brak referencji w GM, chciałem zrobić mechanikę na skróty, więc dalej nadpisywało mi zmienną weapon, wszystko naprawione, wystarczyło dodać kilka linijek kodu 😁😁
  5. Okej zrobiłem ten kod na teście. Nadpisuje mi tablicę Weapon zamiast specweapon itd. Brak referencji. Czyli dalej jest nadpisywana zmienna Weapon. -.-
  6. Mam problem z tablicami, przerobiłem je trochę, by działać na samych tablicach i nie musieć ich nadpisywać, wcześniej wyciągałem je i nadpisywałem, ale postanowiłem skrócić kod, lecz teraz przy strzale lub przeładowaniu, wartości nie chcą wskoczyć. Strzelę nie pobierze ammo, i nie mogę znowu strzelić, gdy zmienię broń na łuk, ciągle stara się przeładować (autoreload, a ammo ustawione na 5), Draw rysuje się że magazynek pistoletu spada na 0 i wraca do 5, a amunicja z EQ, pobiera się normalnie . Co zrobiłem źle? EDIT: Naprawiłem problem strzelania, nie przyczaiłem, że alarm się nie wykona bo nie klikam przycisku... dodałem linijkę na dół kodu Czy kod się pierdzieli przez brak referencji? Zamiast zmieniać mi tablicę secweapon zmienia mi Weapon? CREATE: #region //Weapons #region //Secondray Weapons /* secweapon[,0] = "Metal Made Pistol"; //Nazwa Broni secweapon[,1] = 0.3; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[,3] = 3; //Minimalna Penetracja Pancerza secweapon[,4] = 8; //Maksymalna Penetracja Pancerza secweapon[,5] = 2; //Typ Używanej Amunicji //// 9mm secweapon[,6] = 0; //Ilość Amunicji w Magazynku secweapon[,7] = 20; //Maksymalna Ilość Amunicji w Magazynku */ secweapon[0,0] = "EMPTY"; //Nazwa Broni secweapon[0,1] = 0; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[0,2] = 0; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[0,3] = 0; //Minimalna Penetracja Pancerza secweapon[0,4] = 0; //Maksymalna Penetracja Pancerza secweapon[0,5] = 0; //Typ Używanej Amunicji //// secweapon[0,6] = 0; //Ilość Amunicji w Magazynku secweapon[0,7] = 0; //Maksymalna Ilość Amunicji w Magazynku secweapon[1,0] = "Wood Made Pistol"; //Nazwa Broni secweapon[1,1] = 0.3; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[1,2] = 2; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[1,3] = 3; //Minimalna Penetracja Pancerza secweapon[1,4] = 5; //Maksymalna Penetracja Pancerza secweapon[1,5] = 2; //Typ Używanej Amunicji //// 9mm secweapon[1,6] = 5; //Ilość Amunicji w Magazynku secweapon[1,7] = 15; //Maksymalna Ilość Amunicji w Magazynku secweapon[2,0] = "Metal Made Pistol"; //Nazwa Broni secweapon[2,1] = 0.3; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[2,2] = 1.8; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[2,3] = 3; //Minimalna Penetracja Pancerza secweapon[2,4] = 8; //Maksymalna Penetracja Pancerza secweapon[2,5] = 2; //Typ Używanej Amunicji //// 9mm secweapon[2,6] = 0; //Ilość Amunicji w Magazynku secweapon[2,7] = 20; //Maksymalna Ilość Amunicji w Magazynku secweapon[3,0] = "Normal Pistol"; //Nazwa Broni secweapon[3,1] = 0.15; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[3,2] = 1.7; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[3,3] = 5; //Minimalna Penetracja Pancerza secweapon[3,4] = 10; //Maksymalna Penetracja Pancerza secweapon[3,5] = 2; //Typ Używanej Amunicji //// 9mm secweapon[3,6] = 0; //Ilość Amunicji w Magazynku secweapon[3,7] = 25; //Maksymalna Ilość Amunicji w Magazynku secweapon[4,0] = "Better Pistol"; //Nazwa Broni secweapon[4,1] = 0.15; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[4,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[4,3] = 7; //Minimalna Penetracja Pancerza secweapon[4,4] = 12; //Maksymalna Penetracja Pancerza secweapon[4,5] = 2; //Typ Używanej Amunicji //// 9mm secweapon[4,6] = 0; //Ilość Amunicji w Magazynku secweapon[4,7] = 30; //Maksymalna Ilość Amunicji w Magazynku secweapon[5,0] = "Police Pistol"; //Nazwa Broni secweapon[5,1] = 0.15; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[5,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[5,3] = 8; //Minimalna Penetracja Pancerza secweapon[5,4] = 14; //Maksymalna Penetracja Pancerza secweapon[5,5] = 2; //Typ Używanej Amunicji //// 9mm secweapon[5,6] = 0; //Ilość Amunicji w Magazynku secweapon[5,7] = 25; //Maksymalna Ilość Amunicji w Magazynku secweapon[6,0] = "Special Forces Pistol"; //Nazwa Broni secweapon[6,1] = 0.15; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[6,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[6,3] = 8; //Minimalna Penetracja Pancerza secweapon[6,4] = 18; //Maksymalna Penetracja Pancerza secweapon[6,5] = 3; //Typ Używanej Amunicji //// 5.56mm secweapon[6,6] = 0; //Ilość Amunicji w Magazynku secweapon[6,7] = 20; //Maksymalna Ilość Amunicji w Magazynku secweapon[7,0] = "Metal Made Pistol"; //Nazwa Broni secweapon[7,1] = 0.4; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[7,2] = 2; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[7,3] = 15; //Minimalna Penetracja Pancerza secweapon[7,4] = 25; //Maksymalna Penetracja Pancerza secweapon[7,5] = 4; //Typ Używanej Amunicji //// 7.62mm secweapon[7,6] = 0; //Ilość Amunicji w Magazynku secweapon[7,7] = 10; //Maksymalna Ilość Amunicji w Magazynku #endregion #region //Primary Weapons /* primweapon[,0] = "Metal Made Pistol"; //Nazwa Broni primweapon[,1] = 0.3; //Szybkośc Strzelania * room_speed // 1 = 1sec; primweapon[,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; primweapon[,3] = 3; //Minimalna Penetracja Pancerza primweapon[,4] = 8; //Maksymalna Penetracja Pancerza primweapon[,5] = 2; //Typ Używanej Amunicji //// primweapon[,6] = 0; //Ilość Amunicji w Magazynku primweapon[,7] = 20; //Maksymalna Ilość Amunicji w Magazynku */ primweapon[0,0] = "EMPTY"; //Nazwa Broni primweapon[0,1] = 0; //Szybkośc Strzelania * room_speed // 1 = 1sec; primweapon[0,2] = 0; //Szybkość Przeładowania * room_Speed // 1 = 1sec; primweapon[0,3] = 0; //Minimalna Penetracja Pancerza primweapon[0,4] = 0; //Maksymalna Penetracja Pancerza primweapon[0,5] = 0; //Typ Używanej Amunicji //// primweapon[0,6] = 0; //Ilość Amunicji w Magazynku primweapon[0,7] = 0; //Maksymalna Ilość Amunicji w Magazynku primweapon[1,0] = "BOW"; //Nazwa Broni primweapon[1,1] = 1; //Szybkośc Strzelania * room_speed // 1 = 1sec; primweapon[1,2] = 1; //Szybkość Przeładowania * room_Speed // 1 = 1sec; primweapon[1,3] = 5; //Minimalna Penetracja Pancerza primweapon[1,4] = 15; //Maksymalna Penetracja Pancerza primweapon[1,5] = 1; //Typ Używanej Amunicji //// Arrows primweapon[1,6] = 0; //Ilość Amunicji w Magazynku primweapon[1,7] = 1; //Maksymalna Ilość Amunicji w Magazynku primweapon[2,0] = "Small PM"; //Nazwa Broni primweapon[2,1] = 0.1; //Szybkośc Strzelania * room_speed // 1 = 1sec; primweapon[2,2] = 2; //Szybkość Przeładowania * room_Speed // 1 = 1sec; primweapon[2,3] = 5; //Minimalna Penetracja Pancerza primweapon[2,4] = 12; //Maksymalna Penetracja Pancerza primweapon[2,5] = 2; //Typ Używanej Amunicji //// 9mm primweapon[2,6] = 0; //Ilość Amunicji w Magazynku primweapon[2,7] = 30; //Maksymalna Ilość Amunicji w Magazynku primweapon[3,0] = "Rifle 74"; //Nazwa Broni primweapon[3,1] = 0.3; //Szybkośc Strzelania * room_speed // 1 = 1sec; primweapon[3,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; primweapon[3,3] = 3; //Minimalna Penetracja Pancerza primweapon[3,4] = 8; //Maksymalna Penetracja Pancerza primweapon[3,5] = 4; //Typ Używanej Amunicji //// 7.62mm primweapon[3,6] = 0; //Ilość Amunicji w Magazynku primweapon[3,7] = 30; //Maksymalna Ilość Amunicji w Magazynku #endregion #region //Special Weapons /* specweapon[,0] = "Metal Made Pistol"; //Nazwa Broni specweapon[,1] = 0.3; //Szybkośc Strzelania * room_speed // 1 = 1sec; specweapon[,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; specweapon[,3] = 3; //Minimalna Penetracja Pancerza specweapon[,4] = 8; //Maksymalna Penetracja Pancerza specweapon[,5] = 2; //Typ Używanej Amunicji //// 9mm specweapon[,6] = 0; //Ilość Amunicji w Magazynku specweapon[,7] = 20; //Maksymalna Ilość Amunicji w Magazynku */ specweapon[0,0] = "EMPTY"; //Nazwa Broni specweapon[0,1] = 0; //Szybkośc Strzelania * room_speed // 1 = 1sec; specweapon[0,2] = 0; //Szybkość Przeładowania * room_Speed // 1 = 1sec; specweapon[0,3] = 0; //Minimalna Penetracja Pancerza specweapon[0,4] = 0; //Maksymalna Penetracja Pancerza specweapon[0,5] = 0; //Typ Używanej Amunicji //// specweapon[0,6] = 0; //Ilość Amunicji w Magazynku specweapon[0,7] = 0; //Maksymalna Ilość Amunicji w Magazynku specweapon[1,0] = "Wood Rifle"; //Nazwa Broni specweapon[1,1] = 1; //Szybkośc Strzelania * room_speed // 1 = 1sec; specweapon[1,2] = 2; //Szybkość Przeładowania * room_Speed // 1 = 1sec; specweapon[1,3] = 8; //Minimalna Penetracja Pancerza specweapon[1,4] = 25; //Maksymalna Penetracja Pancerza specweapon[1,5] = 3; //Typ Używanej Amunicji //// 9mm specweapon[1,6] = 0; //Ilość Amunicji w Magazynku specweapon[1,7] = 10; //Maksymalna Ilość Amunicji w Magazynku specweapon[2,0] = "Pipe Pump"; //Nazwa Broni specweapon[2,1] = 1; //Szybkośc Strzelania * room_speed // 1 = 1sec; specweapon[2,2] = 1; //Szybkość Przeładowania * room_Speed // 1 = 1sec; specweapon[2,3] = 3; //Minimalna Penetracja Pancerza specweapon[2,4] = 8; //Maksymalna Penetracja Pancerza specweapon[2,5] = 2; //Typ Używanej Amunicji //// 9mm specweapon[2,6] = 0; //Ilość Amunicji w Magazynku specweapon[2,7] = 5; //Maksymalna Ilość Amunicji w Magazynku #endregion #region //Ammunition /* ammunition[,0] = "EMPTY"; //Nazwa Amunicji ammunition[,1] = 0; //Ilość Posiadana ammunition[,2] = 0; //Max Ilość Posiadania ammunition[,3] = 0; //Penetracja ammunition[,4] = 0; //Minimalna Ilość DMG ammunition[,5] = 0; //Maksymalna Ilość DMG ammunition[,6] = 0; //Szybkość Pocisku */ ammunition[0,0] = "EMPTY"; //Nazwa Amunicji ammunition[0,1] = 0; //Ilość Posiadana ammunition[0,2] = 0; //Max Ilość Posiadania ammunition[0,3] = 0; //Penetracja ammunition[0,4] = 0; //Minimalna Ilość DMG ammunition[0,5] = 0; //Maksymalna Ilość DMG ammunition[0,6] = 0; //Szybkość Pocisku ammunition[1,0] = "Arrows"; //Nazwa Amunicji ammunition[1,1] = 5; //Ilość Posiadana ammunition[1,2] = 50; //Max Ilość Posiadania ammunition[1,3] = 20; //Penetracja ammunition[1,4] = 10; //Minimalna Ilość DMG ammunition[1,5] = 25; //Maksymalna Ilość DMG ammunition[1,6] = 30; //Szybkość Pocisku ammunition[2,0] = "9mm"; //Nazwa Amunicji ammunition[2,1] = 50; //Ilość Posiadana ammunition[2,2] = 100; //Max Ilość Posiadania ammunition[2,3] = 5; //Penetracja ammunition[2,4] = 5; //Minimalna Ilość DMG ammunition[2,5] = 15; //Maksymalna Ilość DMG ammunition[2,6] = 50; //Szybkość Pocisku ammunition[3,0] = "5.56mm"; //Nazwa Amunicji ammunition[3,1] = 50; //Ilość Posiadana ammunition[3,2] = 100; //Max Ilość Posiadania ammunition[3,3] = 10; //Penetracja ammunition[3,4] = 10; //Minimalna Ilość DMG ammunition[3,5] = 20; //Maksymalna Ilość DMG ammunition[3,6] = 60; //Szybkość Pocisku ammunition[4,0] = "7.62mm"; //Nazwa Amunicji ammunition[4,1] = 50; //Ilość Posiadana ammunition[4,2] = 100; //Max Ilość Posiadania ammunition[4,3] = 15; //Penetracja ammunition[4,4] = 15; //Minimalna Ilość DMG ammunition[4,5] = 30; //Maksymalna Ilość DMG ammunition[4,6] = 70; //Szybkość Pocisku ammunition[5,0] = "Shotgun Shell"; //Nazwa Amunicji ammunition[5,1] = 10; //Ilość Posiadana ammunition[5,2] = 100; //Max Ilość Posiadania ammunition[5,3] = 5; //Penetracja ammunition[5,4] = 5; //Minimalna Ilość DMG ammunition[5,5] = 15; //Maksymalna Ilość DMG ammunition[5,6] = 30; //Szybkość Pocisku #endregion canshot = true; //Mogę Strzelać canuneq = true; // Mogę Wyrzucić Broń Weapon = secweapon; //Wybieranie Tablicy secweapon, primweapon, specweapon SecSlot = 1; //Slot Broni 1 = Secondary PrimSlot = 1; //Slot Broni 2 = Primary SpecSlot = 0; //Slot Broni 3 = Special ActualSlot = 0; //Aktualnie używany slot; 0 = Sceondary, 1 = Primary, 2 = Special WeaponSlot = 0; //Broń W Danym Slocie WeaponName = ""; //Nazwa Broni ReloadSpeed = 0; //Czas Przeładowania Broni; ReloadSpeedMax = 0; //Czas Przeładowania Broni Max; ShotSpeed = 0; //Szybkość Strzelania; ActualAmmo = 0; //Aktualnie przypisana Amunicja WeaponSprite = 0; //Rysowanie Sprita broni WeaponIndex = 0; //Image_Index Sprite Broni MaxWeaponAmmo = 0; //Maxymalna ilość ammo w broni (maxmag); WeaponMinArmorPen = 0; //Minimalna Penetracja Panerza WeaponMaxArmorPen = 0; //Maksymalna Penetracja Pancerza AmmoPenetration = 0; //Penetracja Ammunicji MinAmmoDMG = 0; //Min DMG Amunicji MaxAmmoDMG = 0; //Max DMG Amunicji MaxEqAmmo = 0; //Max Ammo w EQ AmmoName = ""; //Nazwa Amunicji AmmoSpeed = 0; //Szybkosc Amunicji sspd = 0; //Timer Strzelania rspeed = 0; //Timer Reloadu canreload = true; reload = false; reloadend = false; recoil = 0; // Recoil Broni moverecoilend = 0; // Końcowy Recoil moverecoil = 0; //Recoil Podczas ruchu 0 = Stoje, 1 = Idę, 2 = Bignę, 3 = Sprintuję; dmg = 0; ap = 0; alldmg = 0; STEP: if global.pausegame == false && myDead == false{ //Wybieranie Slotu Broni if reload == false{ if keyboard_check_pressed(ord("1")){ ActualSlot = 0; } if keyboard_check_pressed(ord("2")){ ActualSlot = 1; } if keyboard_check_pressed(ord("3")){ ActualSlot = 2; } } //Wybieranie Broni if (ActualSlot == 0) { //Przypisanie warotści których nie trzeba nadpisywać Weapon = secweapon; WeaponSlot = SecSlot; //Przypisanie broni do slotu; WeaponSprite = 1; //Przypisanie Sprite Broni 1 = s_SceWeaponSprite } else { if (ActualSlot == 1) { Weapon = primweapon; WeaponSlot = PrimSlot; //Przypisanie broni do slotu; WeaponSprite = 2; } else { if (ActualSlot == 2) { Weapon = specweapon; WeaponSlot = SpecSlot; //Przypisanie broni do slotu; WeaponSprite = 3; } } } /* secweapon[,0] = "Metal Made Pistol"; //Nazwa Broni secweapon[,1] = 0.3; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[,3] = 3; //Minimalna Penetracja Pancerza secweapon[,4] = 8; //Maksymalna Penetracja Pancerza secweapon[,5] = 2; //Typ Używanej Amunicji //// 9mm secweapon[,6] = 0; //Ilość Amunicji w Magazynku secweapon[,7] = 20; //Maksymalna Ilość Amunicji w Magazynku ammunition[,0] = "EMPTY"; //Nazwa Amunicji ammunition[,1] = 0; //Ilość Posiadana ammunition[,2] = 0; //Max Ilość Posiadania ammunition[,3] = 0; //Penetracja ammunition[,4] = 0; //Minimalna Ilość DMG ammunition[,5] = 0; //Maksymalna Ilość DMG ammunition[,6] = 0; //Szybkość Pocisku */ ActualAmmo = Weapon[WeaponSlot,5]; //Przypisanie typu ammunicji; ReloadSpeed = Weapon[WeaponSlot,2]*room_speed; //Przypisanie szybkości przeładowania; ReloadSpeedMax = Weapon[WeaponSlot,2]*room_speed; //Przypisanie Maxymalnej szybkości przeładowania; ShotSpeed = Weapon[WeaponSlot,1]; //Przypisanie szybkości strzelania; WeaponName = Weapon[WeaponSlot,0]; //Przypisanie Nazwy Broni MaxWeaponAmmo = Weapon[WeaponSlot,7]; //Przypisanie Maksymalnej ilości Ammo w Broni WeaponMinArmorPen = Weapon[WeaponSlot,3]; //Przypisanie Minimalnej Penetracji Pocisku Przez Broń WeaponMaxArmorPen = Weapon[WeaponSlot,4]; //Przypisanie Maksymalnej Penetracji Pocisku Przez Broń WeaponIndex = WeaponSlot; //Przypisanie Indexu Sprite Broni MinAmmoDMG = ammunition[ActualAmmo,4]; //Przypisanie Minimalnego DMG z Amunicji MaxAmmoDMG = ammunition[ActualAmmo,5]; //Przypisanie Maksymalnego DMG z Amunicji AmmoPenetration = ammunition[ActualAmmo,3]; //Pryzpisanie Penetracji Pancerza z Amunicji MaxEqAmmo = ammunition[ActualAmmo,2]; //Przypisanie Maksymalnej ilości Ammo w EQ AmmoName = ammunition[ActualAmmo,0]; //Przypisanie Nazwy Amunicji AmmoSpeed = ammunition[ActualAmmo,6]; #region // LOSOWANIE SZANSY NA TRAFIENIE DANEJ CZĘŚCI CIAŁA PATRZĄC NA PROSZUANIE SIĘ POSTACI if movement == true{ if imwalk == true{ // jezeli ide na shift headproc = 60; torsproc = 30; armproc = 20; legproc = 10; missproc = 0; } if imrun == true { // jezeli sprintuje headproc = 97; torsproc = 70; armproc = 50; legproc = 40; missproc = 0; } if imrunn == true{ // jezeli truchtam headproc = 80; torsproc = 55; armproc = 40; legproc = 20; missproc = 0; } } else { // jezeli stoje headproc = 50; torsproc = 25; armproc = 15; legproc = 5; missproc = 0; } randomize() // upewniamy się że seed będzie losowy i da losowe wyniki procent = irandom(100); //Zawsze domyślnie nie trafisz bodyshot = 6; //Ale jesli procent bedzie dobry to trafisz przynajmniej to if procent > legproc { //wieksze od 10 bodyshot = round(irandom_range(4,5)); } //A jak bedzie lepszy to już to trafisz. if procent > armproc { //wieksze od 25 bodyshot = round(irandom_range(2,3)); //Ten warunek jak się spełni to nadpisze poprzednią zmianę "bodyshot" więc nie musisz się martwić o sprawdzanie Min-max } if procent > torsproc { //wieksze od 30 bodyshot = 1; } if procent > headproc { //wieksze od 90 bodyshot = 0; } #endregion //recoil = 0; // recoil //moverecoilmin = -1; // zmieniajaca wartosc na - //moverecoilend = 0; // koncowy recoil //moverecoil = 0; // stan recoilu = 0, jak stoi, 1 jak idzie, 2 jak truchta, 3 jak biegnie; recoil = random_range(-5,5); moverecoilend = (moverecoil * recoil) / global.recoilskill; dmg = round(irandom_range(MinAmmoDMG,MaxAmmoDMG)); ap = round(irandom_range(WeaponMinArmorPen,WeaponMaxArmorPen)); if global.expmenu == false { #region //SHOT CODE if mouse_check_button(mb_left) { if canshot == true && reload == false { if global.UnAmmo == false { if Weapon[WeaponSlot,6] > 0 { canshot = false; alldmg = ((dmg + ap) + AmmoPenetration); if WeaponName = "BOW"{ inst = instance_create_layer(x,y,"Instances",o_arrow); inst.speed = AmmoSpeed; inst.spdd = AmmoSpeed; inst.direction = direction; inst.image_angle = direction; inst.ap = ap; inst.dmg = alldmg; inst.bshot = bodyshot; global.lastdmg = alldmg; sspd = ShotSpeed; Weapon[WeaponSlot,6] -= 1; } else { shel = instance_create_layer(x,y,"Instances",o_shell); inst = instance_create_layer(x,y,"Instances",o_bullet); inst.speed = AmmoSpeed; inst.spdd = AmmoSpeed; inst.direction = direction + moverecoilend; inst.image_angle = direction + + moverecoilend; inst.ap = ap; inst.dmg = alldmg; inst.bshot = bodyshot; sspd = ShotSpeed; Weapon[WeaponSlot,6] -= 1; } } } else { //if global unammo = true canshot = false; alldmg = ((dmg + ap) + AmmoPenetration); if WeaponName = "BOW"{ inst = instance_create_layer(x,y,"Instances",o_arrow); inst.speed = AmmoSpeed; inst.spdd = AmmoSpeed; inst.direction = direction; inst.image_angle = direction; inst.ap = ap; inst.dmg = alldmg; inst.bshot = bodyshot; global.lastdmg = alldmg; sspd = ShotSpeed; } else { shel = instance_create_layer(x,y,"Instances",o_shell); inst = instance_create_layer(x,y,"Instances",o_bullet); inst.speed = AmmoSpeed; inst.spdd = AmmoSpeed; inst.direction = direction + moverecoilend; inst.image_angle = direction + + moverecoilend; inst.ap = ap; inst.dmg = alldmg; inst.bshot = bodyshot; sspd = ShotSpeed; } } } } if canshot = false && reload = false{ if sspd > 0{ sspd -= 1; } else { canshot = true; } #endregion #region //RELOAD CODE /* secweapon[0,0] = "Metal Made Pistol"; //Nazwa Broni secweapon[0,1] = 0.3; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[0,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[0,3] = 3; //Minimalna Penetracja Pancerza secweapon[0,4] = 8; //Maksymalna Penetracja Pancerza secweapon[0,5] = 2; //Typ Używanej Amunicji //// 9mm secweapon[0,6] = 0; //Ilość Amunicji w Magazynku secweapon[0,7] = 20; //Maksymalna Ilość Amunicji w Magazynku ammunition[0,0] = "EMPTY"; //Nazwa Amunicji ammunition[0,1] = 0; //Ilość Posiadana ammunition[0,2] = 0; //Max Ilość Posiadania ammunition[0,3] = 0; //Penetracja ammunition[0,4] = 0; //Minimalna Ilość DMG ammunition[0,5] = 0; //Maksymalna Ilość DMG ammunition[,6] = 0; //Szybkość Pocisku */ if (WeaponName = "BOW") // JEZE BRON TO ŁUK { if (canreload == true) { // JEZELI MOGĘ PRZEŁADOWAĆ if ((Weapon[WeaponSlot,6] < MaxWeaponAmmo) && (ammunition[ActualAmmo,1] > 0)) // JEŻELI AMMO JEST MNIEJSZE OD MAX AMMO I EQ AMMO JEST WIEKSZE OD 0 { canshot = false; // NIE MOGE STRZELIC canreload = false; // NIE MOGE PRZELADOWAC reload = true; // PRZELADOWANIE rspeed = ReloadSpeed; // SZYBKOSC PRZELADOWANIA } } } else { // JEZELI NIE JEST LUKIEM if keyboard_check_pressed(ord("R")) { if (canreload == true){ if (ammunition[ActualAmmo,1] > 0) { if (Weapon[WeaponSlot,6] < MaxWeaponAmmo) { canshot = false; canreload = false; reload = true; rspeed = ReloadSpeed; var mage; mage = instance_create_layer(x,y,"Instances",o_Mag); mage.mag = ActualAmmo; } } } } } if reload == true { show_debug_message("PRZELADOWYWUJE"); show_debug_message("rspeed: "+string(rspeed)); if rspeed > 0{ rspeed -= 1; show_debug_message("rspeed -= 1"); show_debug_message("rspeed: "+string(rspeed)); } else { reloadend = true; show_debug_message("rspeed: "+string(rspeed)); show_debug_message("END RELOAD"); } } if reloadend == true { show_debug_message("RELOAD END = TRUE"); /* secweapon[0,0] = "Metal Made Pistol"; //Nazwa Broni secweapon[0,1] = 0.3; //Szybkośc Strzelania * room_speed // 1 = 1sec; secweapon[0,2] = 1.5; //Szybkość Przeładowania * room_Speed // 1 = 1sec; secweapon[0,3] = 3; //Minimalna Penetracja Pancerza secweapon[0,4] = 8; //Maksymalna Penetracja Pancerza secweapon[0,5] = 2; //Typ Używanej Amunicji //// 9mm secweapon[0,6] = 0; //Ilość Amunicji w Magazynku secweapon[0,7] = 20; //Maksymalna Ilość Amunicji w Magazynku ammunition[0,0] = "EMPTY"; //Nazwa Amunicji ammunition[0,1] = 0; //Ilość Posiadana ammunition[0,2] = 0; //Max Ilość Posiadania ammunition[0,3] = 0; //Penetracja ammunition[0,4] = 0; //Minimalna Ilość DMG ammunition[0,5] = 0; //Maksymalna Ilość DMG ammunition[,6] = 0; //Szybkość Pocisku */ var a; a = MaxWeaponAmmo - Weapon[WeaponSlot,6]; // a = maxammo (30) - ammo w magazynku (25) == 5 ammo do doadania; show_debug_message("A = "+string(a)); if ammunition[ActualAmmo,1] > a { // jeżeli ammo w eq jest wieksze od a(5) teraz jest 100 wiec jest wieksze 100 > 5 show_debug_message("Ilosc ammo > a"); Weapon[WeaponSlot,6] += a; // dodaj 5 ammo show_debug_message("DODAJ AMMO DO MAG"); ammunition[ActualAmmo,1] -= a; // odejmij 5 ammo show_debug_message("ODEJMIJ AMMO Z EQ"); } else { // jeżeli ammo w eq jest mniejsze od a(5) (np 3) dodaj reszte naboi z eq Weapon[WeaponSlot,6] += ammunition[ActualAmmo,1]; show_debug_message("DODAJRESZTE AMMO"); ammunition[ActualAmmo,1] = 0; show_debug_message("USTAWIA EQAMMO NA 0"); } reloadend = false; show_debug_message("RELOAD END = FALSE"); reload = false; show_debug_message("RELOAD = FALSE"); canreload = true; show_debug_message("CANRELOAD = TRUE"); canshot = true; show_debug_message("CANSHOT = TRUE"); } #endregion #endregion } //global.Expmenu == false; end } //global.pausegame = false && mydead == false; end
  7. Temat zbiorczy na drobnostki

    Dzięki Threef, znowu zrobiłem sobie pod górkę, kombinowaniem, wyjdę z roboty, będę testował 😁 Pozdrawiam.
  8. Temat zbiorczy na drobnostki

    Wróciłem i jak zwykle mam pytanie. Otóż wiem jak się liczy procenty ale nie wiem jak mam to wykorzystać. Jak napisać kod, który daje mi np 100-90% szans, że trafię w głowę, 90-75 % szans, że trafię w tors, 75-45% szans, że trafię w rękę, 45-20% szans, że trafię w nogę i 20-0%, że nie trafię w ogóle. Napisałem coś takiego bez procentów, ale nie działa poprawnie, bo losowanie liczby to dalej losowanie :/ step postaci: if imwalk == true{ // jeżeli idę maxhead = 100; minhead = 90; maxtorso = 90; mintorso = 30; maxarm = 30; minarm = 25; maxleg = 25; minleg = 10; maxmiss = 10; minmiss = 0; } create pocisku: var tt = irandom(1.1); procent = lerp(0,100,tt); step pocisku: if procent > minhead && procent < maxhead{ bodyshot = 0; } else { if procent > mintorso && procent < maxtorso{ bodyshot = 1; } else { if procent > minarm && procent < maxarm{ bodyshot = round(irandom_range(2,3)); } else { if procent > minleg && procent < maxleg{ bodyshot = round(irandom_range(4,5)); } else { if procent > minmiss && procent < maxmiss{ bodyshot = 6; } } } }
  9. Temat zbiorczy na drobnostki

    Tak znowu ja, tak dalej mam pierdołę GMS 2! W Create mam tablicę dwuwymiarową broni, weapon[1,1] = 20 //Posiadana ilość amunicji W stepie wpisałem kod ammo = weapon[weaponh,1] gdzie weaponh jest aktualnie wybraną bronią i tutaj zaczynają się cuda... (w GMS zawsze działało to normalnie) w Evencie Global Mosue Left Down po wpisaniu na próbę ammo -= 1; nie ma reakcji... totalne 0 (mam debugowanie na draw'ach więc widzę czy ubywa czy nie) Po stworzeniu w stepie kodu: if mouse_check_button(mb_left){ if weaponh > 0{ if ammo > 0 { ammo -= 1; } } } Amunicji ubywa po naciśnięciu i trzymaniu LPM tylko o 1, po puszczeniu wraca do poziomu 20, siedzę myślę i dalej nie wiem co zrobiłem źle, a jak zrobiłem to pewnie jakąś pierdołę, której nie widzę :/ CREATE: // SECONDARY // weapon[1,0] = true; // Have Weapon weapon[1,1] = 20; // Ammo weapon[1,2] = 20; // Max Ammo weapon[1,3] = 2; // Mag weapon[1,4] = 3; // Max Mag weapon[1,5] = 1; // Reload Time weapon[1,6] = 1; // Shot Time weapon[1,7] = 5; // DMG weapon[1,8] = 15; // MAX DMG weapon[1,9] = 3; // Armor Penetration weapon[1,10] = "Test1"; // Name STEP: ammo = weapon[weaponh,1]; maxammo = weapon[weaponh,2]; mag = weapon[weaponh,3]; maxmag = weapon[weaponh,4]; reloadtime = weapon[weaponh,5]; shottime = weapon[weaponh,6]; dmg = weapon[weaponh,7]; maxdmg = weapon[weaponh,8]; armorp = weapon[weaponh,9]; weapname = weapon[weaponh,10];
  10. Problem z kodem zmiany broni

    Wszystko działa dobrze :/ jednak dalej jak staję obok broni, tak by zaliczyło kolizję to, teleportuje broń na postać... Dziwne... EDIT3: NIŻEJ; EDIT4: Spróbuję zamienić else na przełącznik... zobaczę jak to będzie działać. EDIT5: Na samym dnie :/ EDIT1: Cholera zapomniałem edytować posta wyżej :o... EDIT2: A ch**a nie wygląda dobrze... Zebrałem broń, gdy nie posiadałem żadnej, więc powinien iść tylko debug: GML primweap Jest większe od 5 // 1 Początek primweap = 0; // 3 początek other.mag + mag <= maxmag // 3 koniec // 1 Koniec</span></span></span></span></span></span></span></span></span></span></span> A dodatkowo wykonuje to GML primweap Jest większe od 5 // 1 Początek primweap != 0; // 4 początek other.mag + mag <= maxmag Tworzenie nowej bronii //4 Koniec // 1 Koniec</span></span></span></span></span></span></span></span></span></span></span> Jeszcze to obadam zaraz... Próba1 : GML Resizing fullscreen window.. Resizing swap chain.. primweap Jest większe od 5 // 1 Początek primweap = 0; // 3 początek other.mag + mag <= maxmag // 3 koniec // 1 Koniec primweap Jest większe od 5 // 1 Początek primweap != 0; // 4 początek other.mag + mag <= maxmag Tworzenie nowej bronii //4 Koniec // 1 Koniec primweap Jest większe od 5 // 1 Początek primweap != 0; // 4 początek other.mag + mag <= maxmag Tworzenie nowej bronii //4 Koniec // 1 Koniec primweap Jest większe od 5 // 1 Początek primweap != 0; // 4 początek other.mag + mag <= maxmag Tworzenie nowej bronii //4 Koniec // 1 Koniec Attempting to set gamepadcount to 0 --------------------------------------------------------------- minFPS, maxFPS, avgFPS -31, 1310, 363 --------------------------------------------------------------- --------------------------------------------------------------- minFPS, maxFPS, avgFPS -31, 1310, 363 --------------------------------------------------------------- C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.0.7.110/windows/Runner.exe DONE (0) Igor complete. elapsed time 00:00:19.3177988s for command "C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.0.7.110/bin/Igor.exe" -options="C:\Users\HieNa\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -- Windows Run started at 06/24/2017 07:49:15 SUCCESS: Run Program Complete EDIT3: Tu cię mam gagatku. Zrobiłem myk, Podniosłem broń, wymusiłem nowy debug msg (że podniosę drugą broń), podlazłem wcisnąłem "E", nie wzięło broni, to dawaj drugi raz wymuszony debug msg i proszę, kod nie działa jak powinien :D Dzięki za dobrą wskazówkę, bo wcześniej tego nie znałem, a w gm już dłubałem wiele razy :). Teraz można pomyśleć jak to naprawić :), Tylko jak? haha dodać alarmy? W stepie jeżeli zmienna = true? Bo już sam nie wiem :D Próba 2: GML Resizing fullscreen window.. Resizing swap chain.. primweap Jest większe od 5 // 1 Początek primweap = 0; // 3 początek other.mag + mag <= maxmag // 3 koniec // 1 Koniec // Podniosłem jedną, będę podnosił drugą primweap Jest większe od 5 // 1 Początek primweap != 0; // 4 początek other.mag + mag <= maxmag Tworzenie nowej bronii //4 Koniec // 1 Koniec primweap Jest większe od 5 // 1 Początek primweap != 0; // 4 początek other.mag + mag <= maxmag Tworzenie nowej bronii //4 Koniec // 1 Koniec // Podniosłem jedną, będę podnosił drugą primweap Jest większe od 5 // 1 Początek primweap != 0; // 4 początek other.mag + mag <= maxmag Tworzenie nowej bronii //4 Koniec // 1 Koniec Attempting to set gamepadcount to 0 --------------------------------------------------------------- minFPS, maxFPS, avgFPS -31, 1364, 347 --------------------------------------------------------------- --------------------------------------------------------------- minFPS, maxFPS, avgFPS -31, 1364, 347 --------------------------------------------------------------- C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.0.7.110/windows/Runner.exe DONE (0) Igor complete. elapsed time 00:00:17.8518242s for command "C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.0.7.110/bin/Igor.exe" -options="C:\Users\HieNa\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -- Windows Run started at 06/24/2017 08:02:18 SUCCESS: Run Program Complete Kod: [Poprawiony, wywaliłem niepotrzebne instance_destroy(other);] GML if keyboard_check_pressed(ord("E")){ if other.weap > 5{ show_debug_message("primweap Jest większe od 5 // 1 Początek") if primweap = other.weap{ show_debug_message("Jest = other.weap // 2 początek") if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ show_debug_message("other.mag + mag <= maxmag") global.weaponid[other.weap,5] += other.mag; other.mag = 0; } else { show_debug_message("other.mag + mag > maxmag") var a = global.weaponid[other.weap,6] - global.weaponid[other.weap,5]; global.weaponid[other.weap,5] += a; other.mag -= a; } show_debug_message("// 2 koniec") } else { if primweap = 0{ show_debug_message("primweap = 0; // 3 początek") primweap = other.weap; primammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ show_debug_message("other.mag + mag <= maxmag") global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { show_debug_message("other.mag + mag > maxmag") var a = global.weaponid[other.weap,6] - global.weaponid[other.weap,5] global.weaponid[other.weap,5] += a; instance_destroy(other); } show_debug_message("// 3 koniec") } else { show_debug_message("primweap != 0; // 4 początek") var oldammo, oldweap, oldweapinst; oldammo = primammo; oldweap = primweap; primweap = other.weap; primammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ show_debug_message("other.mag + mag <= maxmag") global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { show_debug_message("other.mag + mag > maxmag") var a = global.weaponid[other.weap,6] - global.weaponid[other.weap,5]; global.weaponid[other.weap,5] += a; instance_destroy(other); } show_debug_message("Tworzenie nowej bronii") oldweapinst = instance_create_layer(x,y,"Instances",o_WeaponOld); oldweapinst.ammo = oldammo; oldweapinst.weap = oldweap; oldweapinst.mag = 0; show_debug_message("//4 Koniec") } } show_debug_message("// 1 Koniec") } } Napisałem nowy kod: (spoilery nie działają z [g ml] :/ GML var a, b, cse; if keyboard_check_pressed(ord("E")){ show_debug_message("//Sprawdzam czy nie jest pistoletem"); if other.weap > 5{ show_debug_message("//Sprawdzam czy bronie główne są takie same"); if primweap = other.weap{ show_debug_message("//Bronie główne są takie same"); cse = 1; } else { show_debug_message("//Bronie główne są różne"); show_debug_message("//Sprawdzam czy posiadam główną broń w EQ"); if primweap = 0{ show_debug_message("//Nie posiadam broni głównej"); cse = 2; } else { show_debug_message("//Posiadam broń główną"); cse = 3; } } } switch(cse){ case 1: show_debug_message("//Sprawdzam Stan Amunicji"); if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ show_debug_message("//Magazynków jest mniej, niż ilość maxymalna więc zabieram wszystko"); global.weaponid[other.weap,5] += other.mag; other.mag = 0; } else { show_debug_message("//Magazynków jest więcej niż ilość maxymalna, więc sprawdzam ilę mogę wziąć"); a = global.weaponid[other.weap,6] - global.weaponid[other.weap,5]; global.weaponid[other.weap,5] += a; other.mag -= a; } show_debug_message("//Dodałem magazynki"); break; ///////////////////////// case 2: primweap = other.weap; primammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ show_debug_message("//Magazynków jest mniej, niż ilość maxymalna więc zabieram wszystko"); global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { show_debug_message("//Magazynków jest więcej niż ilość maxymalna, więc sprawdzam ilę mogę wziąć"); a = global.weaponid[other.weap,6] - global.weaponid[other.weap,5] global.weaponid[other.weap,5] += a; instance_destroy(other); } show_debug_message("//Podniosłem broń do pustego slotu."); break; ///////////////////////// case 3: show_debug_message("//Zaczynam zamianę broni.") var oldammo, oldweap, oldweapinst; oldammo = primammo; show_debug_message("//Zapisuję starą ilość ammo"); oldweap = primweap; show_debug_message("//Zapisuję stare id broni"); primweap = other.weap; show_debug_message("//Zamieniam broń na nową broń"); primammo = other.ammo; show_debug_message("//Zamieniam ammo na nową wartość ammo"); show_debug_message("//Sprawdzam Stan Amunicji"); if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ show_debug_message("//Magazynków jest mniej, niż ilość maxymalna więc zabieram wszystko"); global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { show_debug_message("//Magazynków jest więcej niż ilość maxymalna, więc sprawdzam ilę mogę wziąć"); var a = global.weaponid[other.weap,6] - global.weaponid[other.weap,5]; global.weaponid[other.weap,5] += a; instance_destroy(other); } show_debug_message("//Tworzenie nowej broni:") oldweapinst = instance_create_layer(x,y,"Instances",o_WeaponOld); show_debug_message("//Tworzę instancję przez zmienną"); oldweapinst.ammo = oldammo; show_debug_message("//Dodaję do instancji starą amunicję"); oldweapinst.weap = oldweap; show_debug_message("//Nadaję broni ID"); oldweapinst.mag = 0; show_debug_message("//Ustalam ilość magazynków na 0"); show_debug_message("//Koniec zamiany broni") break; ///////////////////////// case 4: // break; ///////////////////////// case 5: break; ////////////////////////// } } Ale i to nie pomogło :/ Klops jest teraz taki, że Podniosłem broń nr1, wcisnąłem wymuszony debug msg, i starałem się podnieść drugą, nie udało się dalej wcisnąłem debug msg, i w tedy podniosłem broń, ale widzę po kodzie, że dwa razy wykonuje mi kod zmiany broni, coś jest nie tak i już nie wiem co :c GML Resizing fullscreen window.. Resizing swap chain.. //Sprawdzam czy nie jest pistoletem //Sprawdzam czy bronie główne są takie same //Bronie główne są różne //Sprawdzam czy posiadam główną broń w EQ //Nie posiadam broni głównej //Magazynków jest mniej, niż ilość maxymalna więc zabieram wszystko //Podniosłem broń do pustego slotu. // Podniosłem jedną, będę podnosił drugą //Sprawdzam czy nie jest pistoletem //Sprawdzam czy bronie główne są takie same //Bronie główne są różne //Sprawdzam czy posiadam główną broń w EQ //Posiadam broń główną //Zaczynam zamianę broni. //Zapisuję starą ilość ammo //Zapisuję stare id broni //Zamieniam broń na nową broń //Zamieniam ammo na nową wartość ammo //Sprawdzam Stan Amunicji //Magazynków jest mniej, niż ilość maxymalna więc zabieram wszystko //Tworzenie nowej broni: //Tworzę instancję przez zmienną //Dodaję do instancji starą amunicję //Nadaję broni ID //Ustalam ilość magazynków na 0 //Koniec zamiany broni //Sprawdzam czy nie jest pistoletem //Sprawdzam czy bronie główne są takie same //Bronie główne są różne //Sprawdzam czy posiadam główną broń w EQ //Posiadam broń główną //Zaczynam zamianę broni. //Zapisuję starą ilość ammo //Zapisuję stare id broni //Zamieniam broń na nową broń //Zamieniam ammo na nową wartość ammo //Sprawdzam Stan Amunicji //Magazynków jest mniej, niż ilość maxymalna więc zabieram wszystko //Tworzenie nowej broni: //Tworzę instancję przez zmienną //Dodaję do instancji starą amunicję //Nadaję broni ID //Ustalam ilość magazynków na 0 //Koniec zamiany broni // Podniosłem jedną, będę podnosił drugą //Sprawdzam czy nie jest pistoletem //Sprawdzam czy bronie główne są takie same //Bronie główne są różne //Sprawdzam czy posiadam główną broń w EQ //Posiadam broń główną //Zaczynam zamianę broni. //Zapisuję starą ilość ammo //Zapisuję stare id broni //Zamieniam broń na nową broń //Zamieniam ammo na nową wartość ammo //Sprawdzam Stan Amunicji //Magazynków jest mniej, niż ilość maxymalna więc zabieram wszystko //Tworzenie nowej broni: //Tworzę instancję przez zmienną //Dodaję do instancji starą amunicję //Nadaję broni ID //Ustalam ilość magazynków na 0 //Koniec zamiany broni Attempting to set gamepadcount to 0 --------------------------------------------------------------- minFPS, maxFPS, avgFPS -31, 1319, 420 --------------------------------------------------------------- --------------------------------------------------------------- minFPS, maxFPS, avgFPS -31, 1319, 420 --------------------------------------------------------------- C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.0.7.110/windows/Runner.exe DONE (0) Igor complete. elapsed time 00:00:14.9509962s for command "C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.0.7.110/bin/Igor.exe" -options="C:\Users\HieNa\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -- Windows Run started at 06/24/2017 11:08:41 SUCCESS: Run Program Complete
  11. Problem z kodem zmiany broni

    Zrobię sąsiadce laptopa, ogarnę ten temat i napiszę co i jak. Ale wygląda na to, że kod cały się wykonuje skoro działa. Tylko jest ten glitch, że muszę kliknąć dwa razy E by podnieść broń :/ Coś będę modził :D
  12. Mam problem z kodem zmiany broni. Po pierwszym kliknięciu "E" broń leżąca na ziemi zmienia x i y na x i y postaci, po drugim wciśnięciu "E" broń dopiero się zmienia... Jest to upierdliwe :/ Collision Code with o_WeaponParent: GML if keyboard_check_pressed(ord("E")){ if other.weap > 5{ if primweap = other.weap{ if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; other.mag = 0; } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; other.mag -= a; } } else { if primweap = 0{ primweap = other.weap; primammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; instance_destroy(other); } instance_destroy(other); } else { var oldammo, oldweap, oldweapinst; oldammo = primammo; oldweap = primweap; primweap = other.weap; primammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; instance_destroy(other); } oldweapinst = instance_create_layer(x,y,"Instances",o_WeaponOld); oldweapinst.ammo = oldammo; oldweapinst.weap = oldweap; oldweapinst.mag = 0; instance_destroy(other); } } } else { if secweap = other.weap{ if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; other.mag = 0; } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; other.mag -= a; } } else { if secweap = 0{ secweap = other.weap; secammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; instance_destroy(other); } instance_destroy(other); } else { var oldammo, oldweap, oldweapinst; oldammo = secammo; oldweap = secweap; secweap = other.weap; secammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; instance_destroy(other); } oldweapinst = instance_create_layer(x,y,"Instances",o_WeaponOld); oldweapinst.ammo = oldammo; oldweapinst.weap = oldweap; oldweapinst.mag = 0; instance_destroy(other); } } } } //} /* global.weaponid[16,0] = "Pumpo"; // name global.weaponid[16,1] = 20; // dmg global.weaponid[16,2] = 40; // AP global.weaponid[16,3] = 10; // Ammo global.weaponid[16,4] = 10; // Max Ammo global.weaponid[16,5] = 0; // Mag global.weaponid[16,6] = 5; // Max mag global.weaponid[16,7] = 0; // empty mag global.weaponid[16,8] = sou_Pumpo; // sound global.weaponid[16,9] = room_speed*4; // reload time global.weaponid[16,10] = room_speed*1; // shoting time global.weaponid[16,11] = 0; // mag ammo ///////////////////////////////*/ GML other.weap //jest to id broni jaką posiada objekt do losowania broni. primweap //zmienna broni głównej other.mag //zmienna ile jest magazynków przy broni. global.weaponid[other.weap,5] //posiadana ilość magazynków, global.weaponid[other.weap,6] //maxymalna ilość magazynków; other.ammo //posiadana amunicja przez obiekt other.weap > 5 //jeżeli nie jest to pistoletem, to przypisuje do slotu głównej broni oldammo //aktualnie posiadana amunicja do danej broni oldweap //id broni oldweapinst //nowa instancja broni primammo //amunicja do głównej broni</span></span> W postaci mam jeszcze zmienną, którą broń posiadam GML usedweap; // jest = 0(pistolety) lub 1(karabiny); to jest czy używam primweap czy secweap</span>
  13. Temat zbiorczy na drobnostki

    Na przyszłość będę pamiętał o komentarzach do kodu. Kod pisałem ja :), broń to zmienna, nie instancja, później będę rysował po prostu dany sprite, czy to przeładowania czy po prostu chodzenia z bronią. GML other.weap //jest to id broni jaką posiada objekt do losowania broni. primweap //zmienna broni głównej other.mag //zmienna ile jest magazynków przy broni. global.weaponid[other.weap,5] //posiadana ilość magazynków, global.weaponid[other.weap,6] //maxymalna ilość magazynków; other.ammo //posiadana amunicja przez obiekt other.weap > 5 //jeżeli nie jest to pistoletem, to przypisuje do slotu głównej broni oldammo //aktualnie posiadana amunicja do danej broni oldweap //id broni oldweapinst //nowa instancja broni primammo //amunicja do głównej broni</span> W postaci mam jeszcze zmienną, którą broń posiadam GML usedweap; // jest = 0(pistolety) lub 1(karabiny); to jest czy używam primweap czy secweap
  14. Temat zbiorczy na drobnostki

    Mam problem z kodem zmiany broni. Po pierwszym kliknięciu "E" broń leżąca na ziemi zmienia x i y na x i y postaci, po drugim wciśnięciu "E" broń dopiero się zmienia... Jest to upierdliwe :/ Collision Code with o_WeaponParent: GML if keyboard_check_pressed(ord("E")){ if other.weap > 5{ if primweap = other.weap{ if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; other.mag = 0; } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; other.mag -= a; } } else { if primweap = 0{ primweap = other.weap; primammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; instance_destroy(other); } instance_destroy(other); } else { var oldammo, oldweap, oldweapinst; oldammo = primammo; oldweap = primweap; primweap = other.weap; primammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; instance_destroy(other); } oldweapinst = instance_create_layer(x,y,"Instances",o_WeaponOld); oldweapinst.ammo = oldammo; oldweapinst.weap = oldweap; oldweapinst.mag = 0; instance_destroy(other); } } } else { if secweap = other.weap{ if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; other.mag = 0; } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; other.mag -= a; } } else { if secweap = 0{ secweap = other.weap; secammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; instance_destroy(other); } instance_destroy(other); } else { var oldammo, oldweap, oldweapinst; oldammo = secammo; oldweap = secweap; secweap = other.weap; secammo = other.ammo; if other.mag + global.weaponid[other.weap,5] <= global.weaponid[other.weap,6]{ global.weaponid[other.weap,5] += other.mag; instance_destroy(other); } else { var a = global.weaponid[other.weap,6] - other.mag; global.weaponid[other.weap,5] += a; instance_destroy(other); } oldweapinst = instance_create_layer(x,y,"Instances",o_WeaponOld); oldweapinst.ammo = oldammo; oldweapinst.weap = oldweap; oldweapinst.mag = 0; instance_destroy(other); } } } } //} /* global.weaponid[16,0] = "Pumpo"; // name global.weaponid[16,1] = 20; // dmg global.weaponid[16,2] = 40; // AP global.weaponid[16,3] = 10; // Ammo global.weaponid[16,4] = 10; // Max Ammo global.weaponid[16,5] = 0; // Mag global.weaponid[16,6] = 5; // Max mag global.weaponid[16,7] = 0; // empty mag global.weaponid[16,8] = sou_Pumpo; // sound global.weaponid[16,9] = room_speed*4; // reload time global.weaponid[16,10] = room_speed*1; // shoting time global.weaponid[16,11] = 0; // mag ammo ///////////////////////////////*/
  15. Temat zbiorczy na drobnostki

    Mam drobnostkę, dawno programowałem w GMS i do tego kupiłem sobie GMS2 (Studio dawał mi popalić, bo ciągle miał jakieś problemy z winem 10 u mnie :/ ) i coś robię źle ale tego nie widzę... Hmm, nie wiem, wszystko wygląda ok, ale chyba coś musiałem zje*ać :D EDIT: Dobra ja durny jestem jak pień... Nie wiem na cholerę mi potrzebne było with (o_WeaponParent)... Ehh ja to zawsze :D Błąd: GML //Pumpo _______________________________________ ################################################################################ ############ FATAL ERROR in action number 1 of Step Evento_WeaponChooser for object o_Player: Variable <unknown_object>.<unknown variable>(100023, -2147483648) not set before reading it. at gml_Object_o_Player_Collision_5aae0650_fffc_495c_88b1_5aa3451b403a (line 7) - if other.weap > 5 { ################################################################################ ############ Collision Event o_WeaponParent. GML /// @description Insert description here // You can write your code in this editor var oldweap; with (o_WeaponParent){ if other.weap > 5 { if primweap = 0{ primweap = other.weap; primammo = other.ammo; primmag = other.mag; instance_destroy(other); } else { oldweap = instance_create_layer(x,y,"Instances",o_WeaponOld); oldweap.weap = primweap; oldweap.ammo = primammo; oldweap.mag = 0; } } } /* //Wypisałem sobie na zaś trochę tego, już mam wypisane bronie jakie chciałem. global.weaponid[16,0] = "Pumpo"; // name global.weaponid[16,1] = 20; // dmg global.weaponid[16,2] = 40; // AP global.weaponid[16,3] = 10; // Ammo global.weaponid[16,4] = 10; // Max Ammo global.weaponid[16,5] = 0; // Mag global.weaponid[16,6] = 5; // Max mag global.weaponid[16,7] = 0; // empty mag global.weaponid[16,8] = sou_Pumpo; // sound global.weaponid[16,9] = room_speed*4; // reload time global.weaponid[16,10] = room_speed*1; // shoting time global.weaponid[16,11] = 0; // mag ammo ////////////////////////////////</span>
×