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

EXP dla trzech najlepszychwzględem fragów pod koniec mapy


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

#1 naXe

    Banned

  • Zbanowany

Reputacja: 269
Wszechwidzący

  • Postów:1 489
  • GG:
  • Steam:steam
  • Lokalizacja:Kwidzyn
Offline

Napisano 19.12.2011 18:22

Witam

Chciałem przerobić to: http://amxx.pl/topic...post__p__280087 pod Diablo.

Zmieniłem na to:

public przyznanie_doswiadczenia()
{
new players[32], num;
get_players(players, num, "h");
new tempfrags, id;
new swapfrags, swapid;
new starfrags[3];
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;
Give_Xp(id, get_cvar_num("exp_3miejsce"));
if ( tempfrags > starfrags[1] )
{
swapfrags = starfrags[1];
swapid = starid[1];
starfrags[1] = tempfrags;
starid[1] = id;
starfrags[0] = swapfrags;
starid[0] = swapid;
Give_Xp(id, get_cvar_num("exp_2miejsce"));
if ( tempfrags > starfrags[2] )
{
swapfrags = starfrags[2];
swapid = starid[2];
starfrags[2] = tempfrags;
starid[2] = id;
starfrags[1] = swapfrags;
starid[1] = swapid;
Give_Xp(id, get_cvar_num("exp_1miejsce"));
}
}
}
}
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 (+%d dosw.)", name, starfrags[2], exp_1miejsce[id])
get_user_name(starid[1], name, charsmax(name));
ColorChat(id, GREEN, "2. %s - %i Fragow (+%d dosw.)", name, starfrags[1], exp_2miejsce[id])
get_user_name(starid[0], name, charsmax(name));
ColorChat(id, GREEN, "3. %s - %i Fragow (+%d dosw.)", name, starfrags[0], exp_3miejsce[id])
}


Wszystko dobrze się kompiluje, ale nie rozdaje doświadczenia i nie ma info pod koniec mapy, co jest źle ?

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 19.12.2011 21:23

dodałeś

register_message(SVC_INTERMISSION, "Message_Intermission");


}
public Message_Intermission(){
		set_task(0.1, "przyznanie_doswiadczenia");
}
?
  • +
  • -
  • 0

#3 naXe

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 269
Wszechwidzący

  • Postów:1 489
  • GG:
  • Steam:steam
  • Lokalizacja:Kwidzyn
Offline

Napisano 19.12.2011 21:50

Tak, pozostałe public'i mam

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 19.12.2011 23:07

register_cvar exp_1miejsce i reszty masz ?
logi jakieś są ?
  • +
  • -
  • 0

#5 naXe

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 269
Wszechwidzący

  • Postów:1 489
  • GG:
  • Steam:steam
  • Lokalizacja:Kwidzyn
Offline

Napisano 20.12.2011 00:29

Wszystko mam.

W logi czyściusieńkie.

#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 20.12.2011 00:58

skompilowałeś i wrzuciłeś na serwer :D ?

ten kod jest też dość dziwnie zrobiony bo osoba która będzie pierwsza dostanie exp za 3 , 2 i 1 miejsce
  • +
  • -
  • 0

#7 Kukol

    Zaawansowany

  • Zbanowany

Reputacja: 6
Nowy

  • Postów:113
  • Lokalizacja:Katowice
Offline

Napisano 20.12.2011 01:24

Pewnie kolega ma Galileo, który blokuje
register_message(SVC_INTERMISSION, "Message_Intermission");


#8 naXe

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 269
Wszechwidzący

  • Postów:1 489
  • GG:
  • Steam:steam
  • Lokalizacja:Kwidzyn
Offline

Napisano 20.12.2011 07:30

Tak mam Galileo, ale ustawiłem chattime na 5 więc chyba powinno się wyświetlić i rozdać punkty.

#9 Mores

    Życzliwy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:39
  • GG:
  • Imię:Szymon
  • Lokalizacja:Chudow
Offline

Napisano 20.12.2011 07:47

