Jump to content


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

Posted Image Posted Image

Guest Message by DevFuse
 

Fakemeta czy Hamsandwich ?


  • This topic is locked This topic is locked
15 replies to this topic

#1 AztekHQS

    Banned

  • Zbanowany

  • Reputacja: 98
    Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Posted 12.12.2012 14:01

Zastanawiam się sktóry stock jest lepszy do dawania broni.
Nie chcę używać fun'a :P

stock ham_give_weapon(id, weapon[]) {
if(!equal(weapon, "weapon_", 7) ) return 0

new wEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, weapon))
if(!pev_valid(wEnt)) return 0

set_pev(wEnt, pev_spawnflags, SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, wEnt)

if(!ExecuteHamB(Ham_AddPlayerItem, id, wEnt)) {
if(pev_valid(wEnt)) set_pev(wEnt, pev_flags, pev(wEnt, pev_flags) | FL_KILLME)
return 0
}
ExecuteHamB(Ham_Item_AttachToPlayer, wEnt, id)
return 1
}


czy

stock fm_give_item(index, const item[]) {
if(!equal(item, "weapon_", 7)) return 0

new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
if(!pev_valid(ent)) return 0

new Float:origin[3]
pev(index, pev_origin, origin)
set_pev(ent, pev_origin, origin)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)

new save = pev(ent, pev_solid)
dllfunc(DLLFunc_Touch, ent, index)
if(pev(ent, pev_solid) != save) return ent

engfunc(EngFunc_RemoveEntity, ent)

return -1
}

Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#2 Krytykiewicz

    Zaawansowany

  • Użytkownik

  • Reputacja: 18
    Początkujący

  • Postów:114
  • Lokalizacja:Stąd
Offline

Posted 12.12.2012 14:07

Dlaczego nie chcesz użyć fun-a? Będzie wydajniejszy w tym wypadku ;> Chociaż.. Zależy też co chcesz dokładniej zrobić z tym dawaniem broni.

Edited by Krytykiewicz, 12.12.2012 14:08.

  • +
  • -
  • 0

#3 AztekHQS

    Banned

  • Autor tematu
  • Zbanowany

  • Reputacja: 98
    Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Posted 12.12.2012 14:59

Wiem, że fun jest szybszy, ale jakoś 'nie lubię tego modułu :P'
dlatego szukam dobrego zamiennika give_item
Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#4 sebul

    Godlike

  • Przyjaciel

  • Reputacja: 2,035
    Godlike

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

Posted 12.12.2012 15:03

Wiem, że fun jest szybszy, ale jakoś 'nie lubię tego modułu :P'
dlatego szukam dobrego zamiennika give_item

To zacznij go "lubić".

W tym przypadku co tutaj podałeś, to chyba fakemeta, choć to wszystko zależy od tego, gdzie chcesz używać tych funkcji.
  • +
  • -
  • 1

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


#5 Cypis'

    Master

  • Przyjaciel

  • Reputacja: 1,162
    Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Posted 12.12.2012 15:50

Oba stocki dzialają, wiec obojętnie którego użyjesz
Pierwszy stock to fakemeta+ham
Drugi stock to fakemeta
Ew. możesz użyć orpheu lub rage :)
  • +
  • -
  • 0

#6 Krytykiewicz

    Zaawansowany

  • Użytkownik

  • Reputacja: 18
    Początkujący

  • Postów:114
  • Lokalizacja:Stąd
Offline

Posted 12.12.2012 16:31

Oba stocki dzialają, wiec obojętnie którego użyjesz
Pierwszy stock to fakemeta+ham
Drugi stock to fakemeta
Ew. możesz użyć orpheu lub rage :)


A orpheu będzie wydajniejsze? :>
  • +
  • -
  • 0

#7 AztekHQS

    Banned

  • Autor tematu
  • Zbanowany

  • Reputacja: 98
    Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Posted 12.12.2012 17:41

możesz użyć orpheu lub rage

Podasz sposoby ?
Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#8 Gość_21977_*

  • Gość

  • Reputacja: 0

Offline

Posted 15.12.2012 02:20

Zdecydowanie nie używaj fakemety, zwłaszcza fm_give_item
Jeśli tylko możesz, to staraj się używać modułu fun, ew. hamsandwich

stock fm_give_item nie zawsze działa poprawnie i wykonuje parę zbędnych czynności, ale to
odwołuję do kodu źródłowego, ew. do dyskusji na ten temat na AM, nie będę powielał tej kwestii.

#9 AztekHQS

    Banned

  • Autor tematu
  • Zbanowany

  • Reputacja: 98
    Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Posted 15.12.2012 02:36

benio101, czyli po Twojej wypowiedzi mogę stwierdzić ze najlepszym rozwiązaniem jest używanie 'funowskiego' give_item ?
"ew. hamsadwich" to co masz dokładnie na myśli ?
Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#10 Gość_21977_*

  • Gość

  • Reputacja: 0

