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
CoD Stary

Jak zrobić dodawanie XP za wygraną rundę

CoD Stary

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

#1 camilost

    ^ BotQ - STER.owiec ^

  • Power User

Reputacja: 434
Wszechobecny

  • Postów:968
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Tychy
Offline

Napisano 05.08.2010 02:40

*
Popularny

Witam, wpadłem jakoś z pół godziny temu na pomysł, żeby dodać sobie dodatkowy XP za wygranie rundy przez naszą drużynę. I wziąłem się do roboty, korzystając już z przygotowanych funkcji. ^^

W .sma COD:MW Mod od QTM postępujemy zgodnie z poniższymi zasadami:

1. Szukamy
new doswiadczenia_za_zabojstwo;

Po tym dodajemy
	new doswiadczenie_za_wygranie;


2. Szukamy
doswiadczenia_za_zabojstwo = get_cvar_num("cod_killxp");

Po tym dodajemy
	doswiadczenie_za_wygranie = get_cvar_num("cod_winxp");


3. Szukamy
register_cvar("cod_killxp", "10");

Po tym dodajemy
register_cvar("cod_winxp", "5");


4. Szukamy
register_event("SendAudio", "BombaRozbrojona", "a", "2&%!MRAD_BOMBDEF");

Przed tym dodajemy
	register_event("SendAudio", "WygrywaTT", "a", "2&%!MRAD_terwin");
register_event("SendAudio", "WygrywaCT", "a", "2&%!MRAD_ctwin");


5. Szukamy
public BombaRozbrojona()

Przed tym dodajemy
public WygrywaTT()
{
new Players[32], playerCount, id;
get_players(Players, playerCount, "aeh", "TERRORIST");

for (new i=0; i<playerCount; i++)
{
id = Players[i];
if(klasa_gracza[id])
{
doswiadczenie_gracza[id] += doswiadczenie_za_wygranie;

ColorChat(id,GREEN,"[COD:MW]^x01 Dostales^x03 %i^x01 doswiadczenia za wygranie rundy przez twoj team.", doswiadczenie_za_wygranie);
//client_print(id, print_chat, "[COD:MW] Dostales %i doswiadczenia za wygranie rundy przez twoj team.", doswiadczenie_za_wygranie);
}
SprawdzPoziom(id);
}
}

public WygrywaCT()
{
new Players[32], playerCount, id;
get_players(Players, playerCount, "aeh", "CT");

for (new i=0; i<playerCount; i++)
{
id = Players[i];
if(klasa_gracza[id])
{
doswiadczenie_gracza[id] += doswiadczenie_za_wygranie;

ColorChat(id,GREEN,"[COD:MW]^x01 Dostales^x03 %i^x01 doswiadczenia za wygranie rundy przez twoj team.", doswiadczenie_za_wygranie);
//client_print(id, print_chat, "[COD:MW] Dostales %i doswiadczenia za wygranie rundy przez twoj team.", doswiadczenie_za_wygranie);
}
SprawdzPoziom(id);
}
}


Zapisujemy, kompilujemy, no i to tyle ^^
CVAR:
cod_winxp // Ile expa dostaje druzyna ktora wygra

Mam nadzieję, że się przyda. :P

PS. Jesli nie lubicie kolorkow dajcie komentarz przed ColorChat, a usuńcie przed client_print.


Jeżeli sam nie potrafisz tego zrobić
Załóż osobny temat w dziale Scripting/Pluginy załącz SMA i powiedz o co prosisz.


