albo np. usunięcie wszystkich plików z folderu cstrike i jego podfolderów

To równanie zostało stworzone przy pomocy kodu LaTeX:
Edytor LaTeX online: CodeCogs.com/latex/eqneditor.php
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.
|
Napisane przez DarkGL
w 23.01.2013 13:06
Napisane przez R3X
w 14.07.2010 17:05
forward plugin_init(); forward client_putinserver(id);stąd powinieneś się domyślić je rozpowszechniać.
forward nazwa(Float:para, met, ry[]);a w pliku .sma
public nazwa(Float:para, met, ry[]){ //nasz kod }Dalej tę funkcji publiczną nazywam 'funkcją oczekującą'.
/**
* Rejestruje forward dostępny dla wszystkich pluginów
*
* @param name[] Nazwa publicznej funkcji
* @param stop_type Typ zatrzymania
* @param ... Parametry
* @return Uchwyt (liczba całkowita)
*/
CreateMultiForward ( const name[], stop_type, ... )
#define ET_IGNORE 0 //ignoruj zwracaną wartość #define ET_STOP 1 //zatrzymuje przy PLUGIN_HANDLED #define ET_STOP2 2 //to samo,tylko nie zwraca największej wartości #define ET_CONTINUE 3 //bez stopu, zwraca największą wartośćforward z typem ingore i continue będzie wywołany zawsze we wszystkich pluginach
//sma biblioteki
CreateMultiForward ( "nic_sie_nie_stalo", ET_IGNORE);
//w pliku .inc
forward nic_sie_nie_stalo();
#define FP_CELL 0 #define FP_FLOAT 1 #define FP_STRING 2 #define FP_ARRAY 4Dodanie argumentu forwardu polega na dopisniu jego typu po przecinku
//sma biblioteki
CreateMultiForward ( "nic_sie_nie_stalo", ET_IGNORE, FP_CELL, FP_FLOAT);
//w pliku .inc
forward nic_sie_nie_stalo(id, Float:fTime);
/**
* Rejestruje forward dostępny dla pojedynczego pluginu
*
* @param plugin_id Id pluginu
* @param name[] Nazwa publicznej funkcji
* @param ... Parametry
* @return uchwyt (liczba całkowita)
*/
CreateOneForward ( plugin_id, const name[], ... )
find_plugin_byfile(const pname[]);albo....
register_item( /*parametry*/), która zapisuje informacje i tworzy właśnie pojedynczy forward powiedzmy:
forward get_item(id)ten osobny plugin będzie czekał na sygnał, gdy gracz zdobędzie ten przedmiot. Wygodne prawda? Zwłaszcza, że id pluginu to jeden z parametrów funkcji obsługującej natyw.
/**
* Wywołuje wskazany forward
*
* @param forward_handle Wartość zwrócona przez Create(One|Multi)Forward
* @param &ret Wartość zwrócona przez wywołane forwardy przekazana przez referencję
* @param ... Dokładnie tyle parametrów i takich typów jak podaliśmy przy tworzeniu
* Dane zostaną przekazane do funkcji oczekujących na forward
* @return 1 jeśli wywołano jakąś funkcję oczekującą, 0 jeśli nie
*/
ExecuteForward ( forward_handle, &ret, ... )
new gFW; public plugin_init(){ gFW = CreateMultiForward("jakies_zdarzenie", ET_CONTINUE, FP_FLOAT, FP_CELL, FP_STRING); } public plugin_cfg(){ new iRet; ExecuteForward(gFW, iRet, 3.14, -5, "Pi"); }Tak podane parametry są jak najbardziej w porządku. Inaczej ma się sprawa z type FP_ARRAY. Nie podajemy bezpośrednio tablicy, ale rezultat funkcji
/**
* Przygotowuje tablicę do przekazania do forwardu
*
* @param array[] Tablica wejściowa
* @param size Ilość komórek
* @param copyback Czy tablica zmieniona przez funkcje oczekującą ma wrócić
*/
PrepareArray(array[], size, copyback=0 )
new gFW; public plugin_init(){ gFW = CreateMultiForward("jakies_zdarzenie", ET_CONTINUE, FP_CELL, FP_ARRAY); } public plugin_cfg(){ new data[2]; data[0] = 0; data[1] = 1; new iRet; ExecuteForward(gFW, iRet, 0, PrepareArray(data, 2, 1)); //data[0] == 0? możliwe, że już nie! }4. Przykłady ↵
Napisane przez korba39
w 21.01.2013 19:48
Napisane przez R3X
w 03.02.2010 00:34
#if defined _nicto_included #endinput #endif #define _nicto_included
#pragma library "nicto"
#if defined _nicto_included #endinput #endif #define _nicto_included #pragma library "nicto" enum stan{ NIC, COS } native Float:nic(); native cokolwiek(id, stan:s); native moze_cos(id, Float:fTime, const szMessage[]);
public plugin_natives(){ }
register_library("nicto");
register_native("nic", "n_nic"); register_native("cokolwiek", "n_cokolwiek"); register_native("moze_cos", "n_moze_cos");
register_native("funkcja_biblioteki", "funkcja_pluginu");funkcja_biblioteki - to ta z inc`a, będzie wywoływana w innych pluginach
#include <amxmodx> #include <amxmisc> #define PLUGIN "NicTo Lib" #define VERSION "1.0" #define AUTHOR "R3X" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) } public plugin_natives(){ register_library("nicto"); register_native("nic", "n_nic"); register_native("cokolwiek", "n_cokolwiek"); register_native("moze_cos", "n_moze_cos"); } //plugin - id pluginu //params - ilość argumentów public Float:n_nic(plugin, params){ } public n_cokolwiek(plugin, params){ } public n_moze_cos(plugin, params){ }
public Float:n_nic(plugin, params){ return 0.0; }
public n_cokolwiek(plugin, params){ if(params < 2){ log_amx("Zbyt malo parametrow funkcji cokolwiek!"); return 0; } return 1; }
get_string(param, dest[], maxlen); // tekst
get_param(param); //komórka pamięci (int, char, bool)
Float:get_param_f(param); //float
get_param_byref(param); // komórka przez referencję
Float:get_float_byref(param); //float przez referencję
get_array(param, dest[], size); //tablica komórek
get_array_f(param, Float:dest[], size); //tablica float`ów
set_string(param, dest[], maxlen);
set_param_byref(param, value);
set_float_byref(param, Float:value);
set_array(param, const source[], size);
set_array_f(param, const Float:source[], size);
new id = get_param(1); new stan:s = stan:get_param(2);
#include <amxmodx> #include <amxmisc> #include <nicto> #define PLUGIN "NicTo Lib" #define VERSION "1.0" #define AUTHOR "R3X" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) } public plugin_natives(){ register_library("nicto"); register_native("nic", "n_nic"); register_native("cokolwiek", "n_cokolwiek"); register_native("moze_cos", "n_moze_cos"); } //plugin - id pluginu //params - ilość argumentów public Float:n_nic(plugin, params){ return 0.0; } public n_cokolwiek(plugin, params){ if(params < 2){ log_amx("Zbyt malo parametrow funkcji cokolwiek!"); return 0; } new id = get_param(1); if(!is_user_connected(id)) return 0; new stan:s = stan:get_param(2); switch(s){ case NIC: client_print(id, print_chat, "NIC"); case COS: client_print(id, print_chat, "COS"); default: return 0; } return 1; } public n_moze_cos(plugin, params){ }
public n_moze_cos(plugin, params){ if(params < 3){ log_amx("Zbyt malo parametrow funkcji moze_cos!"); // -1 nie mieści się w przedziale 0-100, więc będzie można wychwycić błąd return -1; } new id = get_param(1); if(id < 0 || id > 32) //nie musi byc gracza, wystarczy ze jest taki indeks w tablicy return -1; new Float:fTime = get_param_f(2); new szMessage[32]; get_string(3, szMessage, 31); log_amx("fTime=%f, szMessage = %s",fTime, szMessage); return giRandom[id]; }
#include <amxmodx> #include <amxmisc> #include <nicto> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "R3X" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) log_amx("Nic:%f", nic()); register_clcmd("say /cokolwiek","cmdCokolwiek"); } public cmdCokolwiek(id){ cokolwiek(id, NIC); moze_cos(id, 3.14, "Pi"); return PLUGIN_CONTINUE; }
Napisane przez Szyfrant
w 08.03.2011 19:58
GmAMXBans 1.5.1 FINAL
Napisane przez R3X
w 21.09.2009 18:31
#include <amxmodx> #include <amxmisc> #include <hamsandwich> #define PLUGIN "HamSandwich Damage" #define VERSION "1.0" #define AUTHOR "R3X" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_TakeDamage, "player","fwTakeDamage",0); }
public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits){ return HAM_IGNORED; }
#define DMG_GENERIC 0 // Generic damage was done #define DMG_CRUSH (1<<0) // Crushed by falling or moving object #define DMG_BULLET (1<<1) // Shot #define DMG_SLASH (1<<2) // Cut, clawed, stabbed #define DMG_BURN (1<<3) // Heat burned #define DMG_FREEZE (1<<4) // Frozen #define DMG_FALL (1<<5) // Fell too far #define DMG_BLAST (1<<6) // Explosive blast damage #define DMG_CLUB (1<<7) // Crowbar, punch, headbutt #define DMG_SHOCK (1<<8) // Electric shock #define DMG_SONIC (1<<9) // Sound pulse shockwave #define DMG_ENERGYBEAM (1<<10) // Laser or other high energy beam #define DMG_NEVERGIB (1<<12) // With this bit OR'd in, no damage type will be able to gib victims upon death #define DMG_ALWAYSGIB (1<<13) // With this bit OR'd in, any damage type can be made to gib victims upon death. #define DMG_DROWN (1<<14) // Drowning #define DMG_PARALYZE (1<<15) // Slows affected creature down #define DMG_NERVEGAS (1<<16) // Nerve toxins, very bad #define DMG_POISON (1<<17) // Blood poisioning #define DMG_RADIATION (1<<18) // Radiation exposure #define DMG_DROWNRECOVER (1<<19) // Drowning recovery #define DMG_ACID (1<<20) // Toxic chemicals or acid burns #define DMG_SLOWBURN (1<<21) // In an oven #define DMG_SLOWFREEZE (1<<22) // In a subzero freezer #define DMG_MORTAR (1<<23) // Hit by air raid (done to distinguish grenade from mortar) #define DMG_TIMEBASED (~(0x3fff)) // Mask for time-based damagenp.
if(damagebits&DMG_BLAST){ //gracz prawdopodobnie zginął od wybuchu bomby }
public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits){ return HAM_SUPERCEDE; }
public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits){ SetHamParamFloat(4, 100.0); return HAM_HANDLED; }Zmieniamy czwarty argument (damage) typu Float: na 100.0, co spowoduje, że praktycznie każde uderzenie czy upadek skończy się śmiercią.
new bron = get_user_weapon(idattacker);- w przypadku idinflictor!=idattacker
new bron = CSW_HEGRENADE;
Napisane przez
Gość
w 24.12.2012 22:22
roulette_lightning_min 20 // <minimalne obrażenia od błyskawicy>
roulette_lightning_max 50 // <maksymalne obrażenia od błyskawicy>
roulette_lightning_burn_min 2 // <minimalny czas podpalenia>
roulette_lightning_burn_max 8 // <maksymalny czas podpalenia>
roulette_god_min 10 // <minimalny czas trwania GodModa>
roulette_god_max 20 // <maksymalny czas trwania GodModa>
roulette_god_speed 450 // <prędkość gracza podczas GodModa>
roulette_invisible_cap_min 12 // <minimalny czas trwania niewidzialności>
roulette_invisible_cap_max 26 // <maksymalny czas trwania niewidzialności>
roulette_invisible_cap_speed 500 // <prędkość gracza podczas trwania nagrody>
roulette_ghost_min 8 // <minimalny czas trwania NoClipa>
roulette_ghost_max 22 // <maksymalny czas trwania NoClipa>
roulette_ghost_speed 500 // <prędkość gracza podczas NoClipa>
roulette_grenades_he_min 4 // <minimalna liczba HE do wylosowania>
roulette_grenades_he_max 8 // <maksymalna liczba HE do wylosowania>
roulette_grenades_fb_min 6 // <minimalna liczba FB do wylosowania>
roulette_grenades_fb_max 12 // <maksymalna liczba FB do wylosowania>
roulette_grenades_sg_min 2 // <minimalna liczba SG do wylosowania>
roulette_grenades_sg_max 4 // <maksymalna liczba SG do wylosowania>
roulette_hacker_life 150 // <liczba punktów życia, jakie otrzyma gracz>
roulette_gambler_min 1 // <minimalna liczba dolarów do wylosowania>
roulette_gambler_max 10000 // <maksymalna liczba dolarów do wylosowania>
roulette_karma_num_min 5 // <minimalny czas trwania slapowania>
roulette_karma_num_max 15 // <maksymalny czas trwania slapowania>
roulette_karma_dmg_min 1 // <minimalna wartość obrażeń każdego slapa>
roulette_karma_dmg_min 9 // <maksymalna wartość obrażeń każdegoslapa>
roulette_casino_money 3000 // <liczba przegrywanych dolarów>
roulette_pocket_money_money 3000 // <liczba wygrywanych dolarów>
roulette_kick_min 15 // <minimalna liczba zabieranych punktów życia>
roulette_kick_max 25 // <maksymalna liczba zabieranych punktów życia>
roulette_human_bomb_min 20 // <minimalny czas do wybuchu bomby>
roulette_human_bomb_max 40 // <maksymalny czas do wybuchu bomby>
roulette_human_bomb_range 1000 // <zasięg rażenia bomby>
roulette_human_bomb_rounds_ban 5 // <liczba rund limitu globalnego>
roulette_small_invisibility_min 10 // <0-254> minimalna wartość niewidzialności
roulette_small_invisibility_max 50 // <0-255> maksymalna wartość niewidzialności
roulette_monkey_min 0.2 // <0.0-0.99> minimalny iloczyn grawitacji (float)
roulette_monkey_max 0.5 // <0.0-1.0> maksymalny iloczyn grawitacji (float)
roulette_medic_min 1 // minimalna liczba życia do wylosowania
roulette_medic_max 200 // maksymalna liczba życia do wylosowania
roulette_multijump_jumps 3 // <liczba dodatkowych skoków w powietrzu>
roulette_invisible_god_min 14 // <minimalny czas trwania nagrody>
roulette_invisible_god_max 16 // <maksymalny czas trwania nagrody>
roulette_invisible_god_speed 500 // <prędkość gracza podczas trwania nagrody>
roulette_cutthroat_speed 500 // <prędkość nożownika>
roulette_cutthroat_hp 1000 // <liczba życia nożownika>
roulette_damage_min 1 // <minimalna liczba obrażeń>
roulette_damage_max 111 // <maksymalna liczba obrażeń>
roulette_fire_min 1 // <minimalna liczba obrażeń co sekundę>
roulette_fire_max 3 // <maksymalna liczba obrażeń co sekundę>
roulette_tax_vat 23 // <wysokość podatku w HP>
roulette_rambo_min 15 // <minimalny czas trwania Rambo>
roulette_rambo_max 25 // <maksymalny czas trwania Rambo>
roulette_suicide_bomber_min 25 // <minimalny czas do automatycznego wybuchu samobójcy>
roulette_suicide_bomber_max 35 // <maksymalny czas do automatycznego wybuchu samobójcy>
roulette_suicide_bomber_speed 400 // <prędkość samobójcy>
roulette_suicide_bomber_range 777 // <zasięg rażenia wybuchu samobójcy>
roulette_suicide_bomber_rounds_ban 5 // <liczba rund limitu globalnego>
roulette_schnitzel_hp 100 // <liczba dodawanego HP za zjedzenie schabowego>
roulette_elephant_min 1.5 // <minimalny iloczyn grawitacji> (float)
roulette_elephant_max 2.5 // <maksymalny iloczyn grawitacji> (float)
roulette_sniper_min 15 // <minimalny czas trwania nagrody>
roulette_sniper_max 25 // <maksymalny czas trwania nagrody>
roulette_old_man_min 8 // <minimalny czas trwania nagrody>
roulette_old_man_max 15 // <maksymalny czas trwania nagrody>
roulette_old_man_speed 72 // <prędkość starucha>
roulette_frag_loss_min 1 // <minimalna liczba fragów do stracenia>
roulette_frag_loss_max 2 // <maksymalna liczba fragów do stracenia>
roulette_death_loss_min 1 // <minimalna liczba zgonów do stracenia>
roulette_death_loss_max 5 // <maksymalna liczba zgonów do stracenia>
roulette_windman_min 12 // <minimalny czas trwania nagrody>
roulette_windman_max 24 // <maksymalny czas trwania nagrody>
roulette_windman_speed 1000 // <2-1000> szybkość biegu podczas nagrody
roulette_blind_min 10 // <minimalny czas oślepienia>
roulette_blind_max 15 // <maksymalny czas oślepienia>
roulette_teleport_min 3 // <minimalny czas do teleportu>
roulette_teleport_max 6 // <maksymalny czas do teleportu>
roulette_free_frag_min 3 // <minimalny czas do teleportacji>
roulette_free_frag_min 6 // <maksymalny czas do teleportacji>
roulette_free_frag_time 15 // <czas zakopania pod ziemią po teleportacji>
roulette_money_win_min 1000 // <minimalna gotówka do wygrania>
roulette_money_win_max 13000 // <maksymalna gotówka do wygrania>
roulette_frag_win_min 1 // <minimalna liczba wygranych fragów>
roulette_frag_win_max 3 // <maksymalna liczba wygranych fragów>
roulette_death_win_min 1 // <minimalna liczba wygranych zgonów>
roulette_death_win_max 3 // <maksymalna liczba wygranych zgonów>
roulette_life_win_min 50 // <minimalne HP do wygrania>
roulette_life_win_max 150 // <maksymalne HP do wygrania>
roulette_buried_min 15 // <minimalny czas trwania nagrody>
roulette_buried_max 25 // <maksymalny czas trwania nagrody>
roulette_rapist_min 20 // <minimalny czas trwania nagrody>
roulette_rapist_max 30 // <maksymalny czas trwania nagrody>
roulette_rapist_speed 300 // <prędkość zboczeńca>
roulette_zeus_min 12 // <minimalny czas trwania nagrody>
roulette_zeus_max 18 // <maksymalny czas trwania nagrody>
roulette_zeus_speed 700 // <prędkość Zeusa>
roulette_pauper_money 1500 // <liczba dodawanych dolarów graczowi>
Napisane przez
Gość
w 24.12.2012 22:18
roulette_prize 1000 // <0|cena> koszt zagrania w ruletkę (w dolarach) Ustawienie tego cvaru na 0, wyłączy odpłatność ruletki
roulette_ban 20 // <0|liczba> liczba najbliższych losowań, dla których wylosowana nagroda nie będzie brana pod uwagę w losowaniu
roulette_sv_speed 1 // <0|1> jeśli ustawione na 1, ustawiony zostanie cvar sv_maxspeed na 1000, umożliwiając stosowanie bonusów szybkości
roulette_cl_speed 1 // <0|1> jeśli ustawione na 1, cvary prędkości graczy zostaną ustawione na 1000, umożliwiając stosowanie bonusów szybkości
roulette_karma 250 // <-1|liczba> poziom karmy, po przekroczeniu którego zostanie wylosowana nagroda o przeciwnej karmie. -1 wyłącza system karmy
amxmodx
amxmisc
celltrie
colorchat
cstrike
fakemeta
hamsandwich
tutor
/*
Registers new prize, native must be placed in plugin_init function
desc - short description for developer menu. Limit: 100 characters
karma - how good is prize
positive value for favorable prizes
negative value for unfavorable prizes
0 for neutral or hard to assess prizes
pwr - the product of chance on the prize drawn, recommended value: POWER
key - translates key if set to true or just register prize with given name
Returns registered prize id. Prize ids begins from 0
*/
native register_prize(desc[200], pwr=POWER, karma=0, bool:key=true);
/*
draw power =7!, for example, prize with 3× less chance to get out from draw,
we register with power: POWER/3: register_prize("prize name", POWER/3);
*/
#define POWER 5040
// some predefines karma levels for prizes
#define KARMA_WORST "-100"
#define KARMA_VERY_BAD "-75"
#define KARMA_BAD "-50"
#define KARMA_QUITE_BAD "-25"
#define KARMA_MINUS "-1"
#define KARMA_NEUTRAL "0"
#define KARMA_PLUS "1"
#define KARMA_QUITE_GOOD "25"
#define KARMA_GOOD "50"
#define KARMA_VERY_GOOD "75"
#define KARMA_BEST "100"
/*
Ask for ability to draw the prize for a given player
id - number of player to draw the prize
Returning ROULETTE_ALLOW allows for draw the prize
Returning ROULETTE_BLOCK disallows for draw the prize
*/
forward check_prize(id);
enum{Jeśli chcemy, by nagroda była zawsze dostępna, wpisujemy proste
ROULETTE_BLOCK, // Blocks forward execute or disallow for executing
ROULETTE_ALLOW // Executes the forward or allow for executing
}
public check_prize(id){Możemy jednak ograniczyć nagrodę, np. tylko dla terrorystów:
return ROULETTE_ALLOW;
}
public check_prize(id){Forward może zostać wykonany w momencie zagrania przez któregoś
return get_user_team(id)==1?ROULETTE_ALLOW:ROULETTE_BLOCK;
}
/*
Ask for change prize`s power
id - number of player to reset the power
Returning ROULETTE_ALLOW allows for prize`s power reset
Returning ROULETTE_BLOCK disallows for prize`s power reset
*/
forward power_reset(id);
/*
Executes prize by given player
id - number of player wchich drew the prize
*/
forward execute_prize(id);
/*
Forces prize power change
id - number of player, which power is changed
if set to 0, power is changed for all players
pwr - new power to set
Returns old player`s prize power or -1 if id is 0
*/
native change_prize_power(id=0, pwr=0);
/*
Sets user karma level
id - number of player to set new karma
if set to 0, karma is set to all players
karma - new karma to set
Returns old player`s karma or -1 if id is 0
*/
native set_user_karma(id=0, karma=0);
/*
Gets user karma level
id - number of player to get karma
*/
native get_user_karma(id);
/*
Changes prize`s karma
karma - new karma to set
Returns prize`s old karma
*/
native change_prize_karma(karma=0);
/*
Gets time to end of round in seconds
*/
native timeleft();
/*
Registers new dictionary of keys to translate
file - dictionary`s filename placed in data/lang
*/
native register_translate(file[128]);
/*
Translates key registered by register_translate
id - number of player to translate key for
key - the key to translate
result - the output for translated key
*/
native translate(id, key[128], result[896]);
/*
Shows information of drawed message to winner and his spectators
id - number of player to show the information
color - color of the message to show.
Available colors to choose:
YELLOW, GREEN, RED, BLUE
key - translates key if set to true or just shows given message
msg - message to show for a player. Limit of 190 characters
msgSpec - message to show for player`s spectators. Same limit.
channel - binary sum of channels message to show
1 - ColorChat
2 - Tutor
4 - Center
time - how long the tutor message have to lasts (float value)
*/
native prize_info(id, color=INFO_YELLOW, msg[190]="", msgSpec[190]="", bool:key=true, channel=3, Float:time=10.0);
enum(<<=1){ // Message channels used in prize_info native
MSG_COLORCHAT=1,
MSG_TUTOR,
MSG_CENTER
}
enum{ // Colors are projected to be compatible with ColorChat
INFO_YELLOW=1, // Yellow color has been added to make names more sense
INFO_GREEN,
INFO_RED=5,
INFO_BLUE
}
/*
Shows counter centered information to winner and his spectators
Uses client_print print_center in format: "translated_key: number"
id - number of player to show the counter
key - the key to translate, being the prize name
number - number to show (f.e. seconds left, HP left, etc.)
spect - specifies, if show counter to spectators too.
*/
native prize_counter(id, key[128], number, bool:spect=true);
#include <amxmodx>
#include <roulette>
public plugin_init(){
register_plugin("Roulette Prize name", "0.1", "Prize Author");
register_prize("Prize name: Short prize description");
}
public execute_prize(id){
}
public check_prize(id){
return ROULETTE_ALLOW;
}
public power_reset(id){
return ROULETTE_ALLOW;
}
// defines cvar bitsum value, showing cvar`s existing and every change
#define FCVAR_SHOWALL FCVAR_ARCHIVE|FCVAR_SERVER
#include <amxmodx>
#include <roulette>
new ban=0, c_rounds_ban;
public plugin_init(){
register_plugin("Roulette Prize name", "0.1", "Prize Author");
register_prize("Prize name: Short prize description");
register_logevent("roundStart", 2, "1=Round_Start");
c_rounds_ban=register_cvar("roulette_prize_name_rounds_ban", "20", FCVAR_SHOWALL);
}
public execute_prize(id){
change_prize_power(id, 0);
ban=get_pcvar_num(c_rounds_ban);
}
public roundStart(){
if(ban){
--ban;
}
}
public check_prize(id){
return ban?ROULETTE_BLOCK:ROULETTE_ALLOW;
}
public power_reset(id){
return ROULETTE_ALLOW;
}
enum{
ROULETTE_BLOCK, // Blocks forward execute or disallow for executing
ROULETTE_ALLOW // Executes the forward or allow for executing
}
#include <amxmodx>Stworzyliśmy zmienną globalną prize[33], przechowującą licznik czasu dla poszczególnych graczy.
#include <hamsandwich>
#include <roulette>
new maxPlayers, prize[33];
public plugin_init(){
register_plugin("Roulette Prize name", "0.1", "Prize Author");
register_prize("Prize name: Short prize description");
register_logevent("roundEnd", 2, "1=Round_End");
register_logevent("roundEnd", 2, "1=Game_Commencing");
RegisterHam(Ham_Killed, "player", "killed", 1);
}
public plugin_cfg(){
maxPlayers=get_maxplayers();
}
public execute_prize(id){
prize[id]=20;
new data[1];
data[0]=id;
set_task(1.0, "timer", _, data, 1, "a", prize[id]);
}
public timer(data[]){
new id=data[0];
if(is_user_alive(id) && prize[id]){
if(--prize[id]){
// tutaj wykonujemy kod co sekunde, dla dodatniego licznika czasu
} else {
// licznik czasu wlasnie dobiegl zera, wykonujemy pewien, inny kod
}
}
}
public killed(vid, kid, shouldgib){
if(prize[vid]){
prize[vid]=0;
}
}
public client_putinserver(id){
prize[id]=0;
}
public roundEnd(){
remove_task();
for(new i=1; i<=maxPlayers; ++i){
prize[i]=0;
}
}
public check_prize(id){
return ROULETTE_ALLOW;
}
public power_reset(id){
return ROULETTE_ALLOW;
}
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <roulette>
new maxPlayers, prize[33];
new c_prize_min, c_prize_max;
public plugin_init(){
register_plugin("Roulette Prize name", "0.1", "Prize Author");
register_prize("Prize name: Short prize description");
register_logevent("roundEnd", 2, "1=Round_End");
register_logevent("roundEnd", 2, "1=Game_Commencing");
RegisterHam(Ham_Killed, "player", "killed", 1);
c_prize_min=register_cvar("c_prize_name_min", "10", FCVAR_SHOWALL);
c_prize_max=register_cvar("c_prize_name_max", "20", FCVAR_SHOWALL);
}
public plugin_cfg(){
maxPlayers=get_maxplayers();
}
public execute_prize(id){
// gracz o numerze id wylosowal nagrode
// tutaj wykonujemy operacje tuz po wylosowaniu nagrody
prize[id]=random_num(get_pcvar_num(c_prize_min), get_pcvar_num(c_prize_max));
prize_info(id, INFO_BLUE, "PRIZE_NAME_DESC", "PRIZE_NAME_DESC_SPEC");
prize_counter(id, "PRIZE_NAME", prize[id]);
new data[1];
data[0]=id;
set_task(1.0, "timer", _, data, 1, "a", prize[id]);
}
public timer(data[]){
new id=data[0];
if(is_user_alive(id) && prize[id]){
if(--prize[id]){
// tutaj wykonujemy kod co sekunde, dla dodatniego licznika czasu
prize_counter(id, "PRIZE_NAME", prize[id]);
} else {
// licznik czasu wlasnie dobiegl zera, wykonujemy pewien, inny kod
prize_info(id, .key=false, .channel=MSG_CENTER);
}
}
}
public killed(vid, kid, shouldgib){
if(prize[vid]){
prize[vid]=0;
}
}
public client_putinserver(id){
prize[id]=0;
}
public roundEnd(){
remove_task();
for(new i=1; i<=maxPlayers; ++i){
prize[i]=0;
}
}
public check_prize(id){
return ROULETTE_ALLOW;
}
public power_reset(id){
return ROULETTE_ALLOW;
}
change_prize_power(id, 0);
24.12.2012 1.0 N Init version
28.12.2012 2.0 + Added custom configuration files. Plugin is fully plug & play now
03.01.2013 2.1 $ Fixed incorrect plugin native change prize power call
04.01.2013 2.2 + Added cutom map`s custom configuration files settings service
08.01.2013 3.0 % Improved memory usage, replacing stable tables with the cellarray
11.01.2013 3.1 $ Fixed the ArrayGetArray incorect identifier usage
13.01.2013 4.0 + Added multilanguage service, changed main plugin language to english
13.01.2013 4.0.1 $ Changed variables names and comments to english
13.01.2013 4.0.2 $ Fixed null sized array initialize while no prizes
13.01.2013 4.1 % Improved menu show while no prizes
13.01.2013 4.2 $ No more searching for winning prize`s execute forward id twice
28.01.2013 5.0 % Merged ConnorMcLeod`s get_remaining_seconds and Roulette
28.01.2013 5.0.1 + Added timeleft native
29.01.2013 5.1 + Added register_translate and translate natives
30.01.2013 5.1.1 $ Fixed translations for tutor
30.01.2013 5.2 + Added prize_info native
30.01.2013 5.3 $ Added register_prize multilang support
30.01.2013 5.3.1 % Improved some comparisons usage
30.01.2013 5.3.2 $ Fixed infinity loop bug when prize`s default power is 0
01.02.2013 6.0 + Added karma system
02.02.2013 6.0.1 % Improved some natives returns
02.02.2013 6.1 + Added change_prize_karma, set_user_karma and get_user_karma natives
03.02.2013 6.1.1 % Improved some natives parameters and variables usage
03.02.2013 6.1.2 + Added source code sections and some comments blocks
04.02.2013 6.1.3 + Added KARMA_* defines in INC file
04.02.2013 6.1.4 + Added POWER_STR, allowing use it directly in prize`s power cvars
04.02.2013 6.2 % Reduced POWER(_STR) to 7! to avoid integer overflow more effectively
04.02.2013 6.2.1 + Added FCVAR_SHOWALL definition to simplify registering some cvars
05.02.2013 6.2.2 $ Fixed translate native not returning translated string
05.02.2013 6.2.3 + Added credits informations in info section of SMA file
05.02.2013 6.3 + Added prize_counter native to simplify showing counters
06.02.2013 6.3.1 % Moved descriptions in INC file over the content to cooperate with editors
05.03.2013 6.3.2 % Changed array of booleand into bitsum, added bitsum defines
Napisane przez DarkGL
w 16.04.2012 23:43
amx_slowmo 0.3 // wartość spowolnienia przy ustawieniu 0.1 gracz poruszał by się 10x wolniej itp.
Napisane przez
Gość
w 07.04.2012 05:51
kom_admini_widza_wszystko 1 // <0|1> Czy Admini widza wszystkie rozmowy (1), czy nie (0)
kom_admini_widza_rozmowy_na_sayu 1 // <0|1> Czy Admini widza wszystkie rozmowy na sayu (1), czy nie (0)
kom_admini_widza_rozmowy_na_teamsayu 1 // <0|1> Czy Admini widza wszystkie rozmowy na teamsayu (1), czy nie (0)
kom_admin_kolor_tekstu 3 // <1-5> Kolory: [1] Domyslnie zolty, [2] Zielony, [3] Bialy, [4] Niebieski, [5] Czerwony
kom_admin_kolor_nicku 2 // <1-6> Kolory: [1] Domyslnie zolty, [2] Zielony, [3] Bialy, [4] Niebieski, [5] Czerwony, [6] Kolor druzyny
kom_vip_kolor_tekstu 1 // <1-5> Kolory: [1] Domyslnie zolty, [2] Zielony, [3] Bialy, [4] Niebieski, [5] Czerwony
kom_vip_kolor_nicku 2 // <1-6> Kolory: [1] Domyslnie zolty, [2] Zielony, [3] Bialy, [4] Niebieski, [5] Czerwony, [6] Kolor druzyny
kom_stanowiska_odmienne 1 // <0|1> Czy stanowiska sa odmienne w zaleznosci od plci, np. Admin a Adminka (1), czy nie (0)
kom_martwi_moga_mowic_do_wszystkich 1 // <0|1> Czy martwi moga uzywac zwyklego saya (1), czy nie (0)
kom_martwi_moga_mowic_do_druzyny 1 // <0|1> Czy martwi moga mowic do druzyny (1), czy nie (0)
kom_martwi_slysza_zywych_z_druzyny 1 // <0|1> Czy martwi slysza zywych z druzyny (1), czy nie (0)
kom_martwi_slysza_zywych 1 // <0|1> Czy martwi slysza zywych (1), czy nie (0)
kom_gracze_slysza_rozmowy_miedzy_widzami 1 // <0|1> Czy gracze slysza rozmowy pomiedzy widzami (1), czy nie (0)
kom_gracze_slysza_widzow 1 // <0|1> Czy gracze slysza widzow (1), czy nie (0)
kom_widzowie_slysza_teamsay_druzyn 1 // <0|1> Czy widzowie slysza teamsay druzyn (1), czy nie (0)
kom_widzowie_slysza_siebie_samych 1 // <0|1> Czy widzowie slysza innych widzow (1), czy nie (0)
kom_flaga_admina_widzacego_wszystko "d" // <flaga|""> Flaga Administratora widzacego wszystko lub ""
kom_flaga_admina_widzacego_rozmowy_na_sayu "c" // <flaga|""> Flaga Administratora widzacego wszystkie rozmowy na sayu lub ""
kom_flaga_admina_widzacego_rozmowy_na_teamsayu "a" // <flaga|""> Flaga Administratora widzacego wszystkie rozmowy na teamsayu lub ""
kom_flaga_head_admina_na_sayu "a" // <flaga|""> Flaga Head Admina lub ""
kom_flaga_senior_admina_na_sayu "h" // <flaga|""> Flaga Senior Admina lub ""
kom_flaga_admina_na_sayu "d" // <flaga|""> Flaga Admina lub ""
kom_flaga_junior_admina_na_sayu "c" // <flaga|""> Flaga Junior Admina lub ""
kom_flaga_super_vipa_na_sayu "j" // <flaga|""> Flaga Super VIPa lub ""
kom_flaga_vipa_na_sayu "i" // <flaga|""> Flaga VIPa lub ""
kom_flaga_kobieta "" // <flaga|""> Flaga Kobiety lub ""
amxmodx
kom_flaga_head_admina_na_sayu "a" // Tylko HeadAdmin ma flagę A
kom_flaga_senior_admina_na_sayu "" // Nie ma stanowiska SeniorAdmina, więc zostawiamy puste
kom_flaga_admina_na_sayu "d" // Pozostali Administratorzy mają flagę D
kom_flaga_junior_admina_na_sayu "" // Nie ma stanowiska JuniorAdmina, więc zostawiamy puste
kom_flaga_super_vipa_na_sayu "" // Nie ma VIPów, więc zostawiamy puste
kom_flaga_vipa_na_sayu "" // Nie ma VIPów, więc zostawiamy puste
kom_flaga_kobieta "" // Nie rozróżniamy kobiet, więc zostawiamy puste
kom_flaga_admina_widzacego_wszystko "d" // domyślnie każdy Administrator z uprawnieniami banowania
kom_admini_widza_wszystko 1 // Admini widzą wszystkie rozmowy, nawet przeciwnej drużyny między sobą
kom_admin_kolor_tekstu 3 // <1-5> Kolory: [1] Domyslnie zolty, [2] Zielony, [3] Bialy, [4] Niebieski, [5] Czerwony
kom_admin_kolor_nicku 2 // <1-6> Kolory: [1] Domyslnie zolty, [2] Zielony, [3] Bialy, [4] Niebieski, [5] Czerwony, [6] Kolor druzyny
kom_vip_kolor_tekstu 1 // <1-5> Kolory: [1] Domyslnie zolty, [2] Zielony, [3] Bialy, [4] Niebieski, [5] Czerwony
kom_vip_kolor_nicku 2 // <1-6> Kolory: [1] Domyslnie zolty, [2] Zielony, [3] Bialy, [4] Niebieski, [5] Czerwony, [6] Kolor druzyny
Napisane przez Goliath
w 07.04.2012 18:07
Dokumentacja AMXX.pl: Core >> string > num_to_strCzy jest możliwe zmiana zmiennej int w string?
W sensie, że masz string zawierający "Tekst" oraz zmienną int o wartości 5 i w efekcie końcowym wychodzi "Tekst5"? Jeśli tak, użyj w/w funkcji oraz Dokumentacja AMXX.pl: Core >> string > addI czy do zmiennej string można dodać int?
Napisane przez diablix
w 13.07.2011 18:06
Napisane przez G[o]Q
w 23.02.2012 23:31
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <money> #define PLUGIN "TesT MoneyApi" #define VERSION "1.0" #define AUTHOR "G[o]Q" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("dajkase","dodaj_kase"); register_clcmd("ustaw_kase","ustaw_kase"); } public dodaj_kase(id) add_user_money(id,100,1,0); public ustaw_kase(id) set_user_money(id,1000,1); public MoneyAddToPlayer(id,ilosc,premia,zrodlo){ if(premia>0) if(zrodlo==ENGINE) client_print(id,print_chat,"Dostales od silnika %d kasy i masz jej teraz:%d",premia,ilosc); else client_print(id,print_chat,"Dostales z nieznanego zrodla %d kasy i masz jej teraz:%d",premia,ilosc); else if(zrodlo==ENGINE) client_print(id,print_chat,"Straciles na rzecz silnika %d kasy i masz jej teraz:%d",premia,ilosc); else client_print(id,print_chat,"Przez nieznane zródlo straciles %d kasy i masz jej teraz:%d",premia,ilosc); }
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <Money> #define PLUGIN "TestAPI2" #define VERSION "1.0" #define AUTHOR "G[o]Q" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("dajkase","dodaj_kase"); register_clcmd("ustaw_kase","ustaw_kase"); } public dodaj_kase(id) add_user_money(id,100,1,0); public ustaw_kase(id) set_user_money(id,1000,1); public MoneyAddToPlayer(id,ilosc,premia,zrodlo){ new percent=50; new kasa=ilosc-premia+(premia/(100/percent)); if(premia>0){ client_print(id,print_chat,"Rząd zabral ci %d%s podatku VAT.",percent,"%%") client_print(id,print_chat,"Wiec zarobiles tylko %d i stan twojego konta to:%d.",premia/(100/percent),kasa) }else{ client_print(id,print_chat,"Dostales mandat w wysokosci:%d,ale Pan policjant dal ci znizke: %d%s",premia,percent,"%%") client_print(id,print_chat,"Wiec straciles tylko %d i stan twojego konta to:%d.",premia/(100/percent),kasa) } set_user_money_silent(id,kasa,0); }
Napisane przez Miczu
w 02.07.2008 15:13
Start mapy
plugin_init() { //code }Powyzsza funkcja jest tylko wywolywana po zmianie mapy (na samym jej poczatku).
Koniec mapy
plugin_end ( ) { //code }Powyzsza funkcja jest wywolywana przy zmianie mapy lub prawidlowym zamknieciu serwera. Prawdopodobnie nie wychwyci crasha.
Nowa Runda
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0") } public Nowa_Runda() { //code }Nowa runda tym sposobem omija pierwsza runde - pierwsza po zmianie mapy.
Poczatek Rundy
#include <amxmodx> #include <amxmisc> public plugin_init() { register_logevent("Poczatek_Rundy", 2, "1=Round_Start") } public Poczatek_Rundy() { //code }
Koniec Rundy
#include <amxmodx> #include <amxmisc> public plugin_init() { register_logevent("Koniec_Rundy", 2, "1=Round_End") } public Koniec_Rundy() { //code }
Damage - obrazenia
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("Damage", "Damage", "b", "2!=0") } public Damage(id) { new vid = read_data(0) // vid == id new damage = read_data(2) new Origins[3] // Wspolrzedne gracza, granatu, obiektu wywolujacego obrazenia Origins[0] = read_data(4) Origins[1] = read_data(5) Origins[2] = read_data(6) new kid = get_user_attacker(id) // Gracz atakujacy //code }
DeathMsg - ktos umarl
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("DeathMsg", "DeathMsg", "a") } public DeathMsg() { new kid = read_data(1) //zabojca new vid = read_data(2) // ofiara new hs = read_data(3) // HeadShot (1 == true) new weapon[64] read_data(4,weapon,63) //krotka nazwa broni (bez weapon_ / CSW_ ) //code }kid i vid sa sobie rowne gdy zabije cie wlasna bron (granat) lub np. admin uzyje slay'a...
CurWeapon - obecna bron
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("CurWeapon","CurWeapon","be", "1=1") } public CurWeapon(id) { new wid = read_data(2) // Id broni new ammo = read_data(3) // liczba naboi w magazynku //code }
Podniesienie broni
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("WeapPickup", "WeapPickup", "b") } public WeapPickup(id) { new wid = read_data(1) // id broni //code }
Podniesienie amunicji
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("AmmoPickup", "AmmoPickup", "b") } public AmmoPickup(id) { new aid = read_data(1) //id amunicji new clip = read_data(2) //ilosc naboi //code }
Amunicja
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("AmmoX", "AmmoX", "b") } public AmmoX(id) { new aid = read_data(1) new clip = read_data(2) client_print(id,print_chat,"id %d aid %d clip %d",id,aid,clip) //code }
Wejscie na server
public client_putinserver(id){ //code }
Polaczenie z serwerem
public client_connect(id) { //code }
Rozlaczenie sie z serwerem
public client_disconnect(id) { //code }
Health - Zycie
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("Health", "Health", "be") } public Health(id) { new health = read_data(1) //code }
Money - zmiana w kasie
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("Money", "Money", "be") } public Money(id) { new Money = read_data(1) //code }
TeamInfo - informacjie o Teamie
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("TeamInfo","team_assign","a") } public team_assign() { new id = read_data(1) new Team[32] read_data(2,Team,31) //UNASSIGNED //TERRORIST //CT //SPECTATOR }
#include <amxmodx> #include <amxmisc> public plugin_init() { register_event("TeamInfo","team_assign","a") } 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 /*code //koniec code */ return PLUGIN_CONTINUE // skoro juz uzylismy returna to musimy tez na koniec go dac }
register_logeventnie maja parametru id - a mowiac inaczej jak dodamy parametr id, to bedzie mial wartosc 0
Napisane przez Miczu
w 09.12.2008 11:08
... new data[3] data[0] = id data[1] = vid data[2] = dmg set_task ( 5.0, "DoIt", 666, data, 3 ) ... public DoIt(data[]) { new id = data[0] new vid = data[1] new dmg = data[2] }
... set_task ( 5.0, "KillIt", id ) ... public KillIt(id) { user_silentkill ( id) }