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

Dwa razy plugin_precache



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

#1 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 03.12.2014 20:57

Czy jest możliwość zdublowania plugin_precache()?

Oczywiście pytam, bo wprost tego zrobić nie można, kompilator się pluje.

chodzi mi o to, że robię np. plik nagłówkowy z funkcjami, ale niektóre wymagają precachowania, chcę więc dać to w nagłówku, ale w ten sposób zablokuje możliwość użycia tej funkcji drugi raz w pluginie. Z drugiej strony nie chcę obciążać użytkownika tej funkcji obowiązkiem precachowania ręcznie.

Oczywiście wiem, że mogę zrobić osobny plugin z natywami + inc do niego, ale jeśli jest możliwość to chcę się ograniczyć do samego inc.


  • +
  • -
  • 0

#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.12.2014 22:15

Zrobienie funkcji, którą trzeba będzie dodawać do tego normalnego precache?
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 wiwi249

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:440
  • GG:
  • Imię:Wiktor
  • Lokalizacja:Tarnobrzeg
Offline

Napisano 03.12.2014 22:46

Zrób sobie funkcje w pliku nagłówkowym:

stock PobierzPliki() {
     precache_generic("....");
}

I teraz w pluginie, w którym to używasz

public plugin_precache() {
     precache_model("jakiśtammodel.mdl");
     PobierzPliki()
}

  • +
  • -
  • 0

Wykonuję strony internetowe, zlecenia AMXX i HLDS - w tym pisanie pluginów, ogarnianie serwerów, edycja i tworzenie modeli.

Potrzebujesz czegoś? Pisz!

 

"śpieszmy się pisać posty, tak szybko banują..." ~ sebul


#4 grankee

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 03.12.2014 22:50

Chodzi dokładnie o to, żebym korzystając z .inc mógl po prostu użyć plugin_precache() i nic tam nie dodawać, nie troszczyć się żeby w tej funkcji coś było.


  • +
  • -
  • 0

#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.12.2014 23:01

Prościej, niż zostało tutaj napisane, raczej tego nie zrobisz.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 ^Szeregowy^

    Wszechwidzący

  • Zbanowany

Reputacja: 67
Pomocny

  • Postów:238
  • GG:
  • Imię:Damian
  • Lokalizacja:Płock
Offline

Napisano 03.12.2014 23:06

inc nie umniem ale moze tak biggrin.png ?
 
 
new Pliki[][] = {
        "model",
        "model",
        "model1",
        "model2",
        "model3",
        "model4"
 
proszę jesli zrobilem zle nie minusujcie mnie

Użytkownik GwynBleidD edytował ten post 04.12.2014 10:41

ZNAJOMOŚĆ AMXX [%]

JAILBREAK[90%]2cp5bgj.jpg

COD MOD[70%]f5krm.jpg

PAINTBALL[40%]15f3vhc.jpg

ZOMBIE MOD[10%]1zp32m9.jpg

POZOSTAŁE[5%]34fldsg.jpg


#7 ^Szeregowy^

    Wszechwidzący

  • Zbanowany

Reputacja: 67
Pomocny

  • Postów:238
  • GG:
  • Imię:Damian
  • Lokalizacja:Płock
Offline

Napisano 03.12.2014 23:12

Pomyslalem Jeszcze Nad Takim Rozwiazaniem  biggrin.png ?
 
 
precache_files(szFilename[],type) {
new szText[256], szKey[64], szValue[64]
new a, pos = 0
new ent

if (file_exists(szFilename)) {
//server_cmd("echo [AMX] Start precaching from file '%s'",szFilename)
while (read_file(szFilename,pos++,szText,sizeof(szText),a)) {
if ( szText[0] == ';' )
continue
if ( szText[0] == '/' && szText[1] == '/' )
continue
if (equal(szText,""))
continue
if (parse(szText, szKey, sizeof(szKey), szValue, sizeof(szValue)) >= 1) {
if (type == 0) {
if (equali(szKey,"precache_sound")) {
precache_sound(szValue)
server_cmd("echo [AMX] Sound '%s' precached",szValue)
} else if (equali(szKey,"precache_model")) {
precache_model(szValue)
server_cmd("echo [AMX] Model '%s' precached",szValue)
} else if (equali(szKey,"precache_generic")) {
precache_generic(szValue)
server_cmd("echo [AMX] Generic '%s' precached",szValue)
} else if (equali(szKey,"load_file")) {
precache_files(szValue,type)
}
} else {
if (equali(szKey,"precache_class")) {
ent = CreateEntity(szValue)
if (ent) {
DispatchSpawn(ent)
RemoveEntity(ent)
server_cmd("echo [AMX] Class '%s' precached",szValue)
} else {
server_cmd("echo [AMX] Error in precaching class %s",szValue)
}
} else if (equali(szKey,"load_file")) {
precache_files(szValue,type)
}
}
}
}
}
}

public plugin_precache() {
new map[64]
get_mapname(map,sizeof(map))

new t1[128],t2[128]
#if defined _amxmodx_included
format(t1,sizeof(t1),"addons/amxx/precache/default.pre")
format(t2,sizeof(t2),"addons/amxx/precache/%s.pre",map)
#else
format(t1,sizeof(t1),"addons/amx/precache/default.pre")
format(t2,sizeof(t2),"addons/amx/precache/%s.pre",map)
#endif

precache_files(t1,0)
precache_files(t2,0)

return PLUGIN_CONTINUE
}

public plugin_init() {
register_plugin(Title,Version,Author)

new map[64]
get_mapname(map,sizeof(map))

new t1[128],t2[128]
#if defined _amxmodx_included
format(t1,sizeof(t1),"addons/amxx/precache/default.pre")
format(t2,sizeof(t2),"addons/amxx/precache/%s.pre",map)
#else
format(t1,sizeof(t1),"addons/amx/precache/default.pre")
format(t2,sizeof(t2),"addons/amx/precache/%s.pre",map)
#endif

precache_files(t1,1)
precache_files(t2,1)

return PLUGIN_CONTINUE
}

Użytkownik GwynBleidD edytował ten post 04.12.2014 10:43

ZNAJOMOŚĆ AMXX [%]

JAILBREAK[90%]2cp5bgj.jpg

COD MOD[70%]f5krm.jpg

PAINTBALL[40%]15f3vhc.jpg

ZOMBIE MOD[10%]1zp32m9.jpg

POZOSTAŁE[5%]34fldsg.jpg


#8 ^Szeregowy^

    Wszechwidzący

  • Zbanowany

Reputacja: 67
Pomocny

  • Postów:238
  • GG:
  • Imię:Damian
  • Lokalizacja:Płock
Offline

Napisano 03.12.2014 23:26

Wpadłem na jeszcze 1 pomysł moim zdaniem najlepszy smile.png pobieranie z pliku.ini 
 

 
/*
* AMXMODX script
* simple precaching script
* depends on amxmodx/configs/precache.ini
*/
 
#include <amxmodx>
#include <engine>
#include <amxmisc>
 
 
public plugin_init()
{
    register_plugin("precache", "1.0", "Nie Znajomy :)")
}
 
public plugin_precache()
{
new conffile[200]
new configdir[200]
 
get_configsdir(configdir,199)
format(conffile,199,"%s/precache.ini",configdir)
if(!file_exists(conffile))
{
log_amx("amxmodx/configs/precache.ini is missing!")
return 0
}
 
new lines = file_size(conffile,1)
new file[1024], len
for(new i=0;i<=lines;i++)
{
read_file(conffile,i,file,1023,len)
if(equal(file,"")) continue;
if(!equal(file,";",1)) precache_generic(file);
} 
return PLUGIN_HANDLED
}
 
 
 
Plik ten uzupełniamy nazwami(wraz z folderami) potrzebnych plików, po jednym w linijce.

sound/misc/sound.wav
sound/misc/sound.wav
models/model/model.mdl

Jeżeli chcemy wyłączyć pobieranie któregoś pliku to stawiamy średnik ";" jako pierwszy znak w linijce:

sound/misc/sound.wav
;sound/misc/sound.wav <= ten dźwięk jest wyłączony
models/model/model.mdl
 
itp biggrin.png

Użytkownik GwynBleidD edytował ten post 04.12.2014 10:49

ZNAJOMOŚĆ AMXX [%]

JAILBREAK[90%]2cp5bgj.jpg

COD MOD[70%]f5krm.jpg

PAINTBALL[40%]15f3vhc.jpg

ZOMBIE MOD[10%]1zp32m9.jpg

POZOSTAŁE[5%]34fldsg.jpg


#9 grankee

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 04.12.2014 02:10

Dzięki za chęci, ale kompletnie nie czaisz o co mi chodzi :)


  • +
  • -
  • 0

