←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Problem z wgraniem nowej statystyki

  • +
  • -
MAGNET - zdjęcie MAGNET 30.07.2013

Otóż wklepałem sobie do silnika dodatkowo regenerację na nożu i dodatkowy exp za fraga no i wywala mi errory takie:
QTM_CodMod.sma(460) : error 028: invalid subscript (not an array or too many subscripts): "PobierzExp"
QTM_CodMod.sma(460) : warning 215: expression has no effect
QTM_CodMod.sma(460) : error 001: expected token: ";", but found "]"
QTM_CodMod.sma(460) : error 029: invalid expression, assumed zero
QTM_CodMod.sma(460) : fatal error 107: too many error messages on one line
Linijka nr 460:
new doswiadczenie_za_zabojstwo = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo * PobierzExp[id]/5));
Gdy ten problem rozwiążemy przejdziemy do regeneracji ;)
Odpowiedz

GT Team - zdjęcie GT Team 30.07.2013

Usuń jeden nawias z na końcu
Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 30.07.2013

Po usunięciu:
QTM_CodMod.sma(460) : error 028: invalid subscript (not an array or too many subscripts): "PobierzExp"
QTM_CodMod.sma(460) : warning 215: expression has no effect
QTM_CodMod.sma(460) : error 001: expected token: ";", but found "]"
QTM_CodMod.sma(460) : error 029: invalid expression, assumed zero
QTM_CodMod.sma(460) : fatal error 107: too many error messages on one line
Odpowiedz

GT Team - zdjęcie GT Team 30.07.2013

Pokaż funkcję PobierzExp
Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 30.07.2013

public PobierzExp(id, exp_zdobyty, exp_klasy, exp_bonusowy)
{
new exp;
 
if(exp_zdobyty)
exp += exp_gracza[id];
if(exp_bonusowy)
exp += bonusowy_exp_gracza[id];
if(exp_klasy)
exp += exp_klas[klasa_gracza[id]];
 
return exp;
}
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 31.07.2013

new doswiadczenie_za_zabojstwo = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo * PobierzExp[id]/5));

na koncu sa 2 nawiasy okrągłe. Usuń jeden i wstaw logi

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 31.07.2013

Ymm usunalem i wstawilem ?
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 01.08.2013

dalej nic?
 

Odpowiedz

  • +
  • -
ka.linux - zdjęcie ka.linux 01.08.2013

Nie ma to jak pomoc, która już była udzielona "Lolunio", czytaj wszystko zanim posta nabijesz...

A co do ciebie MAGNET to:

 

Znajdź:

public SmiercGraczaPost(id, attacker, shouldgib)

Zamień to nowe:

new doswiadczenie_za_zabojstwo = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo * PobierzExp[id]/5));

Na stare:

        new doswiadczenie_za_zabojstwo = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo);

Pod:

            nowe_doswiadczenie += (poziom_gracza[id]-poziom_gracza[attacker])*(doswiadczenie_za_zabojstwo/10);

Dodaj:

nowe_doswiadczenie += PobierzExp[id]/5;

 

Done ; )

 

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 03.08.2013

Cóż...
QTM_CodMod.sma(469) : error 028: invalid subscript (not an array or too many subscripts): "PobierzExp"
QTM_CodMod.sma(469) : warning 215: expression has no effect
QTM_CodMod.sma(469) : error 001: expected token: ";", but found "]"
QTM_CodMod.sma(469) : error 029: invalid expression, assumed zero
QTM_CodMod.sma(469) : fatal error 107: too many error messages on one line
Odpowiedz

  • +
  • -
ka.linux - zdjęcie ka.linux 03.08.2013

Daj cały:

public SmiercGraczaPost(id, attacker, shouldgib)

Będzie łatwiej gdy dam całego przerobionego publica :)

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 03.08.2013

public SmiercGraczaPost(id, attacker, shouldgib)
{
if(!is_user_connected(attacker))
return HAM_IGNORED;
 
if(get_user_team(id) != get_user_team(attacker) && klasa_gracza[attacker])
{
new doswiadczenie_za_zabojstwo = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo);
new nowe_doswiadczenie = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo);
 
if(poziom_gracza[id] > poziom_gracza[attacker])
nowe_doswiadczenie += (poziom_gracza[id]-poziom_gracza[attacker])*(doswiadczenie_za_zabojstwo/10);
 
