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

Edycja Nagrody EXPDodanie Punktów premium.


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

#1 BoB0_

    Wszechpomocny

  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 03.02.2012 18:40

Witam.

Mam problem z dodaniem do kodu 3 linijek. Może inaczej. Problemu z dodaniem nie mam ale poźniej plugin wcale nie działa.

Oto kod przed edycją:

#include <amxmodx>
#include <amxmisc>
#include <codmod>

#define PLUGIN "[COD] EXP dla najlepszych 3 graczy"
#define VERSION "0.6"
#define AUTHOR "pRED (edit by =ToRRent=)"

new gmsgSayText;

new cvar_exp_1miejsce;
new cvar_exp_2miejsce;
new cvar_exp_3miejsce;

new exp_1miejsce[33];
new exp_2miejsce[33];
new exp_3miejsce[33];

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);

cvar_exp_1miejsce = register_cvar("cod_exp1", "300"); // ilosc doswiadczenia za 1 miejsce
cvar_exp_2miejsce = register_cvar("cod_exp2", "200"); // ilosc doswiadczenia za 2 miejsce
cvar_exp_3miejsce = register_cvar("cod_exp3", "100"); // ilosc doswiadczenia za 3 miejsce

register_message(SVC_INTERMISSION, "Message_Intermission");


gmsgSayText = get_user_msgid("SayText");
}
public Message_Intermission(){
set_task(0.1, "przyznanie_doswiadczenia");
}
public przyznanie_doswiadczenia()
{
//uruchom podczas SVC_INTERMISSION (tuz przed zmiana mapy)
//Znajdz 3 najlepszych graczy z najwieksza liczba fragow i przyznaj doswiadczenie

new players[32], num;
get_players(players, num, "h");

new tempfrags, id;

new swapfrags, swapid;

new starfrags[3]; //0 - 3 miejsce / 1 - 2 miejsce / 2 - 1 miejsce
new starid[3];

for (new i = 0; i < num; i++)
{
id = players[i];
tempfrags = get_user_frags(id);
if ( tempfrags > starfrags[0] )
{
starfrags[0] = tempfrags;
starid[0] = id;
new exp_3miejsce = get_pcvar_num(cvar_exp_3miejsce)
cod_set_user_xp(id, cod_get_user_xp(id)+exp_3miejsce);
if ( tempfrags > starfrags[1] )
{
swapfrags = starfrags[1];
swapid = starid[1];
starfrags[1] = tempfrags;
starid[1] = id;
starfrags[0] = swapfrags;
starid[0] = swapid;
new exp_2miejsce = get_pcvar_num(cvar_exp_2miejsce)
cod_set_user_xp(id, cod_get_user_xp(id)+exp_2miejsce);

if ( tempfrags > starfrags[2] )
{
swapfrags = starfrags[2];
swapid = starid[2];
starfrags[2] = tempfrags;
starid[2] = id;
starfrags[1] = swapfrags;
starid[1] = swapid;
new exp_1miejsce = get_pcvar_num(cvar_exp_1miejsce)
cod_set_user_xp(id, cod_get_user_xp(id)+exp_1miejsce);

}
}
}
}
new name[32];
new winner = starid[2];

if ( !winner )
return;

new line[100];
line[0] = 0x04;
formatex(line[1], 98, "Najlepsi gracze na tej mapie:");
ShowColorMessage(starid[2], MSG_BROADCAST, line);

line[0] = 0x04;

get_user_name(starid[2], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, "1. %s - %i Fragow (+500 dosw.)", name, starfrags[2], exp_1miejsce[id]);
ShowColorMessage(starid[2], MSG_BROADCAST, line);

get_user_name(starid[1], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, "2. %s - %i Fragow (+250 dosw)", name, starfrags[1], exp_2miejsce[id]);
ShowColorMessage(starid[2], MSG_BROADCAST, line);

get_user_name(starid[0], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, "3. %s - %i Fragow (+250 dosw.)", name, starfrags[0], exp_3miejsce[id]);

ShowColorMessage(starid[2], MSG_BROADCAST, line);
}
ShowColorMessage(id, type, message[])
{
message_begin(type, gmsgSayText, _, id);
write_byte(id);
write_string(message);
message_end();
}