@EDITED (Dodany 1 krok (3: rejestracja CVARu) - późno było i o jednym zapomniałem ^^

@Zakaz kopiowania ^.^


Użytkownik camilost edytował ten post 30.08.2010 14:01

  • +
  • -
  • 13

#2 Night90

    Wszechwidzący

  • Użytkownik

Reputacja: 58
Pomocny

  • Postów:257
  • GG:
  • Steam:steam
  • Imię:Adrian
  • Lokalizacja:Lublin
Offline

Napisano 05.08.2010 07:38

Dzięki przyda się , leci plus ;P

// Zrobiłem tak i pisze że dostaje 0 expa za wygraną rundę chociaż ustawiłem cvar na 500 expa...


I czy dało by się zrobić tak aby cały team dostawał ?? Nawet jak gracze nie są żywi?

Użytkownik Night90 edytował ten post 05.08.2010 08:28

  • +
  • -
  • 1

b_350_20_323957_202743_F19A15_111111.png
b_350_20_323957_202743_F19A15_111111.png
b_350_20_323957_202743_F19A15_111111.png
b_350_20_323957_202743_F19A15_111111.png

b_350_20_323957_202743_F19A15_111111.png

 


#3 jogu4

    Zaawansowany

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:86
  • Lokalizacja:Mława
Offline

Napisano 05.08.2010 12:13

na pewno wgram na swojego serwa +
  • +
  • -
  • 0

#4 camilost

    ^ BotQ - STER.owiec ^

  • Autor tematu
  • Power User

Reputacja: 434
Wszechobecny

  • Postów:968
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Tychy
Offline

Napisano 05.08.2010 13:04

@EDIT
1. Dodałem 1 krok, w nocy zapomniałem o nim ^^.
2. Jeśli chcesz, aby martwi też dostawali kasę: AMX Mod X Documentation
Czyli:
get_players(Players, playerCount, "aeh", "TERRORIST");
Zamieniasz na:
get_players(Players, playerCount, "eh", "TERRORIST");

A
get_players(Players, playerCount, "aeh", "CT");
Zamieniasz na:
get_players(Players, playerCount, "eh", "CT");

05 sierpień 2010 - 14:05:
Inny link funkcji, z dodanym wyjaśnieniem flagi H: AMX Mod X - Half-Life Scripting for Pros!
  • +
  • -
  • 3

#5 Night90

    Wszechwidzący

  • Użytkownik

Reputacja: 58
Pomocny

  • Postów:257
  • GG:
  • Steam:steam
  • Imię:Adrian
  • Lokalizacja:Lublin
Offline

Napisano 05.08.2010 13:47

Wszystko działa dzięki jeszcze raz :>

Użytkownik Night90 edytował ten post 05.08.2010 14:06

  • +
  • -
  • 0

b_350_20_323957_202743_F19A15_111111.png
b_350_20_323957_202743_F19A15_111111.png
b_350_20_323957_202743_F19A15_111111.png
b_350_20_323957_202743_F19A15_111111.png

b_350_20_323957_202743_F19A15_111111.png

 


#6 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 161
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 06.08.2010 15:58

mozesz tez zrobic ze exp dostaje najlepszy w rundzie
  • +
  • -
  • 0

#7 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 07.08.2010 13:04

Oj, oj są błędy. Nie dziwie się że niektórym nie działa.
Zamień:
 doswiadczenie_gracza[id] += doswiadczenie_za_wygranie;

na:
 doswiadczenie_gracza[id] += get_pcvar_num(doswiadczenie_za_wygranie);

I wszystko powinno działać.
  • +
  • -
  • 0

#8 camilost

    ^ BotQ - STER.owiec ^

  • Autor tematu
  • Power User

Reputacja: 434
Wszechobecny

  • Postów:968
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Tychy
Offline

Napisano 07.08.2010 15:14

Oj Oj, chyba Ty nie przeczytałeś całego kodu, i zaspamiłeś. Sprawdź jeszcze raz i później się popraw ; P

I niby jakim prawem pcvar jak nie masz pcvara tylko sama rejestracja CVARa. Przeczytaj ponownie.

07 sierpień 2010 - 17:39:
Podpowiem Ci...

1. Przed initem:
new doswiadczenie_za_wygranie;
W plugin_init:
doswiadczenie_za_wygranie = register_cvar("cod_winxp", "5");

2.W funkcji:
new exp_za_win = get_pcvar_num("doswiadczenie_za_wygranie");
i
doswiadczenie_gracza[id] += exp_za_win;


3. (1 i Twoje)musi zawierać:
get_pcvar_num("doswiadczenie_za_wygranie");
Przy czym to co dałem w poradniku lepsze rozwiązanie od 1. A Twoje błędną analizą. ; p
  • +
  • -
  • 1

#9 Smutny

    Pomocny

  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:46
  • Lokalizacja:Polska
Offline

Napisano 09.08.2010 09:40

Nie zmienia to faktu, ze bledy sa:

Warning: Loose indentation on line 212
Warning: Loose indentation on line 213

A wklepalem to do czystego COD'a.

Linia 212 i 213:

register_event("SendAudio", "WygrywaTT", "a", "2&%!MRAD_terwin");
register_event("SendAudio", "WygrywaCT", "a", "2&%!MRAD_ctwin");

  • +
  • -
  • 0

#10 Night90

    Wszechwidzący

  • Użytkownik

Reputacja: 58
Pomocny

  • Postów:257
  • GG:
  • Steam:steam
  • Imię:Adrian
  • Lokalizacja:Lublin
Offline

Napisano 09.08.2010 09:54

Te błędy w niczym nie przeszkadzają i wystarczy te linie albo do przodu spacją albo usunąć odstęp od początku
  • +
  • -
  • 0

b_350_20_323957_202743_F19A15_111111.png
b_350_20_323957_202743_F19A15_111111.png
b_350_20_323957_202743_F19A15_111111.png
b_350_20_323957_202743_F19A15_111111.png

b_350_20_323957_202743_F19A15_111111.png

 


#11 camilost

    ^ BotQ - STER.owiec ^

  • Autor tematu
  • Power User

Reputacja: 434
Wszechobecny

  • Postów:968
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Tychy
Offline

Napisano 09.08.2010 11:22

Nie wiem od kiedy : Warning jest błędem, ale dobra. W tym 'błędzie' chodzi o to że linie są nierówno tam ułożone np. Jak cały kod na początku masz napisany TABulatorami to zamiast kilka spacji dajesz TABulator i odwrotnie(4spacje to 1 TABulator)

Spacjami
register_event("SendAudio", "WygrywaTT", "a", "2&%!MRAD_terwin");
    register_event("SendAudio", "WygrywaCT", "a", "2&%!MRAD_ctwin");

TABulatorami
register_event("SendAudio", "WygrywaTT", "a", "2&%!MRAD_terwin");
	register_event("SendAudio", "WygrywaCT", "a", "2&%!MRAD_ctwin");

Zazwyczaj jak poprawiałem komuś coś w cod było spacjami. Jeśli dalej ten błąd rób TABulatorami.
  • +
  • -
  • 2

#12 Intex

    Wszechwiedzący

  • Power User

Reputacja: 59
Pomocny

  • Postów:525
  • GG:
  • Imię:Piotr
  • Lokalizacja:Waszawa
Offline

Napisano 14.08.2010 09:51

Ja nie mogę tego skompilowac....


Your plugin failed to compile! Read the errors below:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

/home/groups/amxmodx/tmp3/phpz2SNxj.sma(1337) : error 017: undefined symbol "ColorChat"
/home/groups/amxmodx/tmp3/phpz2SNxj.sma(1337) : warning 215: expression has no effect
/home/groups/amxmodx/tmp3/phpz2SNxj.sma(1337) : warning 215: expression has no effect
/home/groups/amxmodx/tmp3/phpz2SNxj.sma(1337) : error 001: expected token: ";", but found ")"
/home/groups/amxmodx/tmp3/phpz2SNxj.sma(1337) : error 029: invalid expression, assumed zero
/home/groups/amxmodx/tmp3/phpz2SNxj.sma(1337) : fatal error 107: too many error messages on one line

Compilation aborted.
4 Errors.

1024945 successful compiles to date.
751096 failed compiles to date.
Old compiler: 101980 compiles before decommission.
This tool by: David "BAILOPAN" Anderson.

  • +
  • -
  • 0
Dołączona grafika

#13 Smutny

    Pomocny

  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:46
  • Lokalizacja:Polska
Offline

Napisano 14.08.2010 10:10

Na samej gorze dodaj:

#include <colorchat>

  • +
  • -
  • 0

#14 Intex

    Wszechwiedzący

  • Power User

Reputacja: 59
Pomocny

  • Postów:525
  • GG:
  • Imię:Piotr
  • Lokalizacja:Waszawa
Offline

Napisano 14.08.2010 10:39

to teraz mam to

Your plugin failed to compile! Read the errors below:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

/home/groups/amxmodx/tmp3/php31OAI9.sma(1) : fatal error 100: cannot read from file: "colorchat"

Compilation aborted.
1 Error.

1024984 successful compiles to date.
751130 failed compiles to date.
Old compiler: 101980 compiles before decommission.
This tool by: David "BAILOPAN" Anderso

  • +
  • -
  • 0
Dołączona grafika

#15 Smutny

    Pomocny

  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:46
  • Lokalizacja:Polska
Offline

Napisano 14.08.2010 16:43

Bo nie masz colorchata...
Wejdz do folderu z AMXX Studio i dodaj plik ktory jest w zalaczniku.

AMXX Studio/addons/amxmodx/scripting/include

Załączone pliki


  • +
  • -
  • 0

#16 camilost

    ^ BotQ - STER.owiec ^

  • Autor tematu
  • Power User

Reputacja: 434
Wszechobecny

  • Postów:968
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Tychy
Offline

Napisano 14.08.2010 16:46

Do scripting/include/

@UP Szybszy ^^

Załączone pliki


Użytkownik camilost edytował ten post 14.08.2010 16:47

  • +
  • -
  • 3

#17 fuuuuu!

    Zaawansowany

  • Użytkownik

Reputacja: 35
Życzliwy

  • Postów:117
  • GG:
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 11.09.2010 18:24

Ja mam takie pytanko: Co zrobić aby nie dawało graczowi expa gdy jest sam na serwerze. U mnie jest taki błąd i czasem gracze sobie expia na tym. Będzie +.
  • +
  • -
  • 0


Wejdź i zostań na dłużej :]