#10 ^Szeregowy^

    Wszechwidzący

  • Zbanowany

Reputacja: 67
Pomocny

  • Postów:238
  • GG:
  • Imię:Damian
  • Lokalizacja:Płock
Offline

Napisano 04.12.2014 03:38

chcesz do pliku.inc dodac funkcje na podwojne pobieranie z plugin_precache :D ?


ZNAJOMOŚĆ AMXX [%]

JAILBREAK[90%]2cp5bgj.jpg

COD MOD[70%]f5krm.jpg

PAINTBALL[40%]15f3vhc.jpg

ZOMBIE MOD[10%]1zp32m9.jpg

POZOSTAŁE[5%]34fldsg.jpg


#11 grankee

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 04.12.2014 04:30

Nie, chcę w pliku .inc precachować pliki

public plugin_precache()
{
//precache cośtam
}

ale jednoczeście po zaincludowaniu tegoż inc chcę mieć możliwość użycia funkcji plugin_precache() w kodzie. Wiadomo, że dwa razy nie można (w inc a pozniej w kodzie) bo kompilator nie lubi deja vu, ale może da się jakoś to obejść. Aha i w kodzie może użyję plugin_precache a może nie, a jak użyję to nie chcę musiec dodawac jakiejs funkcji.


  • +
  • -
  • 0

#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

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

Napisano 04.12.2014 06:50   Najlepsza odpowiedź

Coś w stylu http://darkgl.amxx.p...ania-configami/ ?
  • +
  • -
  • 3

#13 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 04.12.2014 10:51

Rozwinę to, co darkgl napisał: w include tworzysz normalnie plugin_precache, a na jego końcu (lub początku, jeśli wolisz) wykonujesz dowolną funkcję poprzez callfunc (aby nie wysypywało błędów, gdy funkcja nie istnieje). Poniżej plugin_precache w include aliasujesz plugin_precache na swoją funkcję, dzięki czemu w kodzie w pluginie znów możesz użyć plugin_precache. Sposób dość sprytny :)


  • +
  • -
  • 3

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#14 grankee

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 04.12.2014 17:32

Oo Darku nie widziałem, że takie rzeczy się da :> Dzięki wielkie, dokładnie o to chodziło. 

@Gwyn- zrozumiałem po przeczytaniu jego inc, ale dzięki wielkie za chęci :)


  • +
  • -
  • 0




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

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