Chciałbym dodać do tego dla dwóch pierwszych osób po 2 premium pointsy. Służy do tego biblioteka premiump.inc

Oto jej zawartość:

native premium_points_add(id, ile) // Zmiena Premium Pointsy na wartość ile
native premium_points_get(id) // Pobiera Premium Points'y
native premium_is_vip(id) // Sprawdza czy gracz jest vipem

Próbuję dodać w ten sposób.

Pod

#include <codmod>


Dodaję

#include <premiump>


Potem pod :

cod_set_user_xp(id, cod_get_user_xp(id)+exp_2miejsce);


Dodaję :

premium_points_add(id, 2);


Następnie podobnie robię z 1 miejscem. Po kompilacji plugin wcale nie działa. Macie jakieś pomysły jak to naprawić?
  • +
  • -
  • 0

#2 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 06.02.2012 18:44

a dobrze ci się kompiluje ? nie ma żadnych ostrzeżeń ?
Sprawdź dokładnie czy nie zgubiłeś jakiegoś nawiasu czy coś
  • +
  • -
  • 0

#3 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 06.02.2012 20:13

Wszystkie nawiasy są Ok. Kompiluje się bez żadnych błędów.

Oto co wychodzi po edycji:

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <colorchat>
#include <premiump>

#define PLUGIN "[COD] EXP dla najlepszych 3 graczy"
#define VERSION "0.7"
#define AUTHOR "pRED (edit by =ToRRent=)"

new player_xp[33] = 0 //Holds players experience

new gmsgSayText;

new cvar_exp_1miejsce;
new cvar_exp_2miejsce;
new cvar_exp_3miejsce;

new exp_1miejsce[33];
new exp_2miejsce[33];
new exp_3miejsce[33];

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);

cvar_exp_1miejsce = register_cvar("cod_exp1", "500"); // ilosc doswiadczenia za 1 miejsce
cvar_exp_2miejsce = register_cvar("cod_exp2", "250"); // ilosc doswiadczenia za 2 miejsce
cvar_exp_3miejsce = register_cvar("cod_exp3", "250"); // ilosc doswiadczenia za 3 miejsce

register_message(SVC_INTERMISSION, "Message_Intermission");


gmsgSayText = get_user_msgid("SayText");
}
public Message_Intermission(){
set_task(0.1, "przyznanie_doswiadczenia");
}
public przyznanie_doswiadczenia()
{
//uruchom podczas SVC_INTERMISSION (tuz przed zmiana mapy)
//Znajdz 3 najlepszych graczy z najwieksza liczba fragow i przyznaj doswiadczenie

new players[32], num;
get_players(players, num, "h");

new tempfrags, id;

new swapfrags, swapid;

new starfrags[3]; //0 - 3 miejsce / 1 - 2 miejsce / 2 - 1 miejsce
new starid[3];

for (new i = 0; i < num; i++)
{
id = players[i];
tempfrags = get_user_frags(id);
if ( tempfrags > starfrags[0] )
{
starfrags[0] = tempfrags;
starid[0] = id;
new exp_3miejsce = get_pcvar_num(cvar_exp_3miejsce)
cod_set_user_xp(id, cod_get_user_xp(id)+exp_3miejsce);
if ( tempfrags > starfrags[1] )
{
swapfrags = starfrags[1];
swapid = starid[1];
starfrags[1] = tempfrags;
starid[1] = id;
starfrags[0] = swapfrags;
starid[0] = swapid;
new exp_2miejsce = get_pcvar_num(cvar_exp_2miejsce);
cod_set_user_xp(id, cod_get_user_xp(id)+exp_2miejsce);
premium_points_add(id, 2);


if ( tempfrags > starfrags[2] )
{
swapfrags = starfrags[2];
swapid = starid[2];
starfrags[2] = tempfrags;
starid[2] = id;
starfrags[1] = swapfrags;
starid[1] = swapid;
new exp_1miejsce = get_pcvar_num(cvar_exp_1miejsce);
cod_set_user_xp(id, cod_get_user_xp(id)+exp_1miejsce);
premium_points_add(id, 2);

}
}
}
}
new name[32];
new winner = starid[2];

if ( !winner )
return;

ColorChat(id, GREEN, "Najlepsi gracze na tej mapie:");

get_user_name(starid[2], name, charsmax(name));
ColorChat(id, GREEN, "1. %s - %i Fragow (+500 dosw. i 2 PP)", name, starfrags[2])

get_user_name(starid[1], name, charsmax(name));
ColorChat(id, GREEN, "2. %s - %i Fragow (+250 dosw. i 2 PP)", name, starfrags[1])

get_user_name(starid[0], name, charsmax(name));
ColorChat(id, GREEN, "3. %s - %i Fragow (=250 dosw.)", name, starfrags[0])
}

  • +
  • -
  • 0

