←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Dodawanie Doświadczenie w COD

  • +
  • -
nad3jf - zdjęcie nad3jf 17.07.2010

Witam, napisałem coś pod własny użytek ale może i wam się przyda. Pozwala to adminowi na serwerze dodać wybranemu graczu, wybraną ilość expa. Wzorowałem się lekko na dodawaniu leveli <_<

Więc tak otwieramy plik .sma i szukamy:
public plugin_init() 

W dowolnym jego miejscu dodajemy:
register_concmd("cod_addexp","cmd_addexp", ADMIN_KICK, "<name> <wartosc>");

W miejsce cod_addexp możemy wpisać dowolną swoją komendę, a w miejsce ADMIN_KICK wpisujemy dowolną flagę admina, która potrzebna jest by mógł korzystać z tej komendy. Teraz tworzymy funkcję obsługującą tą komendę.

public cmd_addexp(id, level, cid){
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg1[33];
new arg2[7];
read_argv(1,arg1,32);
read_argv(2,arg2,6);
new gracz = cmd_target(id,arg1);
doswiadczenie_gracza[gracz] += arg2;
}
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 20.07.2010

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
Scripting -> Tutoriale
do
Scripting -> Gotowe funkcje
Odpowiedz

  • +
  • -
Cypis' - zdjęcie Cypis' 07.08.2010

robię tak ja piszesz i błąd przy kompilacji

Error: Array must be indexed(variable "arg2")
Użytkownik patryk4815 edytował ten post 07.08.2010 15:46
Odpowiedz

  • +
  • -
Owner123 - zdjęcie Owner123 07.08.2010

Jest błąd w kodzie. Jak chcesz dodać do liczby, napis ? Musisz prze-konwertować na liczbę.
public cmd_addexp(id, level, cid){
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg1[33];
new arg2[7];
read_argv(1,arg1,32);
read_argv(2,arg2,6);
new gracz = cmd_target(id,arg1);
remove_quotes(arg2);
new exp = str_to_num(arg2);
doswiadczenie_gracza[gracz] += exp;
}
Odpowiedz

  • +
  • -
Night90 - zdjęcie Night90 09.08.2010

Czy da radę zrobić do tego odejmowanie expa graczowi ?? Bo nie którzy gracze chcą aby im przenieść LVL :>
Użytkownik Night90 edytował ten post 09.08.2010 13:05
Odpowiedz

  • +
  • -
camilost - zdjęcie camilost 09.08.2010

A czy możesz chwilę pomyśleć?
To co 2posty wyżej + doswiadczenie_gracza[gracz] -= exp;

09 sierpień 2010 - 17:17:
Panowie co robili fukncję:
new gracz = cmd_target(id, arg1, 0);

Bez zera na końcu admin z immu nie może sobie dać sam expa ;P

09 sierpień 2010 - 17:21:
Aha i jeszcze jak kto lubi na końcu:
SprawdzPoziom(gracz);

Owner123 i nad3jf, zapomnieliście przed końcem funkcji return PLUGIN_HANDLED.
Odpowiedz

  • +
  • -
Intex - zdjęcie Intex 11.08.2010

a gdzie to


public cmd_addexp(id, level, cid){
        if(!cmd_access(id, level, cid, 3))
                return PLUGIN_HANDLED;
        new arg1[33];
        new arg2[7];
        read_argv(1,arg1,32);
        read_argv(2,arg2,6);
        new gracz = cmd_target(id,arg1);
        doswiadczenie_gracza[gracz] += arg2;
}

mam wpisać?
Odpowiedz

  • +
  • -
camilost - zdjęcie camilost 11.08.2010

Najlepiej na sam koniec w Twoim przypadku ^^
Odpowiedz

  • +
  • -
Vandal - zdjęcie Vandal 02.10.2010

czy to normalnie działą ?

A nie da się np dodawać expa inaczej przez jakieś pliki tabelki czy coś w tym stylu
Użytkownik Vandal edytował ten post 03.10.2010 10:03
Odpowiedz

  • +
  • -