Ech... Masz błąd. Zrobiłem sobie to z ciekawości. :)

Tu wszystko działa jak należy.

#include <amxmodx>
#include <amxmisc>
#include <diablomod>
#define PLUGIN "[Diablo] EXP dla najlepszych 3 graczy"
#define VERSION "1.0"
#define AUTHOR "wlasciciel"

new gmsgSayText;
new cvar_exp_1miejsce, cvar_exp_2miejsce, cvar_exp_3miejsce;
new exp_1miejsce, exp_2miejsce, exp_3miejsce;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);

cvar_exp_1miejsce = register_cvar("db_exp1", "200"); // ilosc expa za 3 miejsce
cvar_exp_2miejsce = register_cvar("db_exp2", "100"); // ilosc expa za 3 miejsce
cvar_exp_3miejsce = register_cvar("db_exp3", "65"); // ilosc expa za 3 miejsce

register_message(SVC_INTERMISSION, "Message_Intermission");
gmsgSayText = get_user_msgid("SayText");

exp_1miejsce = get_pcvar_num(cvar_exp_1miejsce);
exp_2miejsce = get_pcvar_num(cvar_exp_2miejsce);
exp_3miejsce = get_pcvar_num(cvar_exp_3miejsce);
}
public Message_Intermission(){
set_task(0.1, "przyznanie_doswiadczenia");
}
public przyznanie_doswiadczenia()
{
//odpowiada to za fukcję znalezienia 3 najlepszych graczy mapy i wyswietleniu komunikatu
new players[32], num;
get_players(players, num, "h");
new tempfrags, id;
new swapfrags, swapid;
new starfrags[3];
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;
db_set_user_xp(starid[0], db_get_user_xp(starid[0])+exp_3miejsce);
if ( tempfrags > starfrags[1] )
{
swapfrags = starfrags[1];
swapid = starid[1];
starfrags[1] = tempfrags;
starid[1] = id;
starfrags[0] = swapfrags;
starid[0] = swapid;
db_set_user_xp(starid[1], db_get_user_xp(starid[1])+exp_2miejsce);
if ( tempfrags > starfrags[2] )
{
swapfrags = starfrags[2];
swapid = starid[2];
starfrags[2] = tempfrags;
starid[2] = id;
starfrags[1] = swapfrags;
starid[1] = swapid;
db_set_user_xp(starid[2], db_get_user_xp(starid[2])+exp_1miejsce);
}
}
}
}
new name[32];
new winner = starid[2];
if ( !winner )
return;
new line[100];
line[0] = 0x04;
formatex(line[1], 98, "Gratulacje dla najlepszych graczy!");
ShowColorMessage(starid[2], MSG_BROADCAST, line);
line[0] = 0x04;
get_user_name(starid[2], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, " %s zdobyl %i Fragow - Dostaje %d dosw", name, starfrags[2], exp_1miejsce);
ShowColorMessage(starid[2], MSG_BROADCAST, line);
get_user_name(starid[1], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, " %s zdobyl %i Fragow - Dostaje %d dosw", name, starfrags[1], exp_2miejsce);
ShowColorMessage(starid[2], MSG_BROADCAST, line);
get_user_name(starid[0], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, " %s zdobyl %i Fragow - Dostaje %d dosw", name, starfrags[0], exp_3miejsce);
ShowColorMessage(starid[2], MSG_BROADCAST, line);
}
ShowColorMessage(id, type, message[])
{
message_begin(type, gmsgSayText, _, id);
write_byte(id);
write_string(message);
message_end();
}

Użytkownik Mores edytował ten post 20.12.2011 07:49

  • +
  • -
  • 2

#10 naXe

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 269
Wszechwidzący

  • Postów:1 489
  • GG:
  • Steam:steam
  • Lokalizacja:Kwidzyn
Offline

Napisano 20.12.2011 20:25

Twoje się w niczym nie różni, od tego mojego, bo ty dałeś to jako osobny plugin i jeszcze do diablo z natywami by Peyote.




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

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