#4 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 06.02.2012 21:23

daj ten plik inc to sie cos wykombinuje

i sprawdź to:
#include <amxmodx>
#include <amxmisc>
#include <codmod>

#define PLUGIN "[COD] EXP dla najlepszych 3 graczy"
#define VERSION "0.6"
#define AUTHOR "pRED (edit by =ToRRent=)"

new gmsgSayText;

new cvar_exp_1miejsce;
new cvar_exp_2miejsce;
new cvar_exp_3miejsce;

new exp_1miejsce[33];
new exp_2miejsce[33];
new exp_3miejsce[33];

native premium_points_add(id, ile)
native premium_points_get(id)
native premium_is_vip(id)

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

cvar_exp_1miejsce = register_cvar("cod_exp1", "300"); // ilosc doswiadczenia za 1 miejsce
cvar_exp_2miejsce = register_cvar("cod_exp2", "200"); // ilosc doswiadczenia za 2 miejsce
cvar_exp_3miejsce = register_cvar("cod_exp3", "100"); // ilosc doswiadczenia za 3 miejsce

register_message(SVC_INTERMISSION, "Message_Intermission");


gmsgSayText = get_user_msgid("SayText");
}

public Message_Intermission()
{
set_task(0.1, "przyznanie_doswiadczenia");
}