if(!perk_gracza[attacker])
UstawPerk(attacker, -1, -1, 1);
doswiadczenie_gracza[attacker] += nowe_doswiadczenie;
nowe_doswiadczenie += PobierzExp[id]/5;
}
 
SprawdzPoziom(attacker);
 
return HAM_IGNORED;
}
Odpowiedz

  • +
  • -
ka.linux - zdjęcie ka.linux 04.08.2013

Szczegół to:
 

nowe_doswiadczenie += PobierzExp[id]/5;

Powinno być pod tym:

nowe_doswiadczenie += (poziom_gracza[id]-poziom_gracza[attacker])*(doswiadczenie_za_zabojstwo/10);

Co do błędu, podrzuć *.sma całego silnika bo cały ten public jest w porządku, chyba że zrobić ci poradnik na całą tą statystykę, z ZarejestrujKlase, lub bez ; )

Odpowiedz

Daj buziaka - zdjęcie Daj buziaka 04.08.2013

Gdy ten problem rozwiążemy przejdziemy do regeneracji ;)

 

 

mam gdzieś na kompie nową statystykę regeneracje :)

jak znajdę to wrzucę :)

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 04.08.2013

Dokladnie te same errory :(

Generalnie to chcialem zrobic tak, aby mozna bylo przydzielac "Punkty Chwaly" Co 20 lvli i dodawalem nowe statystyki i zapis nVault itp. Moze tam zrobilem blad

Podsylam sma:

 

Załączone pliki

Odpowiedz

  • +
  • -
ka.linux - zdjęcie ka.linux 04.08.2013

Nic trudnego ^^, poprawiłem kilka błędów z expem, usunięto skoki_gracza ponieważ były niepotrzebne itd, było sporo błędów ^^. Regenracja zrobiona że tylko z nożem, exp też, wystarczy sobie ustawić co ile sekund regeneracja, ile regeneracji itd. Jeśli będziesz miał problemy, pisz; )

 

Nie gwarantuję że Regeneracja będzie działać, robiłem na szybko ; D

 

 

 

 

Załączone pliki

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 04.08.2013

Regeneracja miala byc na nozu :P

Ale ja byki walilem hahah ;] 

Przetestuje i dam znac czy dziala

Odpowiedz

  • +
  • -
ka.linux - zdjęcie ka.linux 04.08.2013

Exp jest za fraga tak, a regeneracja na nożu widziałem w *.sma jak masz to pomyślałem że tak ma być dodałem wystarczy zobaczyć new bron = get_user_weapon(id) ^^, a nastepnie if.

 

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 04.08.2013

po wgraniu silnika nie otwiera sie menu z klasami - chyba wgl nie dziala :(

Odpowiedz

  • +
  • -
ka.linux - zdjęcie ka.linux 04.08.2013

A czy w klasach masz np:

new const leczenie = 0;

Ponieważ masz:

public ZarejestrujKlase(plugin, params)
{
    if(params != 7)
        return PLUGIN_CONTINUE;
    
    if(++ilosc_klas > MAX_ILOSC_KLAS)
        return -1;
    
    pluginy_klas[ilosc_klas] = plugin;
    
    get_string(1, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
    get_string(2, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);
    
    bronie_klasy[ilosc_klas] = get_param(3);
    zdrowie_klas[ilosc_klas] = get_param(4);
    kondycja_klas[ilosc_klas] = get_param(5);
    inteligencja_klas[ilosc_klas] = get_param(6);
    wytrzymalosc_klas[ilosc_klas] = get_param(7);
    exp_klas[ilosc_klas] = get_param(8);
    obrazenia_klas[ilosc_klas] = get_param(9);
    grawitacja_klas[ilosc_klas] = get_param(10);
    leczenie_klas[ilosc_klas] = get_param(11);
    
    return ilosc_klas;
}

A co do:

    if(params != 7)

Musisz ustawić sobie na:

    if(params != 11)

oraz ujrzałem że Punkty Chwały masz różnie, resetuj punkty /20 , sprawdzpoziom /10 , i nie bedzie ci rowno, popraw sobie :)

dokladnie chodzi o

    ultra_punkty_gracza[id] = (poziom_gracza[id]-1)/20;

Nie wszędzie masz ustawione na /20 ;)

 

Odpowiedz