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] engfunc - problem z ładowaniem modeli z listy wczytanej z pliku

file precache model dynamic array engfunc

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

#1 Sooldierr

    Zaawansowany

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:94
  • Lokalizacja:Turek
Offline

Napisano 29.03.2020 10:13

Przerabiam plugin, który ładuje modele z listy tworzonej w kodzie, na taki, który będzie wczytywać je z pliku tekstowego.

Ładowanie z pliku wygląda ok, ale w momencie, gdy przechodzi do engfunc, aby je zaczytać, to wywala error:

ERROR : Mod_NumForName: models/present/jajkokinder.mdl

Lecz, gdy tą samą listę modeli po prostu na sztywno zdefiniuję w kodzie, to wtedy działa. Nie ma żadnych literówek, wygląda, jakby nie wiem, złe formatowanie? znak końca wiersza windowsowy CR LF, kodowanie UTF-8.

 

Tutaj kod ładowania z ścieżek do modeli z pliku, a następnie w pętli po dynamicznej tablicy ładuję modele:

public plugin_precache()
{
    static sConfigDir[64], sFilePath[64]
    get_configsdir(sConfigDir, sizeof sConfigDir - 1)    
    formatex(sFilePath, sizeof sFilePath - 1, "%s/presents_models.cfg", sConfigDir)
    
    new buff[40];
    new FILE = fopen(sFilePath, "rt");

    while( !feof(FILE) )
    {
        fgets(FILE, buff, sizeof buff - 1);
        if( equali(buff, "") || buff[0] == ';')
            continue;
        model_present_num++;
    }
    fseek(FILE, 0, SEEK_SET);
    model_present = ArrayCreate(sizeof buff, model_present_num);
    
    for (new i = 0; i < model_present_num; i++)
    {
        fgets(FILE, buff, sizeof buff - 1);
        if( equali(buff, "") || buff[0] == ';')
            continue;

        ArrayPushString(model_present, buff)
    }
    fclose(FILE);
    
    for(new i = 0; i < model_present_num; i++)
    {
        ArrayGetString(model_present, i, buff, sizeof buff - 1)
        engfunc(EngFunc_PrecacheModel,buff)
    }
}

W załączniku plik z listą modeli. To problem z kodowaniem tekstu jakiś, czy może źle tablicy używam?
 

Załączone pliki


Użytkownik Sooldierr edytował ten post 29.03.2020 10:25

  • +
  • -
  • 0

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 29.03.2020 12:00

jesli podejrzewasz biale znaki uzyj trim

 

druga sprawa - skoro uzywasz tablicy dynamicznej to po co najpierw wczytujesz plik i liczysz jego linie?

Po to masz dynamic array zeby tego nie robic, daj mu jakis rozmiar poczatkowy typu 50 czy cos i pchaj w to dane po prostu.

To ile danych masz aktualnie dostaniesz za pomoca ArraySize

sizeof buff - 1

->

charsmax(buf)

wyjdzie na to samo ;)

 

 

a czy sprawdzales sobie jakims log_amx, czy na pewno dobrze Ci wczytuje z pliku linijki?


  • +
  • -
  • 0

#3 Sooldierr

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 3
Nowy

  • Postów:94
  • Lokalizacja:Turek
Offline

Napisano 30.03.2020 19:04

Dzięki, funkcja trim załatwiła sprawę, enter psuł sprawę.

Odnośnie charsmax w sumie nie patrzyłem pod tym kątem, w całym pluginie było sizeof .. -1 i nie skupiałem się na tym.

Z tablicą też poprawiłem.


  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 983
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 10.04.2020 17:24

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





Również z jednym lub większą ilością słów kluczowych: file, precache, model, dynamic array, engfunc

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

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