Offline

Posted 15.12.2012 03:05

[TUT] Modules and efficient scripting - Fakty, statystyki i porady na ten temat
Engine -> Fakemeta and HamSandwich -> Fakemeta, Wytłumaczenie, dlaczego mniejsza liczba modułów NIE JEST lepsza, niż używanie funkcji, czyli dlaczego nie warto rezygnować z modułu kosztem dłuższego działania, zwłaszcza fakemety.

I masa innych tematów, jednak odsyłam do samodzielnego poszukiwania.
Podsumowując, tak, zdecydowanie polecam funowskiego give_item, choć polecam przejrzeć dokładnie tematy (m.in. te zalinkowane z AM) na ten temat, sprawdzić i samemu się przekonać.

#11 sebul

    Godlike

  • Przyjaciel

  • Reputacja: 2,035
    Godlike

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

Posted 15.12.2012 16:46

Zdecydowanie nie używaj fakemety

Nie wiem czy tak zdecydowanie, fakemety używać można, ale tak jak napisałeś (zresztą ja po części też), że do dawania broni lepiej używać funa. Ogólnie sam mało korzystam z fakemety, ale jeśli coś można zrobić tylko w tym module, to przeważnie już nie używam innych modułów, jeśli jest taka możliwość, no chyba że mowa tutaj o modach typu diablo, gdzie jest sporo linijek kodu.
  • +
  • -
  • 0

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


#12 AztekHQS

    Banned

  • Autor tematu
  • Zbanowany

  • Reputacja: 98
    Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Posted 15.12.2012 20:24

Piszecie tak o fakemeta, ale nie dowiedziałem się nic o sposobie hamsadwich :)
Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#13 Gość_21977_*

  • Gość

  • Reputacja: 0

Offline

Posted 16.12.2012 04:26

Jeśli tylko można zastąpić fakemetę innymi modułami, najczęściej engine, czasem funem, to warto to zrobić, bo są po prostu szybsze.
Dla niektórych operacji fakemeta nie ma zamienników, bądź ich zamienniki są mniej wydajne, wtedy ozcywiście należy korzystać z fakemety.
Jednak funkcję fm_give_itemzdecydowanie polecam zastąpić funowskim odpowiednikiem nawet, gdyby miała dojść kolejna biblioteka, gdyż jest po prostu szybsze.

btw. O metodzie kanapki z szynką z fałszywym celem wiem, że jest szybsza od fm_give_item, jednak nie zagłębiałem się w nią za bardzo, więc nie chcę Cię wprowadzić w błąd.

#14 Cypis'

    Master

  • Przyjaciel

  • Reputacja: 1,162
    Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Posted 16.12.2012 16:45

Dobra napisałem pod orpheu, pod rage nie napisze bo nie umiem

plugin

#include <amxmodx>
#include <amxmisc>
#include <orpheu>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new OrpheuFunction:playerGiveItem;

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

playerGiveItem = OrpheuGetFunction("GiveNamedItem","CBasePlayer");
register_clcmd("say /test", "funkcja");
}

public funkcja(id)
{
OrpheuCall(playerGiveItem, id, "weapon_m4a1");
}


Sygne wrzucamy do orpheu/functions/CBasePlayer pod nazwa GiveNamedItem
Jeżeli nie ma folderu CBasePlayer to go tworzymy
sygna:

{
"name" : "GiveNamedItem",
"class" : "CBasePlayer",
"library" : "mod",
"arguments" :
[
{
"type" : "int",
"type" : "char *"
}
],
"identifiers":
[
{
"os" : "linux",
"mod" : "cstrike",
"value" : "GiveNamedItem__11CBasePlayerPCc"
}
]
}

Attached Files


  • +
  • -
  • 1

#15 Krytykiewicz

    Zaawansowany

  • Użytkownik

  • Reputacja: 18
    Początkujący

  • Postów:114
  • Lokalizacja:Stąd
Offline

Posted 16.12.2012 16:58

Orpheu jest szybsze od funa ?
  • +
  • -
  • 0

#16 Fili:P

    Godlike

  • Power User

  • Reputacja: 754
    Guru

  • Postów:1,679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Posted 25.12.2012 09:30

Orpheu jest szybsze od funa ?

W tym przypadku, wątpie.
  • +
  • -
  • 0




  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Coinsy CSGOPolygon Za SMS, PSC , Przelew - CoinSell.pro
Skiny do CS:GO za SMS, PSC, Przelew - CSGOPaka.com
Automatyczny Bot Levelowania Steam - LVLUPSteam.com
CSGO Gambling Sites and Free Betting Codes - DreamCodes.gg

Sign In