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

Czytanie skinow ze cvarow


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

#1 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 20.05.2017 17:17

Siemka. Robię do mojego serwera plugin z możliwością wybrania skina. Pomyślałem żeby zrobić cvary żeby nie trzeba było ciągle zmieniać kodu w .sma. Zrobiłem cvary w precache model i potem w kodzie gdzie podaje się lokalizacje skina ktorego chcemy wybrac po wcisnieciu odpowiedniej cyfry dodałem odczytanie informacji z cvara lecz po wybraniu modelu w grze on znika i nie mamy tak jak by wogóle broni w rece. Poniżej macie część kodu.

public plugin_init () {

register_plugin(PLUGIN, VERSION, AUTHOR)

    lokalizacja_skin_knife = register_cvar("lokalizacja_skin_knife", "models/polskiskillCSGO/knife/")
    knife_skin_name1 = register_cvar("knife_skin_name1", "v_bayonet_slaughter")
public plugin_precache() {
        
    new Mdl[128];
    
    formatex(Mdl, charsmax(Mdl), "%s%s.mdl", get_pcvar_num(lokalizacja_skin_knife), get_pcvar_num(knife_skin_name1));
    precache_model(Mdl);
public SetKnife(id , Knife) {

    knife_model[id] = Knife

    

    new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)

    if ( Weapon != CSW_KNIFE )

        return PLUGIN_HANDLED

    

    new vkosa[128]

    

    switch(Knife)

    {

        case 0: {

            format(vkosa,charsmax(vkosa),"models/v_knife.mdl")

        }

        case 1: {
            
            format(vkosa, 127, "%s%s", get_pcvar_num(lokalizacja_skin_knife), get_pcvar_num(knife_skin_name1));

        }
    
}
    entity_set_string(id, EV_SZ_viewmodel, vkosa)

    

    return PLUGIN_HANDLED;  
}

próbowałem też formatexem ale dalej to samo. Mam nadzieje że ktoś podsunie pomysł a najlepiej poprawiony kod.

 

 


  • +
  • -
  • 0

#2 Aexis

    Pomocny

  • Użytkownik

Reputacja: 35
Życzliwy

  • Postów:59
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wrocław
Offline

Napisano 20.05.2017 20:02

Zastanawia mnie dlaczego pobierasz liczbę, kiedy Twój cvar powinien być stringiem?:

get_pcvar_num ( pcvar ) 

zamiast :

get_pcvar_string ( pcvar, string[], maxlen )

  • +
  • -
  • 1

1228979531_oie_291885ZfujEGiH(1).png.af1


#3 Toldi

    Czempion

  • Autor tematu
  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 20.05.2017 20:25

Dzięki za podpowiedź. Zmieniłem tak jak piszesz z get_pcvar_num na get_pcvar_string i wyskakuje mi błąd w tej linii.

formatex(Mdl, charsmax(Mdl), "%s%s.mdl", get_pcvar_string(lokalizacja_skin_knife), get_pcvar_string(knife_skin_name1));

Kod błędu: Error: Number of arguments does not match definition on line 100

Cvarami bawić zacząłem się dopiero nie dawno i mało co o nich wiem.

Jeszcze nic nie robiłem używając get_pcvar_string i nie wiem dokładnie jak by to miało wyglądać. Gdybyś mógł podać już przerobiony mój kod na ten który by działał.


  • +
  • -
  • 0

#4 Master Yoga

    Support Team | Mocarz

  • Support Team

Reputacja: 136
Zaawansowany

  • Postów:275
  • Lokalizacja:Magistrala Adresowa
Offline

Napisano 20.05.2017 20:34

  • Po pierwsze w funkcji get_pcvar_string nie zgadza się liczba argumentów.
  • Po drugie stosując: 
formatex(Mdl, charsmax(Mdl), "%s%s.mdl", get_pcvar_string(lokalizacja_skin_knife), get_pcvar_string(knife_skin_name1));

nie osiągnąłbyś upragnionego efektu.

  • Po trzecie funkcja get_pcvar_string zwraca wartość poprzez referencję.

Czyli musisz zrobić to w taki sposób:

new cvar_value[64];
get_pcvar_string(cvar, cvar_value, charsmax(cvar_value);
[...]
formatex(mdl, charsmax(mdl), "%s%s.mdl", cvar_value, cvar_value2);

  • +
  • -
  • 1

HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


MKW0tb8.pngMKW0tb8.pngMKW0tb8.png


#5 Toldi

    Czempion

  • Autor tematu
  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 21.05.2017 09:05

Dzięki za pomoc Aexis i Master Yoga ;)


  • +
  • -
  • 0




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

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