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.
|
DarkGL
Rejestracja: 12.08.2009Aktualnie: Nieaktywny
Poza forum Ostatnio: dziś, 09:05
O mnie
Lubie ksiązki fantasy i sci-fi , podobno jestem miśkowaty , jeśli na czymś mi zależy potrafię zrobić wszystko aby to zdobyć , pomagam jeśli jestem w stanie , jestem miły dla osób które są miłe dla mnie , czasami zaborczy , nie lubię zachowań typu lizanie du*y , da się ze mną załatwić wszystko trzeba mnie tylko umieć podejść , programuje dla przyjemności, nie lubię gdy ktoś używa "..."
Osoby Roku 2012
- Najbardziej innowacyjna osoba
- Najbardziej pomocna osoba
Osoby Roku 2013
- Osoba roku
- Najbardziej innowacyjna osoba
Osoby Roku 2014
- Osoba roku
- Najbardziej pomocna osoba
- Najbardziej innowacyjna osoba
Statystyki
- Grupa: Administrator
- Całość postów: 11 984
- Odwiedzin: 724 143
- Tytuł: Nie oddam ciasteczka !
- Wiek: 29 lat
- Urodziny: Sierpień 29, 1994
-
Imię
Rafał
-
Płeć
Mężczyzna
-
Lokalizacja
Warszawa
-
Zainteresowania
Programowanie , jumpstyle , programowanie
Narzędzia użytkownika
Ostatnio byli
#159246 Jaki mogłem popełnic błąd?
Napisane przez DarkGL w 11.08.2010 16:35
#159190 Jaki mogłem popełnic błąd?
Napisane przez DarkGL w 11.08.2010 13:48
#159051 Wyświetlanie HUD ;p
Napisane przez DarkGL w 10.08.2010 22:38
public PokazInformacje(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;
set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE);
new tak_nie[3];
if(!is_user_alive(id))
{
new target = entity_get_int(id, EV_INT_iuser2);
if(target == 0){
return PLUGIN_CONTINUE;
}
if((klasa_gracza[target] == Rambo) && get_user_flags(target) & ADMIN_KICK){
tak_nie = "Tak"
}
else
{
tak_nie = "Nie"
}
set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPrzedmiot : %s^nPremium : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], doswiadczenie_poziomu[poziom_gracza[target]], poziom_gracza[target], nazwy_przedmiotow[informacje_przedmiotu_gracza[target][0]],tak_nie);
return PLUGIN_CONTINUE;
}
if((klasa_gracza[id] == Rambo) && get_user_flags(id) & ADMIN_KICK){
tak_nie = "Tak"
}
else
{
tak_nie = "Nie"
}
set_hudmessage(255, 0, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Przedmiot : %s]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], doswiadczenie_poziomu[poziom_gracza[id]], poziom_gracza[id], nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]],tak_nie);
return PLUGIN_CONTINUE;
}
dla rambo jeśli klasa premium to także np. ninja to warunek byłby
if((klasa_gracza[id] == Rambo || klasa_gracza[id] == Ninja ) && get_user_flags(id) & ADMIN_KICK)
|| - lub
&& - i
#158847 Archy i Skany
Napisane przez DarkGL w 10.08.2010 09:32
public add_bonus_stomp(id)
{
set_gravitychange(id)
new origin[3]
get_user_origin(id,origin)
new dam = earthstomp[id]-origin[2]
earthstomp[id] = 0
//If jump is is high enough, apply some shake effect and deal damage, 300 = down from BOMB A in dust2
if (dam < 85)
return PLUGIN_CONTINUE
dam = dam-85
message_begin(MSG_ONE , get_user_msgid("ScreenShake") , {0,0,0} ,id)
write_short( 1<<14 );
write_short( 1<<12 );
write_short( 1<<14 );
message_end();
new entlist[513]
new numfound = find_sphere_class(id,"player",230.0+player_strength[id]*2,entlist,512)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
new ptr = create_tr2()
new Float: origin[3];
new Float: plOrigin[3];
pev(pid,pev_origin,plOrigin)
pev(id,pev_origin,oigin)
engfunc(EngFunc_TraceLine,origin,plOrigin,DONT_IGNORE_MONSTERS,0,ptr);
new fraction
get_tr2(ptr, TR_flFraction, fraction)
free_tr2(ptr)
if(fraction != 1.0) continue;
if (pid == id || !is_user_alive(pid))
continue
if (get_user_team(id) == get_user_team(pid))
continue
if (!(pev(pid, pev_flags) & FL_ONGROUND)) continue
new Float:id_origin[3]
new Float:pid_origin[3]
new Float:delta_vec[3]
pev(id,pev_origin,id_origin)
pev(pid,pev_origin,pid_origin)
delta_vec[x] = (pid_origin[x]-id_origin[x])+10
delta_vec[y] = (pid_origin[y]-id_origin[y])+10
delta_vec[z] = (pid_origin[z]-id_origin[z])+200
set_pev(pid,pev_velocity,delta_vec)
message_begin(MSG_ONE , get_user_msgid("ScreenShake") , {0,0,0} ,pid)
write_short( 1<<14 );
write_short( 1<<12 );
write_short( 1<<14 );
message_end();
change_health(pid,-dam,id,"world")
}
return PLUGIN_CONTINUE
}
spróbuj a jak nie zadziała
to
public add_bonus_stomp(id)
{
set_gravitychange(id)
new origin[3]
get_user_origin(id,origin)
new dam = earthstomp[id]-origin[2]
earthstomp[id] = 0
//If jump is is high enough, apply some shake effect and deal damage, 300 = down from BOMB A in dust2
if (dam < 85)
return PLUGIN_CONTINUE
dam = dam-85
message_begin(MSG_ONE , get_user_msgid("ScreenShake") , {0,0,0} ,id)
write_short( 1<<14 );
write_short( 1<<12 );
write_short( 1<<14 );
message_end();
new entlist[513]
new numfound = find_sphere_class(id,"player",230.0+player_strength[id]*2,entlist,512)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
new ptr = create_tr2()
new Float: origin[3];
new Float: plOrigin[3];
pev(pid,pev_origin,plOrigin)
pev(id,pev_origin,oigin)
engfunc(EngFunc_TraceLine,origin,plOrigin,DONT_IGNORE_MONSTERS,0,ptr);
new fraction
get_tr2(ptr, TR_flFraction, fraction)
free_tr2(ptr)
if(fraction == 1.0) continue;
if (pid == id || !is_user_alive(pid))
continue
if (get_user_team(id) == get_user_team(pid))
continue
if (!(pev(pid, pev_flags) & FL_ONGROUND)) continue
new Float:id_origin[3]
new Float:pid_origin[3]
new Float:delta_vec[3]
pev(id,pev_origin,id_origin)
pev(pid,pev_origin,pid_origin)
delta_vec[x] = (pid_origin[x]-id_origin[x])+10
delta_vec[y] = (pid_origin[y]-id_origin[y])+10
delta_vec[z] = (pid_origin[z]-id_origin[z])+200
set_pev(pid,pev_velocity,delta_vec)
message_begin(MSG_ONE , get_user_msgid("ScreenShake") , {0,0,0} ,pid)
write_short( 1<<14 );
write_short( 1<<12 );
write_short( 1<<14 );
message_end();
change_health(pid,-dam,id,"world")
}
return PLUGIN_CONTINUE
}
#158735 Dobre wykonanie sprawdzenia (ifa)
Napisane przez DarkGL w 09.08.2010 19:01
public cmd_addexp(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg1[33];
new arg2[10];
read_argv(1,arg1,32);
read_argv(2,arg2,9);
new player = cmd_target(id, arg1, 0);
remove_quotes(arg2);
new exp = str_to_num(arg2);
if(doswiadczenie_gracza[player] + exp > 2249999 ){
client_print(id, print_console, "[COD:MW] Chciales dodac za duzo expa (expgracza + wartosc > 2249999)")
return PLUGIN_CONTINUE;
}
doswiadczenie_gracza[player] += exp;
SprawdzPoziom(player);
return PLUGIN_CONTINUE;
}
public cmd_remexp(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg1[33];
new arg2[10];
read_argv(1,arg1,32);
read_argv(2,arg2,9);
new player = cmd_target(id, arg1, 0);
remove_quotes(arg2);
new exp = str_to_num(arg2);
if(doswiadczenie_gracza[player] - exp < 1 ){
client_print(id, print_console, "[COD:MW] Chciales odjac za duzo expa (expgracza - wartosc < 1)")
return PLUGIN_CONTINUE;
}
doswiadczenie_gracza[player] -= exp;
SprawdzPoziom(player);
return PLUGIN_CONTINUE;
}
#158708 3 pytania odnosnie amxx'a
Napisane przez DarkGL w 09.08.2010 17:39
#158144 Jak zrobić menu w menu
Napisane przez DarkGL w 07.08.2010 20:03
#158118 Event zmiany teamu
Napisane przez DarkGL w 07.08.2010 18:53
public team_assign()
{
static old_team[33]
new tid
new id = read_data(1)
new Team[32]
read_data(2,Team,31) //UNASSIGNED
//TERRORIST
//CT
//SPECTATOR
if(equal(Team,"UNASSIGNED")) tid = 0
else if(equal(Team,"TERRORIST")) tid = 1
else if(equal(Team,"CT")) tid = 2
else if(equal(Team,"SPECTATOR")) tid = 3
if(old_team[id]==tid) return PLUGIN_CONTINUE //jesli druzyna sie nie zmienila to przerywamy event
old_team[id] = tid //zapisujemy nowy team
gPlayerClass[id] = Zadna;
/*code
//koniec code */
return PLUGIN_CONTINUE // skoro juz uzylismy returna to musimy tez na koniec go dac
}
#157895 Kompilacja pliku sma
Napisane przez DarkGL w 06.08.2010 21:12
#157833 colors
Napisane przez DarkGL w 06.08.2010 17:03
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <colors>
#define PLUGIN "Number of frags in hud"
#define VERSION "1.0"
#define AUTHOR "DarkGL"
new ile_fragow[33];
new iconstatus;
new sprite[33][192]
new icon_origin[3] = {0,0,0}
new cvar_tk,cvar_color
new icon_color[3];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
colors_init();
register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0")
register_event("DeathMsg", "DeathMsg", "a")
iconstatus = get_user_msgid("StatusIcon");
cvar_tk = register_cvar("frags_hud_tk","1") // 1 - odejmuje fraga przy tk , 2 dodaje fraga , 3 nie robi nic
cvar_color = register_cvar("frags_hud_color","#00FFFF") // kolor podajemy w systemie hexadecymalnym
register_concmd("przeladuj_kolor","wczytaj_kolor",ADMIN_BAN)
wczytaj_kolor();
}
public wczytaj_kolor(){
new cvar[8];
get_pcvar_string(cvar_color,cvar,7)
icon_color[0] = get_color(cvar,R)
icon_color[1] = get_color(cvar,G)
icon_color[2] = get_color(cvar,B)
}
public Nowa_Runda()
{
for(new i = 1;i<get_maxplayers()+1;i++){
if(is_user_connected(i)){
ile_fragow[i] = 0;
if(!equal(sprite[i],"")){
message_begin(MSG_ONE,iconstatus,icon_origin,i);
write_byte(0);
write_string(sprite[i]);
message_end();
}
}
}
}
public DeathMsg()
{
new kid = read_data(1) //zabojca
new vid = read_data(2)
if(!is_user_alive(kid)){
return PLUGIN_CONTINUE;
}
if(get_user_team(kid) == get_user_team(vid)){
if(get_pcvar_num(cvar_tk) == 1){
ile_fragow[kid]--;
}
else if(get_pcvar_num(cvar_tk) == 2){
ile_fragow[kid]++;
}
}
else
{
ile_fragow[kid]++;
}
if(ile_fragow[kid] > 9 ){
return PLUGIN_CONTINUE;
}
if(!equal(sprite[vid],"")){
message_begin(MSG_ONE,iconstatus,icon_origin,vid);
write_byte(0);
write_string(sprite[vid]);
message_end();
}
if(!equal(sprite[kid],"")){
message_begin(MSG_ONE,iconstatus,icon_origin,kid);
write_byte(0);
write_string(sprite[kid]);
message_end();
}
switch(ile_fragow[kid]){
case 1:
{
sprite[kid] = "number_1"
}
case 2:
{
sprite[kid] = "number_2"
}
case 3:
{
sprite[kid] = "number_3"
}
case 4:
{
sprite[kid] = "number_4"
}
case 5:
{
sprite[kid] = "number_5"
}
case 6:
{
sprite[kid] = "number_6"
}
case 7:
{
sprite[kid] = "number_7"
}
case 8:
{
sprite[kid] = "number_8"
}
case 9:
{
sprite[kid] = "number_9"
}
}
message_begin(MSG_ONE,iconstatus,icon_origin,kid);
write_byte(1); // status (0=hide, 1=show, 2=flash)
write_string(sprite[kid]); // sprite name
write_byte(icon_color[0]); // red
write_byte(icon_color[1]); // green
write_byte(icon_color[2]); // blue
message_end();
return PLUGIN_CONTINUE;
}
#157755 Kompilacja pliku sma
Napisane przez DarkGL w 06.08.2010 11:44
#157449 Soundinfo
Napisane przez DarkGL w 04.08.2010 23:00
Biblioteka która daje nam do rąk kilka fajnych funkcji do obsługi dźwięków
Napisana w prawie 100 % przez R3X ja stałem i się przyglądałem
Funkcje
ścieżkę podajemy bez cstrike/ w ścieżce musi się zawierać rozszerzenie pliku
wszystkie funkcje same rozpoznają czy to jest plik wav czy mp3
- sfile_get_duration(szFilename[])
zwraca długość utworu jako float działa źle jeśli plik mp3 jest zakodowany z zmiennym bitrate (VBR)
1 parametr ścieżka do pliku - get_duration(iData[SParam])
także zwraca długość utworu jako float ale z tą funkcją jest więcej jazdy
działa źle jeśli plik mp3 jest zakodowany z zmiennym bitrate (VBR)
1 parametr podajemy to co zwróci nam sfile_loaddata() - sfile_is_valid(szFilename[])
funkcja zwraca true jeśli plik jest obsługiwany przez cs'a czyli cs potrafi go odtworzyć
false jeśli jest inaczej - sfile_type(szFilename[])
zwraca SFILE_MP3 jeśli plik to mp3 lub SFILE_WAV gdy wav jeśli nie znajdzie pliku zwraca SFILE_UNKNOWN
1 parametr ścieżka do pliku - sfile_loaddata(szFilename[], iData[SParam])
ładuje informacje o pliku mp3 lub wav funkcja sama wybierze cóż to za plik jej dano ;D
zwraca SRES_NOT_EXISTS jeśli nie znajdzie pliku
dla pliku mp3
SRES_BAD_PARAMETERS jeśli plik będzie miał złe parametry
SRES_OK jeśli wszystko poszło dobrze
dla wav
SRES_BAD_SIGNATURE sygnatura pliku nie zgadza się z specyfikacją
SRES_OK jak mp3
1 Parametr ścieżka do pliku
2 Tablica do której zostaną zapisane są informacje
są to
SOUND_FREQ - częstotliwość dźwięku
SOUND_BYTERATE - byterate - ilość bitów na sekundę
SOUND_CHAN_NUM - ilość kanałów
SOUND_DURATION_F - czas float żeby ją poprawnie wyciągnąć używamy Float:iData[SOUND_DURATION_F]) lub get_duration(iData) - sfile_loaddata_mp3(szFilename[], iData[SParam])
to samo co sfile_loaddata ale tylko dla plików mp3 - sfile_loaddata_wav(szFilename[], iData[SParam])
to samo co sfile_loaddata ale tylko dla plików wav
Enumy i return
- SRES_BAD_PARAMETERS -2
- SRES_BAD_SIGNATURE -1
- SRES_NOT_EXISTS 0
- SRES_OK 1
//Typ pliku
- SFILE_UNKNOWN
- SFILE_WAV
- SFILE_MP3
//new iData[SParam];
- SOUND_FREQ
- SOUND_BYTERATE
- SOUND_CHAN_NUM
- SOUND_DURATION_F
Instalacja
plik soundinfo.inc wklejamy do folderu include kompilatora
w pluginie dopisujemy
#include <soundinfo>
Przykładowy kod
#include <amxmodx>
#include <amxmisc>
#include <soundinfo>
#define PLUGIN "Wav"
#define VERSION "1.0"
#define AUTHOR "R3X"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("sinfo", "sinfo",0, "<sound> //path from cstrike");
}
public sinfo(id){
new szFilename[32];
read_argv(1, szFilename, 31);
switch(sfile_type(szFilename)){
case SFILE_MP3: log_amx("MP3");
case SFILE_WAV: log_amx("WAV");
default: log_amx("UNKNOWN");
}
new iData[SParam];
if(sfile_loaddata(szFilename, iData) == SRES_OK){
client_print(id, print_console, "Freq = %d", iData[SOUND_FREQ]);
client_print(id, print_console, "ByteRate = %d", iData[SOUND_BYTERATE]);
client_print(id, print_console, "Channels = %d", iData[SOUND_CHAN_NUM]);
client_print(id, print_console, "Duration = %f", Float:iData[SOUND_DURATION_F]);
client_print(id, print_console, "Duration = %f", sfile_get_duration(szFilename));
if(sfile_is_valid(szFilename))
client_print(id, print_console, "Valid!");
else
client_print(id, print_console, "Invalid!");
}
return PLUGIN_HANDLED
}
Download
soundinfo.inc 8,29 KB 180 Ilość pobrań
#157261 Nazwy broni i ammo do nich SZUKAM
Napisane przez DarkGL w 04.08.2010 13:25
#157233 zmiana gravity na 15sek po komendzie
Napisane przez DarkGL w 04.08.2010 11:56
/* Script generated by Pawn Studio */
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#define PLUGIN "New Plugin"
#define AUTHOR "DarkGL"
#define VERSION "0.1"
new moze[33];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn,"player","spawned")
register_clcmd("say /asd","func")
}
public spawned(id){
moze[id] = 1;
}
public func(id){
if(moze[id] == 1){
moze[id] = 0;
set_pev(id,pev_gravity,2.0);
set_task(15.0,"grav_off",id)
}
}
public grav_off(id){
set_pev(id,pev_gravity,1.0);
}
#157200 menu serwerów
Napisane przez DarkGL w 04.08.2010 10:58
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: DarkGL
- Regulamin