public przyznanie_doswiadczenia()
{
//uruchom podczas SVC_INTERMISSION (tuz przed zmiana mapy)
//Znajdz 3 najlepszych graczy z najwieksza liczba fragow i przyznaj doswiadczenie

new players[32], num;
get_players(players, num, "h");

new tempfrags, id;

new swapfrags, swapid;

new starfrags[3]; //0 - 3 miejsce / 1 - 2 miejsce / 2 - 1 miejsce
new starid[3];

for (new i = 0; i < num; i++)
{
id = players[i];
tempfrags = get_user_frags(id);

if ( tempfrags > starfrags[0] )
{
starfrags[0] = tempfrags;
starid[0] = id;
new exp_3miejsce = get_pcvar_num(cvar_exp_3miejsce)
cod_set_user_xp(id, cod_get_user_xp(id)+exp_3miejsce);

if ( tempfrags > starfrags[1] )
{
swapfrags = starfrags[1];
swapid = starid[1];
starfrags[1] = tempfrags;
starid[1] = id;
starfrags[0] = swapfrags;
starid[0] = swapid;
new exp_2miejsce = get_pcvar_num(cvar_exp_2miejsce)
cod_set_user_xp(id, cod_get_user_xp(id)+exp_2miejsce);
premium_points_add(id, premium_points_get(id)+2)

if ( tempfrags > starfrags[2] )
{
swapfrags = starfrags[2];
swapid = starid[2];
starfrags[2] = tempfrags;
starid[2] = id;
starfrags[1] = swapfrags;
starid[1] = swapid;
new exp_1miejsce = get_pcvar_num(cvar_exp_1miejsce)
cod_set_user_xp(id, cod_get_user_xp(id)+exp_1miejsce);
premium_points_add(id, premium_points_get(id)+2);

}
}
}
}

new name[32];
new winner = starid[2];

if ( !winner )
return;

new line[100];
line[0] = 0x04;
formatex(line[1], 98, "Najlepsi gracze na tej mapie:");
ShowColorMessage(starid[2], MSG_BROADCAST, line);

line[0] = 0x04;

get_user_name(starid[2], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, "1. %s - %i Fragow (+500 dosw.)", name, starfrags[2], exp_1miejsce[id]);
ShowColorMessage(starid[2], MSG_BROADCAST, line);

get_user_name(starid[1], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, "2. %s - %i Fragow (+250 dosw)", name, starfrags[1], exp_2miejsce[id]);
ShowColorMessage(starid[2], MSG_BROADCAST, line);

get_user_name(starid[0], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, "3. %s - %i Fragow (+250 dosw.)", name, starfrags[0], exp_3miejsce[id]);

ShowColorMessage(starid[2], MSG_BROADCAST, line);
}

ShowColorMessage(id, type, message[])
{
message_begin(type, gmsgSayText, _, id);
write_byte(id);
write_string(message);
message_end();
}

  • +
  • -
  • 0

#5 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 07.02.2012 14:57

Misieq myślę że premium_points_add dodaje do obecnej wartości więc premium_points_get() nie przyda się
  • +
  • -
  • 0

#6 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 07.02.2012 20:14

W załączniku daje plik .inc

Zaraz wypróbuje Twój kod Misieq i dam znać czy działa.

@edit

Nadal nie działa :/ Plugin po zmianie w ogóle się nie rusza.

Załączone pliki


Użytkownik BoB0_ edytował ten post 07.02.2012 18:28

  • +
  • -
  • 0

#7 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 07.02.2012 20:42

może zła kolejność w plugin ini. ^^
  • +
  • -
  • 0

#8 krystek1299

    Zaawansowany

  • Zbanowany

Reputacja: 3
Nowy

  • Postów:117
  • Lokalizacja:Polska
Offline

Napisano 08.02.2012 11:46

Dopisz po prostu do amxx:
cod_exp1 "liczba"
cod_exp2 "liczba"
cod_exp3 "liczba"

#9 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 08.02.2012 18:54

@up i @upx2

To żeście dali czadu z tymi podpowiedziami. Co ma kolejność ? I jakim cudem mogę w cvarze dodać że chcę aby dodawało punkty premium ? Proszę was, pomyślcie zanim coś napiszecie.
  • +
  • -
  • 0

#10 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 08.02.2012 19:02

Co ma kolejność ?


w sumie to nie pomyślałem bo natywy są rejestrowane w plugin_natives i wrzucane na stos, skąd jednocześnie ma się do nich dostęp:P


  • +
  • -
  • 1

#11 krystek1299

    Zaawansowany

  • Zbanowany

Reputacja: 3
Nowy

  • Postów:117
  • Lokalizacja:Polska
Offline

Napisano 08.02.2012 21:37

Oj przepraszam...
Tak czytałem ,czytałem i jakoś głupote wywniskowałem ,może ten pomyliłem^^

#12 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 11.02.2012 10:19

Refresh.
  • +
  • -
  • 0

#13 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 13.02.2012 17:27

Jest różnica, ten plugin od premium powinien być wyżej od nagród w plugins.ini

a dodawanie cvarów do amxx nie robi absolutnie żadnego znaczenia
  • +
  • -
  • 1




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

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