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

to działa?


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

#1 zGraferz

    Wszechwidzący

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 20:35

Chciałem spróbować swoich sił w pluginach itp. i zrobiłem swój pierwszy plugin.
na razie sztywno według poradników ale trochę też improwizowałem
Tak więc mam pytanie czy ten plugin ma prawo działać?

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

#define PLUGIN "VIP powers"
#define VERSION "1.0"
#define AUTHOR "Grafer"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("amx_power", "menu")
    
}

public menu(id)
{
    new menu = menu_create("rMoce VIP:", "wybieranie")
    menu_additem(menu, "wWiecej HP", "1", ADMIN_IMMUNITY)
    menu_additem(menu, "wMniejsza Grawitacja", "2", ADMIN_IMMUNITY)

    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

    menu_display(id, menu, ADMIN_IMMUNITY)
}

public wybieranie(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    new data[6], iName[64]
    new acces, callback
    menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)

    new key = str_to_num(data)
    switch(key)
    {
        case 1:{
            set_user_health(id, 150)
            client_print(id,print_chat,"Zycie zwiekszone o polowe.");
        }

        case 2:{
            set_user_gravity(id,0.50)
            client_print(id,print_chat,"Grawitacja zmniejszona o polowe.");
        }
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

  • +
  • -
  • 0

#2 wizu

    Godlike

  • Przyjaciel

Reputacja: 224
Profesjonalista

  • Postów:1 217
  • GG:
  • Lokalizacja:Sanok
Offline

Napisano 01.01.2009 20:38

Po 1:
client_print(id, set_user_health(id, 150))
Ta funkcja służy do wyświetlania tekstu w konsoli (client_print), a ta set_user_health do zmieniani ilosc hp gracza, wiec to nie ma sensu.
To samo to:
client_print(id, set_user_gravity(id,0.50))

Poza tym ja tam się na robieniu menu nie znam, wiec Ci więcej nie pomogę ;)
  • +
  • -
  • 0

#3 zGraferz

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 20:41

a teraz?
  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.01.2009 20:44

client_print(id, set_user_gravity(id,0.50))
Próbowałeś to skompilować? tak na pewno nie będzei działać. Radzę:
client_print(id,print_chat,"Grawitacja zmniejszona o polowe.");
 set_user_gravity(id,0.50)
Identycznie z hp
  • +
  • -
  • 0

#5 zGraferz

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 20:45

a po za tymi linijkami są jeszcze jakieś błędy?
  • +
  • -
  • 0

#6 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 01.01.2009 20:50

R3X odwrotnie
nie

client_print(id,print_chat,"Grawitacja zmniejszona o polowe.");
set_user_gravity(id,0.50)

Tylko

set_user_gravity(id,0.50)
client_print(id,print_chat,"Grawitacja zmniejszona o polowe.");

Jeśli powstał by jakiś błąd przy ustawianiu grawitacji to funkcja kończy swoje działanie i w Twojej wersji zostanie wypisane graczowi, że ustawiono grawitacje, ale jej nie ustawi, a w mojej wersji jeśli błąd spowoduje zakończenie funkcji to nic nie zostanie zmienione, ale i nie zostanie wypisane.

Dlatego należy zawsze najpierw wykonywać operacje, a dopiero po jej wykonaniu wypisywać info
  • +
  • -
  • 0

#7 zGraferz

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 20:56

poprawiłem według waszych wskazówek
teraz powinno działać?

P.S.
Jak próbuje to skompilować w kompilatorze na amxx.pl to wyskakuje

Nie udało się skompilować pluginu. Przeczytaj poniższy bład:

ale ów błąd nie jest pokazywany. To wina mojego pluginu, czy kompilatora?
  • +
  • -
  • 0

#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.01.2009 20:59

Możliwe. Ja wolę zawsze widzieć efekt mojego działania - a wystarczy skoczyć by się upewnić o grawitacji.
Komenda amx_menu już istnieje, zmień nazwę

Edit.
Skompiluj lokalnie.

Pomysł na optymalizację:
menu_destroy(menu)
    return PLUGIN_HANDLED
Występuje w każdym case: i na dodatek po nim. Wystarczyłoby to drugie.
  • +
  • -
  • 0

#9 zGraferz

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 21:07

zobacz czy o to ci chodziło i w dobrym miejscu usunąłem

P.S.
bo nigdy nie kompilowałem lokalnie, więc jak to się robi?
  • +
  • -
  • 0

#10 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.01.2009 21:28

Dobrze.
Ściągnij AMXX Pawn Studio http://sourceforge.n... ... _final.zip

Jak zainstalujesz to otwórz i naciśnij F12.
Tam
Compiler->Compiler Settings
Wskaż położenie amxxpc.exe (w addons/amxmodx/scripting/)
I docelowy katalog: Default Output directory zmień na addons/amxmodx/plugins/

Potem pisz plugin i naciśnij F9
  • +
  • -
  • 0

#11 zGraferz

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 21:37

amxxpc.exe mam w AMX Mod Xfilesbasescripting < tak tez moze byc?
i jak wpisze ten plugin i nacisne F9 to pod jaką nazwą i gdzie się zapisze? tam gdzie ustawiłem Default Output directory ?
  • +
  • -
  • 0

#12 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.01.2009 21:38

Może być, to ten sam kompilator. Nazwę sam podajesz: jeśli edytujesz plik moj_plugin1.sma to otrzymasz moj_plugin1.amxx. Tak zapisze w katalogu który podałeś jako Default Output directory.
  • +
  • -
  • 0

#13 zGraferz

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 21:51

Error: Expected token ",", but found "-inentifier=" on line 45
Error: Expected token ",", but found "-inentifier=" on line 51

Could not locate output file C:adresvipowers.amx

oto te linjki
client_print(id, set_user_health(id, 150)

client_print(id, set_user_gravity(id,0.50)


taki błąd mi wywala przy kompilowaniu
  • +
  • -
  • 0

#14 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.01.2009 21:55

Ten błąd już chyba raz poprawialiśmy :lol: próbuj kompilować to, co aktualnie masz w pierwszym swoim poście.
  • +
  • -
  • 0

#15 zGraferz

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 21:58

sorry, ;D zapomniałem zapisać poprawionego pliku
  • +
  • -
  • 0

#16 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.01.2009 22:05

Na razie nie potrzebujesz
#include <amxmisc>
#include <cstrike>

a i fun mógłbyś zastąpić fakemeta, oczywiście wprowadzając odpowiednie zmiany w kodzie.
  • +
  • -
  • 0

#17 zGraferz

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 22:10

a jakie te zmiany w kodzie miałyby być?
  • +
  • -
  • 0

#18 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.01.2009 22:20

Chodzi tylko o sposób wykonania; ten sam efekt można osiągnąć na kilka sposobów. Mówią, że fakemeta działa szybciej i lepiej niż fun.

//wersja fun
set_user_health(id, 150);

//wersja fakemeta
set_pev(id, pev_health, 150.0);
Podobnie i grawitacja:
set_pev(id, pev_gravity,0.5);


Tu masz listę wszystkich:
http://www.amxmodx.o... ... #const_pev
  • +
  • -
  • 0

#19 zGraferz

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:282
  • Imię:Filip
Offline

Napisano 01.01.2009 22:24

i wystarczy zmienić tylko "set_user_health(id, 150); " na "set_pev(id, pev_health, 150.0);" oraz "set_user_gravity(id, 150); " na "set_pev(id, pev_gravity,0.5);" i zamiast "#include <cstrike>" dać "#include <fakemeta>" ?
  • +
  • -
  • 0

#20 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 01.01.2009 22:24

zamiast "#include <cstrike>" dać "#include <fakemeta>

zamiast fun'a a nie cstrike'a



fakemata może też być zamiast engine'a jak się człowiek uprze ;)
  • +
  • -
  • 0




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

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