Pawex - zdjęcie Pawex 06.10.2010

Pac jak sie nei znasz to moze sie nie wypowiadaj co? Brak mi slow na twoj post ten temat zostal napisany :
Napisano 17 lipiec 2010 - 20:42
A tamten:
Napisano 17 wrzesień 2010 - 23:50
Tyle, ze w tym 2 jest wiecej komend.

Przydalo by sie jakies ostrzezenie :o ( Ale co ja tam wiem...)
Odpowiedz

  • +
  • -
t3h1 - zdjęcie t3h1 14.10.2010

Huh. Już wiem przez co mi spamowało konsole serwera przy mumodzie...
Odpowiedz

radek_b11 - zdjęcie radek_b11 01.11.2010

Napisze ktoś w 1 poście całość jak to zrobić ?
Bo teraz już nie wiem co jest dobrze
Odpowiedz

Adminek AMXX.PL - zdjęcie Adminek AMXX.PL 31.03.2011

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
Scripting -> Gotowe funkcje
do
Mody -> Call of Duty Mod -> Poradniki, Łatki oraz Pluginy
Odpowiedz

Gość_Sangre_* 02.08.2011

własnie dajcie jeden post ,bo ja się zgubiłem przy tym jak ustawić odejmowanie exp.
jaka ma byc komenda?!
i coz robić jak mi na serwie dodaje exp ale w konsoli wyskakuje "uncnow comman cod_dajexp" bo taką komendę "cod_dajexp" ustawiłem sobie
Odpowiedz

  • +
  • -
phoeniX - zdjęcie phoeniX 02.08.2011

Dodawanie Expa:

W plugin_init dodaj:

register_concmd("daj_expa", "give_exp", ADMIN_IMMUNITY, "<nick> <ilosc expa>");


Na koncu calego kodu dodaj:

public give_exp( id, level,cid ) { 
if(!cmd_access(id, level, cid, 3))
return 1;
new target[32], amount[21], reason[21];
read_argv(1, target, 31);
read_argv(2, amount, 20);
read_argv(3, reason, 20);
new player = cmd_target(id, target, 8);
if(!player)
return 1;
new expnum = str_to_num(amount);
doswiadczenie_gracza[player] += expnum;
ZapiszDane(player);
SprawdzPoziom(player);
return 0;
}


Zabieranie Expa:

W plugin_init dodaj:

register_concmd("zabierz_expa", "remove_exp", ADMIN_IMMUNITY, "<nick> <ilosc expa>");


Na koncu calego kodu dodaj:

public remove_exp( id, level,cid ) { 
if(!cmd_access(id, level, cid, 3))
return 1;
new target[32], amount[21], reason[21];
read_argv(1, target, 31);
read_argv(2, amount, 20);
read_argv(3, reason, 20);
new player = cmd_target(id, target, 8);
if(!player)
return 1;
new expnum = str_to_num(amount);
doswiadczenie_gracza[player] -= expnum;
ZapiszDane(player);
SprawdzPoziom(player);
return 0;
}


Powinno działać.
Użytkownik phoeniX edytował ten post 02.08.2011 11:57
Odpowiedz

Gość_Sangre_* 02.08.2011

ej a da sie coś zrobić ,zeby nie było "uncnow command "cod_dajexp"
Użytkownik Sangre edytował ten post 02.08.2011 13:03
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 02.08.2011

Dodawanie Expa:
W plugin_init dodaj:
[...]
Na koncu calego kodu dodaj:
[...]
Zabieranie Expa:
W plugin_init dodaj:
[...]
Na koncu calego kodu dodaj:
[...]
Powinno działać.


A po co tak? Nie prościej wpisać daj_expa "nick" "-666"
Odpowiedz

Gość_Sangre_* 02.08.2011

cacy, ładnie działa tylko czy da się tak ,żeby nie wyświetlało ,że to nieznana komenda mimo ,że działa?
Użytkownik Sangre edytował ten post 02.08.2011 13:29
Odpowiedz