Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] entity_set_model - crashuje serwer


  • Zamknięty Temat jest zamknięty
7 odpowiedzi w tym temacie

#1 psilocybe

    Toasty!

  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 11.01.2015 07:42

Witam, kolejny zapewne śmieszny problem, ale jednak nie mogę znaleźć rozwiązania.

 

Podczas dropu paki chcę podmienić model za pomocą engine, funkcja wywołana jest gdy gracz posiadający paczkę ginie.

public dropMedkit()
{
    new ent = find_ent_by_model(-1, "weaponbox", "models/w_backpack.mdl");
    entity_set_model(ent, "models/kniferace/w_medkit.mdl");
}

No i jest crash serwera, error_log pusty ale konsola wywala w tym momencie FATAL ERROR:

Hit a worldspawn with no model (models/kniferace/w_medkit.mdl)

Jak to rozwiązać by działało?


  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#2 IntelCom

    Wszechwiedzący

  • Power User

Reputacja: 100
Zaawansowany

  • Postów:500
  • GG:
  • Imię:Dawid
  • Lokalizacja:Opole
Offline

Napisano 11.01.2015 09:53

A model w_medkit . m wrzuciłeś tam gdzie trzeba?
  • +
  • -
  • 0

#3 psilocybe

    Toasty!

  • Autor tematu
  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 11.01.2015 10:03

Wiem że chciałeś pomóc ale nie jestem aż tak głupi by tego nie sprawdzić (nawet 2 razy) :D

 

Oczywiście że mam wszystko jak trzeba, co więcej, gdy stworzę sobie za pomocą create_entity enta i ustawię model funkcją entity_set_string to wszystko jest ok.

 

Właściwie to tym sposobem naprawiłem bug ale nadal jestem ciekawy dlaczego 1 sposób nie działa i crashuje?


  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#4 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 11.01.2015 13:29


funkcja wywołana jest gdy gracz posiadający paczkę ginie

A co jeśli sam wyrzuci?

public dropMedkit()
{
    new ent = find_ent_by_model(-1, "weaponbox", "models/w_backpack.mdl");
if(ent>32)
{
client_print(0,print_chat,"ent nie znaleziony")
}
else
{
    entity_set_model(ent, "models/kniferace/w_medkit.mdl");
}
}

sory za brak tabulatorow ale jestem na urlopie i nie mam swojego kompa i edytora

Zobacz teraz co się dzieje, czy crashuje czy pojawia się na czacie "ent nie znaleziony"


Użytkownik grankee edytował ten post 11.01.2015 13:29

  • +
  • -
  • 0

#5 psilocybe

    Toasty!

  • Autor tematu
  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 11.01.2015 15:26

grankee już to sprawdzałem w podobny sposób, zamiast funkcji podmiany modelu dałem 

client_print(0,print_chat,"id paki to: %d", ent)

Co dziwne, w większości przypadków id=0 ale czasem było np. 44 :D

 

entity_set_model crashuje za każdym razem na modelu w_*.mdl, jeżeli użyję funkcji entity_set_string i podmieniam string 'model' to już się nie crashuje ale zero logów i nie podmienia modelu :D A 15 linijek niżej podmieniam tą funkcją v_model i działa :facepalm:

 

 

Sprawę załatwiłem tak że przy wyrzuceniu paki (apteczki) lub przy śmierci kogoś kto ją posiada, usuwa prawdziwą pakę i dropi nową za pomocą create_entity itp. itd. no i tutaj entity_set_model ma swoje zastosowanie - ponieważ działa :D


  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#6 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 12.01.2015 02:48

W podobny, ale nie w ten sam. Moim sposobem nie ma możliwości teoretycznie ujrzeć większego numeru niż 32, praktycznie innego niż 0. Sprawdź tak jak Ci podałem. Przypuszczam poślizg czasowy pomiędzy śmiercią a pojawieniem się entu paki. Gracz ginie, teraz szukasz paki, a dopiero teraz paka się pojawia. Spróbuj tak jak napisałem, jeśli będzie się ciągle pojawiał napis to dodaj taska po śmierci ok 0.1 sek max 0.3 i w nim spróbuj. Da to silnikowi czas na pojawienie się paki.


  • +
  • -
  • 0

#7 psilocybe

    Toasty!

  • Autor tematu
  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 12.01.2015 21:44

@grankee, później też o tym pomyślałem i w sumie czasem szybciej funkcja się wykonywała zanim się model paki pojawiał - dałem w tasku i nic to nie dało, model odnajduje poprawnie bo moge pobrać sobie originy paki itp. Np. mój plugin Houndeye Bomb - próbowałem nawet tam - nie crashowało ale nie działa.

 

Dodam że funckją entity_set_string model v_ i p_ zamieniam bez problemów, tylko z w_ jest problem :P

 

Rozwiązałem to tak jak w poprzednim poście pisałem.


  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#8 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 12.01.2015 21:51

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych