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

[ROZWIĄZANE] Problem z kompilacją silnika COD Mod.


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

#1 HS4U

    Życzliwy

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:28
  • Lokalizacja:Mosina
Offline

Napisano 30.12.2013 18:41

Razem z kolegą postanowiliśmy założyć serwer COD Mod, generalnie własną sieć serwerów Counter Strike. Niestety przy dodawaniu szybkiego rozdawania punktów, wystąpiły błędy

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

QTM_CodMod.sma(453) : error 017: undefined symbol "ZapiszDane"
QTM_CodMod.sma(1032) : error 017: undefined symbol "ResetujPunkty"
QTM_CodMod.sma(1037) : error 017: undefined symbol "ResetujPunkty"
QTM_CodMod.sma(1050) : error 017: undefined symbol "ZapiszDane"
QTM_CodMod.sma(1548) : warning 203: symbol is never used: "bronie_druzyny"

4 Errors.
Could not locate output file QTM_CodMod.amxx (compile failed).

Prosiłbym o szybką pomoc, wytłumaczenie o co chodziło w następujących błędach i jak zostały one naprawione i dodanie do silnika takich rzeczy jak wiadomości w HUD o:

 

● Nick gracza.

● Poziom gracza.

● Doświadczenie gracza.

● Perk gracza.

● Nazwa forum.

 

Prosiłbym o to, aby HUD znajdował się w środkowym, górnym rogu.  ;)

|______________________________________________________________|

 

~ Dopisuje do tematu.  ;>

 

Edytowałem sobie cod_shop.sma, przy kompilowaniu wyskoczyły mi następujące błędy:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

cod_shop.sma(20) : error 029: invalid expression, assumed zero
cod_shop.sma(20 -- 21) : warning 215: expression has no effect
cod_shop.sma(21) : error 029: invalid expression, assumed zero
cod_shop.sma(21 -- 22) : warning 215: expression has no effect
cod_shop.sma(22) : error 029: invalid expression, assumed zero
cod_shop.sma(22) : fatal error 107: too many error messages on one line

Compilation aborted.
4 Errors.

Prosiłbym o poprawienie tego błędu.  :)

Załączone pliki


Użytkownik HS4U edytował ten post 30.12.2013 18:56

  • +
  • -
  • 0

#2 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 30.12.2013 18:42

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XPytania dotyczące pluginów

do

Scripting AMXXProśby o kompilacje pluginów / Problemy z kompilacją
  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#3 HS4U

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:28
  • Lokalizacja:Mosina
Offline

Napisano 31.12.2013 10:02

@REFRESH


  • +
  • -
  • 0

#4 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 31.12.2013 10:08

#include <amxmodx>
#include <codmod>
#include <engine>
#include <cstrike>
#include <fun>
public plugin_init(){
    register_plugin("Sklep by MieTeK ed. HS4U", "1.3", "MieTeK ed. HS4U");
    
    register_clcmd("say /sklep", "Sklep");
    register_clcmd("say /kup", "Sklep");
}    
public Sklep(id){
    new tytul[25];
    format(tytul, 24, "\rSklep by \yMieTeK ed. HS4U");
    new menu = menu_create(tytul, "Sklep_Handler");
    menu_additem(menu, "Granat wybuchowy \r[Dostajesz granat wybuchowy] \yKoszt: \r5000$");
    menu_additem(menu, "Granat oslepiajacy \r[Dostajesz granat oslepiajacy] \yKoszt: \r3000$");
    menu_additem(menu, "Grawitacja \r[Dostajesz 300 grawitacji] \yKoszt: \r16000$");
    menu_additem(menu, "Ruletka \r[Losowanie bonusow] \yKoszt: \r4000$");
    menu_additem(menu, "Perk \r[Dostajesz losowy perk] \yKoszt: \r5000$");
    menu_additem(menu, "Doswiadczenie \r[Losowanie XP 6000/7500] \yKoszt: \r7500$");
    menu_additem(menu, "Super Doswiadczenie \r[Losowanie XP 12000/14500] \yKoszt: \r12000$");
    menu_additem(menu, "Mega Doswiadczenie \r[Losowanie XP 17000/21300] \yKoszt: \r16000$");
    menu_additem(menu, "Buty Szturmowca \r[Nie slychac twoich krokow] \yKoszt: \r10000$");
}
public Sklep_Handler(id, menu, item){
    if(!is_user_alive(id) || !is_user_connected(id))
        return PLUGIN_CONTINUE;
    new kasa = cs_get_user_money(id);
    if(item == MENU_EXIT){
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    switch(item){
        case 0:
        {
            if(kasa >= 5000){
                cod_give_weapon(id, CSW_HEGRENADE);
                cs_set_user_money(id, kasa-5000);
                client_print(id, print_chat, "[COD:MW] Kupiles granat wybuchowy!");
            }
            if(kasa < 5000)
                client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!");
        }
        case 1:
        {
            if(kasa >= 3000)
            {
                cod_give_weapon(id, CSW_FLASHBANG);
                cs_set_user_money(id, kasa-3000);
                client_print(id, print_chat, "[COD:MW] Kupiles granat oslepiajacy!");
            }
            if(kasa < 3000)
                client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!");
        }
        case 2:
        {
            if(kasa >= 11000)
            {
                cs_set_user_money(id, kasa-11000);
                set_user_gravity(id, 0.3);
                client_print(id, print_chat, "[COD:MW] Otrzymales 300 grawitacji!");
            }
            if(kasa < 11000)
                client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!");
        }
        case 3:
        {
            
            if(kasa >= 4000)
            {
                cs_set_user_money(id, kasa-4000);
                client_print(id, print_chat, "[COD:MW] Trwa losowanie!");
                new totek = random_num(0, 10);
                
                switch(totek)
                {
                    case 0:
                    {
                        new moneybonus = random_num(500,5000);
                        client_print(id, print_chat, "[COD:MW] Wygrales kase %i$!", moneybonus);
                        cs_set_user_money(id, moneybonus);
                    }
                    case 1:
                    {
                        new moneybonus = random_num(5000,16000);
                        client_print(id, print_chat, "[COD:MW] Wygrales super kase %i$!", moneybonus);
                        cs_set_user_money(id, moneybonus);
                    }
                    case 2:
                    {
                        set_user_gravity(id, get_user_gravity(id)-0.5);
                        client_print(id, print_chat, "[COD:MW] Wygrales nizsza grawitacje!");
                    }
                    case 3:
                        client_print(id, print_chat, "[COD:MW] Lipa nic nie wygrales");
                    case 4:
                    {
                        new bonusxp = random_num(2000,10000);
                        cod_set_user_xp(id, cod_get_user_xp(id)+bonusxp);
                        client_print(id, print_chat, "[COD:MW] Wygrales %i dodatkowego EXP'a !", bonusxp);
                    }
                    case 5:
                    {
                        cod_set_user_perk(id, -1, -1, 1);
                        client_print(id, print_chat, "[COD:MW] Wygrales losowy perk!");
                    }
                    case 6:
                    {
                        new healthbonus = random_num(30,100);
                        set_user_health(id, get_user_health(id)+healthbonus);
                        client_print(id, print_chat, "[COD:MW] Wygrales %i dodatkowego HP!", healthbonus);
                    }
                    case 7:
                    {
                        new healthbonus = random_num(10,65);
                        set_user_health(id, get_user_health(id)-healthbonus);
                        client_print(id, print_chat, "[COD:MW] Straciles %i HP!", healthbonus);
                    }
                    case 8:
                        client_print(id, print_chat, "[COD:MW] Lipa nic nie wygrales!");
                    case 9:
                    {
                        new xpbonus = random_num(7500,15000);
                        cod_set_user_xp(id, cod_get_user_xp(id)+xpbonus);
                        client_print(id, print_chat, "[COD:MW] Wygrales %i dodatkowego EXP'a!", xpbonus);
                    }
                    case 10:
                    {
                        client_print(id, print_chat, "[COD:MW] Lipa nic nie wygrales!");
                    }
                }
            }
        }
        case 4:
        {
            if(kasa >= 5000)
            {
                cs_set_user_money(id, kasa-5000);
                cod_set_user_perk(id, -1, -1, 1);
                client_print(id, print_chat, "[COD:MW] Kupiles losowy perk!");
            }
            if(kasa < 5000)
                client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!");
        }
        case 5:
        {
            if(kasa >= 7500)
            {
                new exp = cod_get_user_xp(id);
                new losowy = random_num(6000, 7500);
                cs_set_user_money(id, kasa-7500);
                cod_set_user_xp(id, exp+losowy)
                client_print(id, print_chat, "[COD:MW] Dostales %i EXP'a!", losowy);
            }
            if(kasa < 7500)
                client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!");
        }
        case 6:
        {
            if(kasa >= 12000)
            {
                new exp = cod_get_user_xp(id);
                new losowy = random_num(12000, 14500);
                cs_set_user_money(id, kasa-12000);
                cod_set_user_xp(id, exp+losowy)
                client_print(id, print_chat, "[COD:MW] Dostales %i EXP'a!", losowy);
            }
            if(kasa < 12000)
                client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!");
        }
        case 7:
        {
            if(kasa >= 16000)
            {
                new exp = cod_get_user_xp(id);
                new losowy = random_num(17000, 21300);
                cs_set_user_money(id, kasa-16000);
                cod_set_user_xp(id, exp+losowy)
                client_print(id, print_chat, "[COD:MW] Dostales %i EXP'a!", losowy);
            }
            if(kasa < 16000)
                client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!");
        }
        case 8:{
            if(kasa >= 10000){
                set_user_footsteps(id, 1);
                cs_set_user_money(id, kasa-10000);
                client_print(id, print_chat, "[COD:MW] Kupiles buty szturmowca!");
            }
            if(kasa < 10000)
                client_print(id, print_chat, "[COD:MW] Zapomnij, masz za malo hajsu!");
        }
    }
    return PLUGIN_CONTINUE;
}

Użytkownik Wielkie Jol edytował ten post 31.12.2013 10:09

  • +
  • -
  • 1

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#5 HS4U

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:28
  • Lokalizacja:Mosina
Offline

Napisano 31.12.2013 10:14

Plik skompilował się, dziękuję Ci bardzo! Można wiedzieć co było błędem w całym kodzie?  ;>

Oczywiście PLUSIK dla Ciebie. 


  • +
  • -
  • 0

#6 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 31.12.2013 10:17

public Sklep(id)
{
    new tytul[25];
    format(tytul, 24, "\rSklep by \yMieTeK ed. HS4U");
    new menu = menu_create(tytul, "Sklep_Handler");
    menu_additem(menu, "Granat wybuchowy \r[Dostajesz granat wybuchowy] \yKoszt: \r5000$");/1
    menu_additem(menu, "Granat oslepiajacy \r[Dostajesz granat oslepiajacy] \yKoszt: \r3000$");/2
    menu_additem(menu, "Grawitacja \r[Dostajesz 300 grawitacji] \yKoszt: \r16000$");/3
    menu_additem(menu, "Ruletka \r[Losowanie bonusow] \yKoszt: \r4000$");/4
    menu_additem(menu, "Perk \r[Dostajesz losowy perk] \yKoszt: \r5000$");/5
    menu_additem(menu, "Doswiadczenie \r[Losowanie XP 6000/7500] \yKoszt: \r7500$");/6
    menu_additem(menu, "Super Doswiadczenie \r[Losowanie XP 12000/14500] \yKoszt: \r12000$");/7
    menu_additem(menu, "Mega Doswiadczenie \r[Losowanie XP 17000/21300] \yKoszt: \r16000$");/8
    menu_additem(menu, "Buty Szturmowca \r[Nie slychac twoich krokow] \yKoszt: \r10000$");/9
    
}

W tym miejscu było za mało o jeden /, przez co plugin czytał dalsze liczby jako zmienne ( 1,2,3,4...)

 

Następnie do Case 3 było za mało nawiasików klamrowych ( } ), przez co case 3 gryzł się z innymi.


Użytkownik Wielkie Jol edytował ten post 31.12.2013 10:17

  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#7 HS4U

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:28
  • Lokalizacja:Mosina
Offline

Napisano 31.12.2013 10:20

Aaaa! Dobrze już wszystko rozumiem, jest może jakiś kontakt do Ciebie nie wiem Skype, GG, TeamSpeak? Uprzedzam, że nie mam Steam.

 

@Topic: Gdybyś mógł to prosiłbym Cię jeszcze o naprawę QTM_Codmod (dodawałem szybkie dodawanie statystyk), już bez tego HUD itd. gdyby było to dla Ciebie problemem. :)


  • +
  • -
  • 0

#8 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 31.12.2013 10:26

Co do silnika, na końcu dodaj to

public ZapiszDane(id)
{
    if(!klasa_gracza[id])
        return PLUGIN_CONTINUE;
        
    new vaultkey[128],vaultdata[256], identyfikator[64];
    format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id]);
    
    new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
    
    switch(typ_zapisu)
    {
        case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
        case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
        case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
    }
        
    format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa_gracza[id]], typ_zapisu);
    nvault_set(vault,vaultkey,vaultdata);
    
    return PLUGIN_CONTINUE;
}

public ResetujPunkty(id)
{
    punkty_gracza[id] = (poziom_gracza[id]-1)*2;
    inteligencja_gracza[id] = 0;
    zdrowie_gracza[id] = 0;
    kondycja_gracza[id] = 0;
    wytrzymalosc_gracza[id] = 0;
    
    if(punkty_gracza[id])
        PrzydzielPunkty(id);
}

 