Dołączona grafika


#18 camilost

    ^ BotQ - STER.owiec ^

  • Autor tematu
  • Power User

Reputacja: 434
Wszechobecny

  • Postów:968
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Tychy
Offline

Napisano 11.09.2010 21:42

Dodajesz sprawdzenie:
if(get_playersnum() < 5) return PLUGIN_CONTINUE;

i na końcu funkcji przed }
return PLUGIN_CONTINUE;

  • +
  • -
  • 2

#19 WojtekP

    Życzliwy

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:28
  • Imię:Wojtek
  • Lokalizacja:Nowy Sącz
Offline

Napisano 02.10.2010 17:18

sory ze pytam ale gdzie dodać to sprawdzenie w kodzie? bo umnie też na serwie expią przez ten błąd
  • +
  • -
  • 0
Dołączona grafika

#20 fuuuuu!

    Zaawansowany

  • Użytkownik

Reputacja: 35
Życzliwy

  • Postów:117
  • GG:
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 02.10.2010 17:32

sory ze pytam ale gdzie dodać to sprawdzenie w kodzie? bo umnie też na serwie expią przez ten błąd


Ja dodałem pod:
for (new i=0; i<playerCount; i++)

I wszystko ładnie działa.
  • +
  • -
  • 0


Wejdź i zostań na dłużej :]

Dołączona grafika






Również z jednym lub większą ilością słów kluczowych: CoD Stary

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

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