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

Co tak właściwie robi param_convert()


Najlepsza odpowiedź DarkGL, 12.09.2018 10:12

Konwertuje parametr natywu aby działał jako zmienne przekazywana przez referencje , czyli wartość parametru jest konwertowana na adres do którego się odnosi.

 

param_convert i natywy w stylu 1 nie powinny już być używane zamiast tego powinny być używane w stylu 0

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
7 odpowiedzi w tym temacie

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 381
Offline

Napisano 12.09.2018 09:43

Witam,

tak jak w temacie. Co robi param_convert()

 

W źródełkach znalazłem takie cudeńka:

Spoiler

  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 582
Godlike

  • Postów:12 050
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 12.09.2018 10:12   Najlepsza odpowiedź

Konwertuje parametr natywu aby działał jako zmienne przekazywana przez referencje , czyli wartość parametru jest konwertowana na adres do którego się odnosi.

 

param_convert i natywy w stylu 1 nie powinny już być używane zamiast tego powinny być używane w stylu 0


  • +
  • -
  • 3

#3 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 12.09.2018 10:56

Konwertuje parametr natywu aby działał jako zmienne przekazywana przez referencje , czyli wartość parametru jest konwertowana na adres do którego się odnosi.

 

param_convert i natywy w stylu 1 nie powinny już być używane zamiast tego powinny być używane w stylu 0

 

A to dlaczego? Używam style 1 i param_convert i nie było większych problemów (z racji na mój błąd oczywiście).


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#4 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 12.09.2018 12:04

Stosowanie natywów dynamicznych z parametrem 'style' równym 1 uniemożliwia kontrolę liczby przekazywanych do natywu (przy wywołaniu) parametrów, co w przypadku bardziej złożonych funkcji przekłada się na zwiększone ryzyko wystąpienia komplikacji w trakcie wykonywania kodu. Ponadto, natywy rejestrowane bez w/w parametru pozwalają na identyfikację pluginu, który je wywołał oraz nie wymagają w/w, dodatkowej konwersji parametrów (tablic) do postaci referencyjnej.

Często, dla prostych kontrukcji natywów, rejestrowanie z parametrem 'style' równym 1 wydaje się być właściwszym rozwiązaniem (rozwiązanie mniej skomplikowane i szybsze).


Użytkownik _McHappy edytował ten post 12.09.2018 19:08

  • +
  • -
  • 2

#5 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 582
Godlike

  • Postów:12 050
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 12.09.2018 12:11

This function has been deprecated, do NOT use it

Reason: Style 1 natives are deprecated and should be converted to style 0. This should not be used.
Skoro są deprecated to i można spodziewać się ich usunięcia w kolejnych wersjach amxx
  • +
  • -
  • 2

#6 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 381
Offline

Napisano 12.09.2018 13:25

Dzięki Panowie ;)

W sumie tak teraz patrze to wystarczyło zajrzeć do .inc


  • +
  • -
  • 0

#7 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 12.09.2018 15:16

Stosowanie natywów dynamicznych z parametrem 'style' równym 1 uniemożliwia kontrolę liczby przekazywanych do natywu (przy wywołaniu) parametrów, co w przypadku bardziej złożonych funkcji przekłada się na zwiększone ryzyko wystąpienia komplikacji w trakcie wykonywania kodu. Ponadto, natywy rejestrowane bez w/w parametru, pozwalają na identyfikację pluginu, który je wywołał oraz nie wymagają w/w, dodatkowej konwersji parametrów (tablic) do postaci referencyjnej.

Często, dla prostych kontrukcji natywów, rejestrowanie z parametrem 'style' równym 1 wydaje się być właściwszym rozwiązaniem (rozwiązanie mniej skomplikowane i szybsze).

 

To ma sens dla np. silników modów i większych pluginów, które są udostępniane publicznie. Tak jak mówisz - style 1 wydaje się być rozwiązaniem lepszym, bo jest mniej skomplikowane, a w pojedynczych, małych pluginach jak np. Exp, monety itp. gdzie autor ma na celu stworzenie konstrukcji na wyłącznie jeden serwer i jest świadomy (wydaje się, że już odruchowo) w jaki sposób działa natyw i jak należy go użyć, to niechętnie będzie to zmieniał. Fair point z identyfikatorem pluginu.

 

 

This function has been deprecated, do NOT use it

Reason: Style 1 natives are deprecated and should be converted to style 0. This should not be used.
Skoro są deprecated to i można spodziewać się ich usunięcia w kolejnych wersjach amxx

 

 

"Usuwamy styl natywu 1. bo działa źle/nie podoba nam się jak działa" - tak to widzę  :crazy:


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#8 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 582
Godlike

  • Postów:12 050
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 12.09.2018 18:04

"Usuwamy styl natywu 1. bo działa źle/nie podoba nam się jak działa" - tak to widzę  :crazy:
Normalne jest to że niektóre funkcjonalność zostają zastąpione lub usunięte jeśli nie są już potrzebne. Albo trzeba zmusić community do użycia lepszych rozwiązań :P
  • +
  • -
  • 0




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

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