Jak dodawałeś punkty jakimś sposobem usunąłeś te funkcje, które odpowiadają za zapis danych i za resetowanie punktów u gracza


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#9 HS4U

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:28
  • Lokalizacja:Mosina
Offline

Napisano 31.12.2013 10:30

Po dodaniu tego do .sma kompilując plik nie było żadnych błędów aczkolwiek:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

QTM_CodMod.sma(1582) : warning 203: symbol is never used: "bronie_druzyny"
Header size:           4280 bytes
Code size:            48088 bytes
Data size:           297568 bytes
Stack/heap size:      16384 bytes; max. usage is unknown, due to recursion
Total requirements:  366320 bytes

1 Warning.
Done.

Mam rozumieć, że to może zostać i mogę spokojnie silnik wgrać na serwer tak? :)


http://amxx.pl/pastebin/354jhshmemxq/

Użytkownik glut edytował ten post 31.12.2013 10:41
Źle wstawiony kod

  • +
  • -
  • 0

#10 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 31.12.2013 10:43

to

new bronie_druzyny[] = {0, 1<<CSW_GLOCK18, 1<<CSW_USP},
     bronie_dozwolone = 1<<CSW_KNIFE | 1<<CSW_C4;
na

new bronie_dozwolone = 1<<CSW_KNIFE | 1<<CSW_C4;
Ponieważ zmienna bronie_druzyny nie została użyta ani razu i myślę że jest Ci nie potrzebna :) ale jak może Ci się przydać to za komentuj ją sobie na jakiś czas czyli

//new bronie_druzyny[] = {0, 1<<CSW_GLOCK18, 1<<CSW_USP};
     new bronie_dozwolone = 1<<CSW_KNIFE | 1<<CSW_C4;

  • +
  • -
  • 1

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#11 HS4U

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:28
  • Lokalizacja:Mosina
Offline

Napisano 31.12.2013 10:50

Dobrze problem rozwiązany, bardzo dziękuję za pomoc tobie.

 

● Wielkie Jol

● glut  :coto:

 

Bez was, na pewno nie ogarnąłbym tego sam. :)


  • +
  • -
  • 0

#12 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 31.12.2013 10:52

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:





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

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