public PlayerSpawn(id)
{
if(!is_user_connected(id) || is_user_alive(id) || get_user_team(id) == 3 || get_user_team(id) == 0)
return PLUGIN_CONTINUE;
ExecuteHamB(Ham_CS_RoundRespawn, id); // Po tym "HAMIE" gracz jest żywy, i ta funkcja wywołuje się po śmierci :3 nie na poczatku rundy
new data[1]
data[0] = id;
set_task(0.5, rzeczydostawane,41633, data, 1);
Timer[id] = false;
return PLUGIN_CONTINUE;
}
public rzeczydostawane(data[])
{
new id = data[0]
//Rzeczy dostawane
//Ta calosc zamiast calego publicka PlayerSpawn(id)
//Daje gotowca tylko dopisac rzeczy
}
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.
|
Gram Jajami
Rejestracja: 28.10.2009Aktualnie: Nieaktywny
Poza forum Ostatnio: 17.09.2014 11:59




Statystyki
- Grupa: Użytkownik
- Całość postów: 75
- Odwiedzin: 3 697
- Tytuł: Zaawansowany
- Wiek: Wiek nie został ustalony
- Urodziny: Data urodzin nie została podana
-
Płeć
Nie podano
-
Lokalizacja
Polska
Kontakt
Narzędzia użytkownika
Znajomi
Gram Jajami nie posiada znajomych
#655957 [ROZWIĄZANE] Dostawanie czegoś przy odradzaniu
Napisane przez Nltj
w 11.08.2014 01:23
#656047 [ROZWIĄZANE] Dostawanie czegoś przy odradzaniu
Napisane przez Nltj
w 11.08.2014 12:34
zapomniałem zaznaczyć "" nazwe publicka, i moja klawiatura postawiła "niewidoczny" znak który psuł kompilacje
Załączone pliki
-
plug-in (1).sma 5,71 KB 31 Ilość pobrań
plug-in (1).amxx
#655004 Funkcja na odradzanie z ekwipunkiem z przed smierci
Napisane przez Rivit
w 05.08.2014 19:58
Jest plugin na to, ale nie mój:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#define PLUGIN "Przywracanie broni po smierci"
#define AUTHOR "kisiel96"
#define VERSION "1.0"
new weapons[32], weapon_ammo[32], weapon_bpammo[32], weapons_num;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1);
RegisterHam(Ham_Spawn, "player", "SpawnGraczaPost", 1);
}
public SmiercGraczaPost(id, attacker, shouldgib)
{
if(!is_user_connected(id))
return HAM_IGNORED;
get_user_weapons(id, weapons, weapons_num)
for(new i = 0; i < weapons_num; i++)
{
new weapon_name[32];
copy(weapon_name, sizeof(weapon_name), GetWeaponName(weapons[i]));
if(equal(weapon_name, "0") || equal(weapon_name, "weapon_knife") || equal(weapon_name, "weapon_c4"))
continue;
new weapon_id = find_ent_by_owner(-1, weapon_name, id)
if(!weapon_id)
continue;
weapon_ammo[i] = cs_get_weapon_ammo(weapon_id)
weapon_bpammo[i] = cs_get_user_bpammo(id, weapons[i])
}
return HAM_IGNORED;
}
public SpawnGraczaPost(id)
{
if(!is_user_alive(id))
return HAM_IGNORED;
for(new i = 0; i < weapons_num; i++)
{
new weapon_name[32];
copy(weapon_name, sizeof(weapon_name), GetWeaponName(weapons[i]));
if(equal(weapon_name, "0") || equal(weapon_name, "weapon_c4"))
continue;
give_item(id, weapon_name);
if(equal(weapon_name, "weapon_knife"))
continue;
cs_set_user_bpammo(id, weapons[i], weapon_bpammo[i]);
new weapon_id = find_ent_by_owner(-1, weapon_name, id);
if(!weapon_id)
continue;
cs_set_weapon_ammo(weapon_id, weapon_ammo[i]);
cs_set_user_bpammo(id, weapons[i], weapon_bpammo[i]);
}
return HAM_IGNORED;
}
public GetWeaponName(const weapon_id)
{
new weapon_name[32];
switch(weapon_id)
{
case 1: formatex(weapon_name, sizeof(weapon_name), "weapon_p228");
case 3: formatex(weapon_name, sizeof(weapon_name), "weapon_scout");
case 4: formatex(weapon_name, sizeof(weapon_name), "weapon_hegrenade");
case 5: formatex(weapon_name, sizeof(weapon_name), "weapon_xm1014");
case 6: formatex(weapon_name, sizeof(weapon_name), "weapon_c4");
case 7: formatex(weapon_name, sizeof(weapon_name), "weapon_mac10");
case 8: formatex(weapon_name, sizeof(weapon_name), "weapon_aug");
case 9: formatex(weapon_name, sizeof(weapon_name), "weapon_smokegrenade");
case 10: formatex(weapon_name, sizeof(weapon_name), "weapon_elite");
case 11: formatex(weapon_name, sizeof(weapon_name), "weapon_fiveseven");
case 12: formatex(weapon_name, sizeof(weapon_name), "weapon_ump45");
case 13: formatex(weapon_name, sizeof(weapon_name), "weapon_sg550");
case 14: formatex(weapon_name, sizeof(weapon_name), "weapon_galil");
case 15: formatex(weapon_name, sizeof(weapon_name), "weapon_famas");
case 16: formatex(weapon_name, sizeof(weapon_name), "weapon_usp");
case 17: formatex(weapon_name, sizeof(weapon_name), "weapon_glock18");
case 18: formatex(weapon_name, sizeof(weapon_name), "weapon_awp");
case 19: formatex(weapon_name, sizeof(weapon_name), "weapon_mp5navy");
case 20: formatex(weapon_name, sizeof(weapon_name), "weapon_m249");
case 21: formatex(weapon_name, sizeof(weapon_name), "weapon_m3");
case 22: formatex(weapon_name, sizeof(weapon_name), "weapon_m4a1");
case 23: formatex(weapon_name, sizeof(weapon_name), "weapon_tmp");
case 24: formatex(weapon_name, sizeof(weapon_name), "weapon_g3sg1");
case 25: formatex(weapon_name, sizeof(weapon_name), "weapon_flashbang");
case 26: formatex(weapon_name, sizeof(weapon_name), "weapon_deagle");
case 27: formatex(weapon_name, sizeof(weapon_name), "weapon_sg552");
case 28: formatex(weapon_name, sizeof(weapon_name), "weapon_ak47");
case 29: formatex(weapon_name, sizeof(weapon_name), "weapon_knife");
case 30: formatex(weapon_name, sizeof(weapon_name), "weapon_p90");
default: formatex(weapon_name, sizeof(weapon_name), "0");
}
return weapon_name;
}
#654495 [ROZWIĄZANE] Vote po 20s od rozpoczęcia rundy
Napisane przez xenos
w 03.08.2014 15:35
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "DarkGL"
new ile = 0;
new wybralo_tak = 0;
new wybralo_nie = 0;
new odliczanie_zmien = 15;
new menu[33];
new wybral[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent("Poczatek_Rundy", 2, "1=Round_Start")
}
public Poczatek_Rundy()
{
ile++;
if(ile != 2){
return PLUGIN_CONTINUE;
}
if(task_exists(5000))
remove_task(5000);
set_task(20.0,"startvote",5000,_,_,"b")
return PLUGIN_CONTINUE;
}
public startvote()
{
for(new i = 1;i<33;i++){
if(!is_user_connected(i) || (get_user_team(i) != 2 && get_user_team(i) != 1 )){
continue;
}
menu[i] = menu_create("Hs only on/off","menu_handle")
menu_additem(menu[i],"Only Hs ON")
menu_additem(menu[i],"Only Hs OFF")
menu_setprop(menu[i],MPROP_PERPAGE,0)
menu_setprop(menu[i],MPROP_EXIT,MEXIT_NEVER)
menu_display(i,menu[i])
}
set_task(1.0,"odliczanie",666,_,_,"b")
}
public odliczanie(){
odliczanie_zmien--;
if(odliczanie_zmien<= 0 ){
remove_task(666);
if(wybralo_tak > wybralo_nie){
set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 6.0, 2.0)
show_hudmessage(0, "Only HS zostal wlaczony !")
set_cvar_num("amx_hs_mode",1)
server_cmd("amx_hs_mode 1");
client_print(0, print_chat, "[AMXX] Only HS zostal wlaczony, zadecydowaly o tym glosy %d osob.", wybralo_tak)
}
else if(wybralo_tak < wybralo_nie){
set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 6.0, 2.0)
show_hudmessage(0, "Only HS zostal wylaczony !")
set_cvar_num("amx_hs_mode",0)
server_cmd("amx_hs_mode 0");
client_print(0, print_chat, "[AMXX] Only HS zostal wylaczony, zadecydowaly o tym glosy %d osob.", wybralo_tak)
}
else {
set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 6.0, 2.0)
show_hudmessage(0, "Taka sama liczba glosow powtarzamy glosowanie!")
ile = 1;
odliczanie_zmien = 15;
wybralo_tak = 0;
wybralo_nie = 0;
for(new i = 1;i<33;i++){
wybral[i] = 0;
}
}
}
else
{
set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 6.0, 2.0)
show_hudmessage(0, "Zostalo %d s na zaglosowanie !",odliczanie_zmien)
for(new i = 1;i<33;i++){
if(!is_user_connected(i) || (get_user_team(i) != 2 && get_user_team(i) != 1 )){
continue;
}
new menu_id, keys;
new menuUp = player_menu_info( i, menu_id, keys );
if(wybral[i] == 0 && (menuUp <= 0 || menu_id < 0)){
menu[i] = menu_create("Hs only on/off","menu_handle")
menu_additem(menu[i],"Only Hs ON")
menu_additem(menu[i],"Only Hs OFF")
menu_setprop(menu[i],MPROP_PERPAGE,0)
menu_setprop(menu[i],MPROP_EXIT,MEXIT_NEVER)
menu_display(i,menu[i])
}
}
}
}
public menu_handle(id,menu,item){
if(odliczanie_zmien <= 0 ){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
wybral[id] = 1;
switch(item){
case 0:
{
wybralo_tak++;
}
case 1:
{
wybralo_nie++;
}
}
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
#302278 [ROZWIĄZANE] Nie udana przeróbka pluginu
Napisane przez DarkGL
w 02.10.2011 09:58
#pragma semicolon 0
#include <amxmodx>
#include <amxmisc>
#include <csx>
#include <ColorChat>
#define PLUGIN "Rangi"
#define VERSION "1.0"
#define AUTHOR "R3X"// User stats parms id
#define STATS_KILLS 0
#define STATS_DEATHS 1
#define STATS_HS 2
#define STATS_TKS 3
#define STATS_SHOTS 4
#define STATS_HITS 5
#define STATS_DAMAGE 6
//Max count of levels
#define LEVELS 20
//Max len of ClassName
#define CLASS_LEN 25
#define MAX_NAME_LENGTH 31
#define MAX_BUFFER_LENGTH 2047
#define TASK_SHOWCLASS 2222
//Buffers
new t_sName[MAX_NAME_LENGTH + 1] = ""
new g_sBuffer[MAX_BUFFER_LENGTH + 1] = ""
new giXP[LEVELS+1];
new gszClass[LEVELS+1][CLASS_LEN];
new giPointer=1;
new gcvarMaxName;
new gcvarType, gcvarTop, gcvarList;
new gmsgSayText;
new bool:bHud[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_dictionary("statsx.txt");
register_clcmd("say /top10", "cmdTop10", 0, "- wyswietla range i statystyki");
register_clcmd("say /rank", "cmdRank", 0, "- wyswietla range i statystyki");
register_clcmd("say /rangi", "cmdHelp", 0, "- wyswietla liste rang");
register_clcmd("say /hudon", "hud");
register_clcmd("say /hudoff", "hud");
register_clcmd("say_team /top10", "cmdTop10", 0, "- wyswietla range i statystyki");
register_clcmd("say_team /rank", "cmdRank", 0, "- wyswietla range i statystyki");
register_clcmd("say_team /rangi", "cmdHelp", 0, "- wyswietla liste rang");
register_clcmd("say_team /hud", "hud");
gcvarMaxName = register_cvar("rangi_maxname", "Reszta jest milczeniem");
gcvarType = register_cvar("rangi_hud","0");
gcvarTop = register_cvar("rangi_top10","1");
gcvarList = register_cvar("rangi_list","1");
gmsgSayText = get_user_msgid("SayText");
set_task(120.0,"vAdvert",.flags = "b");
}
@vAdvert(){
client_print(0,print_chat,"Jeśli chcesz wlaczyc/wylaczyc wyswietlanie rangi napisz /hud")
}
public hud(id){
bHud[id] = !bHud[id]
ColorChat (id, GREEN, "[Ranga] ^x01Wyswietlanie rangi w hudzie zostalo ^x04%s",bHud[id] ? "wlaczone":"wylaczone")
}
//CONFIG
public plugin_cfg(){
new szFile[128];
get_configsdir(szFile, 127);
add(szFile, 127, "/rangi.ini");
if(!file_exists(szFile))
return set_fail_state("Nie znalaziono pliku ranga.ini w folderze configs/");
new szLine[96], iLen=0, szClass[CLASS_LEN], szXP[16];
for(new i=0;read_file(szFile, i, szLine, 95, iLen);i++,szClass[0]=szXP[0]='^0'){
if( giPointer > LEVELS) break;
if(iLen==0) continue;
trim(szLine);
if(szLine[0]=='^0' || szLine[0]==';') continue;
parse(szLine, szClass, CLASS_LEN-1, szXP, 15);
if(szClass[0] && szXP[0]){
giXP[giPointer]=str_to_num(szXP);
copy(gszClass[giPointer], CLASS_LEN-1, szClass)
giPointer++;
}
}
return PLUGIN_CONTINUE;
}
//COMMANDS
public cmdTop10(id){
if(get_pcvar_num(gcvarTop) <= 0){
print_colored(id, "* ^x04Top10^x01 jest wylaczone");
return PLUGIN_HANDLED;
}
format_top10(g_sBuffer)
show_motd(id, g_sBuffer, "Top 10")
return PLUGIN_CONTINUE;
}
public cmdRank(id)
{
static stats[8], body[8], rankpos, rankmax;
get_user_stats(id, stats, body);
rankpos = get_user_stats(id, stats, body);
rankmax = get_statsnum();
print_colored(id, "* Twoja ranga to^x04 %s^x01, zajmujesz^x03 %d^x01 pozycje z^x03 %d", get_rankname(stats[0]), rankpos, rankmax);
print_colored(id, "* Posiadasz^x03 %d^x01 zabojstw,^x03 %d^x01 smierci oraz^x03 %d^x01 headshot'ow, zadajac^x03 %d^x01 obrazen.", stats[STATS_KILLS ], stats[STATS_DEATHS], stats[STATS_HS], stats[STATS_DAMAGE]);
return PLUGIN_HANDLED;
}
public cmdHelp(id){
if(get_pcvar_num(gcvarList) <= 0){
print_colored(id, "* ^x04Lista rang^x01 jest niedostepna");
return PLUGIN_HANDLED;
}
static sBuffer[MAX_BUFFER_LENGTH+1];
new iLen;
iLen = formatex(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
iLen += formatex(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "#id Nazwa Prog^n");
if(giPointer > 1)
iLen += formatex(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%02d %-22.22s < %d^n", 1, gszClass[1], giXP[1]);
for(new i=2;i<giPointer;i++){
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%02d %-22.22s %d-%d^n", i, gszClass[i], giXP[i-1]+1,giXP[i]);
}
new szMaxName[CLASS_LEN];
get_pcvar_string(gcvarMaxName, szMaxName, CLASS_LEN-1);
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "* %s > %d", szMaxName, giXP[giPointer-1]);
show_motd(id, sBuffer, "Rangi");
return PLUGIN_HANDLED;
}//FORWARDS
public client_connect(id)
{
if(is_user_bot(id) || get_pcvar_num(gcvarType)==0) return;
set_task(1.0,"taskDisplayRank",TASK_SHOWCLASS+id,_,_,"b");
bHud[id] = true;
}
public client_disconnect(id) if(task_exists(TASK_SHOWCLASS+id)) remove_task(TASK_SHOWCLASS+id)
//TASKS
public taskDisplayRank(id){
id-=TASK_SHOWCLASS;
static stats[8], body[8];
get_user_stats(id, stats, body);
if(bHud[id]){
set_hudmessage(255, 255, 255, 0.15, 0.55);
show_hudmessage(id, "Ranga: %s^nZabojstw: %d",get_rankname(stats[STATS_KILLS ]), stats[STATS_KILLS ]);
}
}
get_lvl_by_exp(iXP){
new i;
for(i=1;i<=giPointer;i++){
if(giXP[i]>=iXP)
break;
}
if(i > giPointer)
return -1;
return i;
}
get_rankname(frags){
static szClass[CLASS_LEN];
new iLvl=get_lvl_by_exp(frags);
if(iLvl>=0)
copy(szClass,CLASS_LEN-1, gszClass[iLvl]);
else
get_pcvar_string(gcvarMaxName, szClass, CLASS_LEN-1);
return szClass;
}//RANK
// Stats formulas
Float:effec(izStats[8])
{
if (!izStats[STATS_KILLS])
return (0.0)
return (100.0 * float(izStats[STATS_KILLS]) / float(izStats[STATS_KILLS] + izStats[STATS_DEATHS]))
}
Float:accuracy(izStats[8])
{
if (!izStats[STATS_SHOTS])
return (0.0)
return (100.0 * float(izStats[STATS_HITS]) / float(izStats[STATS_SHOTS]))
}// Get and format top 10
format_top10(sBuffer[MAX_BUFFER_LENGTH + 1])
{
new iMax = get_statsnum()
new izStats[8], izBody[8]
new iLen = 0
if (iMax > 10)
iMax = 10;new lKills[16], lDeaths[16], lHits[16], lShots[16], lEff[16], lAcc[16]
format(lKills, 15, "%L", LANG_SERVER, "KILLS")
format(lDeaths, 15, "%L", LANG_SERVER, "DEATHS")
format(lHits, 15, "%L", LANG_SERVER, "HITS")
format(lShots, 15, "%L", LANG_SERVER, "SHOTS")
format(lEff, 15, "%L", LANG_SERVER, "EFF")
format(lAcc, 15, "%L", LANG_SERVER, "ACC")
ucfirst(lEff)
ucfirst(lAcc)
iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2s %-22.22s %6s %6s %6s %6s %4s %4s %4s^n", "#", "Nick", "Level", lKills, lDeaths, lHits, lShots, "HS", lEff, lAcc)
for (new i = 0; i < iMax && MAX_BUFFER_LENGTH - iLen > 0; i++)
{
get_stats(i, izStats, izBody, t_sName, MAX_NAME_LENGTH)
replace_all(t_sName, MAX_NAME_LENGTH, "<", "[")
replace_all(t_sName, MAX_NAME_LENGTH, ">", "]")
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2d %-22.22s %-22.22s %6d %6d %6d %6d %4d %3.0f%% %3.0f%%^n", i + 1, t_sName,get_rankname(izStats[STATS_KILLS]), izStats[STATS_KILLS],
izStats[STATS_DEATHS], izStats[STATS_HITS], izStats[STATS_SHOTS], izStats[STATS_HS], effec(izStats), accuracy(izStats))
}
}
//STOCKS
stock print_colored(id, const text[], any:...)
{
static szMessage[192];
szMessage[0]='^x01';
vformat(szMessage[1], 190, text, 3);
if(id==0)
{
new plist[32], playernum;
get_players(plist, playernum);
for(new i = 0; i < playernum; i++)
{
id = plist[i];
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
write_byte(id);
write_string(szMessage);
message_end();
}
}
else
{
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
write_byte(id);
write_string(szMessage);
message_end();
}
}#301780 [ROZWIĄZANE] Nie udana przeróbka pluginu
Napisane przez DarkGL
w 30.09.2011 14:53
#pragma semicolon 0
#include <amxmodx>
#include <amxmisc>
#include <csx>
#include <ColorChat>
#define PLUGIN "Rangi"
#define VERSION "1.0"
#define AUTHOR "R3X"// User stats parms id
#define STATS_KILLS 0
#define STATS_DEATHS 1
#define STATS_HS 2
#define STATS_TKS 3
#define STATS_SHOTS 4
#define STATS_HITS 5
#define STATS_DAMAGE 6
//Max count of levels
#define LEVELS 20
//Max len of ClassName
#define CLASS_LEN 25
#define MAX_NAME_LENGTH 31
#define MAX_BUFFER_LENGTH 2047
#define TASK_SHOWCLASS 2222
//Buffers
new t_sName[MAX_NAME_LENGTH + 1] = ""
new g_sBuffer[MAX_BUFFER_LENGTH + 1] = ""
new giXP[LEVELS+1];
new gszClass[LEVELS+1][CLASS_LEN];
new giPointer=1;
new gcvarMaxName;
new gcvarType, gcvarTop, gcvarList;
new gmsgSayText;
new bool:bHud[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_dictionary("statsx.txt");
register_clcmd("say /top10", "cmdTop10", 0, "- wyswietla range i statystyki");
register_clcmd("say /rank", "cmdRank", 0, "- wyswietla range i statystyki");
register_clcmd("say /rangi", "cmdHelp", 0, "- wyswietla liste rang");
register_clcmd("say /hudon", "hud");
register_clcmd("say /hudoff", "hud");
register_clcmd("say_team /top10", "cmdTop10", 0, "- wyswietla range i statystyki");
register_clcmd("say_team /rank", "cmdRank", 0, "- wyswietla range i statystyki");
register_clcmd("say_team /rangi", "cmdHelp", 0, "- wyswietla liste rang");
register_clcmd("say_team /hudon", "hud");
register_clcmd("say_team /hudoff", "hud");
gcvarMaxName = register_cvar("rangi_maxname", "Reszta jest milczeniem");
gcvarType = register_cvar("rangi_hud","0");
gcvarTop = register_cvar("rangi_top10","1");
gcvarList = register_cvar("rangi_list","1");
gmsgSayText = get_user_msgid("SayText");
}
public hud(id){
bHud[id] = !bHud[id]
ColorChat (id, GREEN, "[Ranga] ^x01Wyswietlanie rangi w hudzie zostalo ^x04%s",bHud[id] ? "wlaczone":"wylaczone")
}
//CONFIG
public plugin_cfg(){
new szFile[128];
get_configsdir(szFile, 127);
add(szFile, 127, "/rangi.ini");
if(!file_exists(szFile))
return set_fail_state("Nie znalaziono pliku ranga.ini w folderze configs/");
new szLine[96], iLen=0, szClass[CLASS_LEN], szXP[16];
for(new i=0;read_file(szFile, i, szLine, 95, iLen);i++,szClass[0]=szXP[0]='^0'){
if( giPointer > LEVELS) break;
if(iLen==0) continue;
trim(szLine);
if(szLine[0]=='^0' || szLine[0]==';') continue;
parse(szLine, szClass, CLASS_LEN-1, szXP, 15);
if(szClass[0] && szXP[0]){
giXP[giPointer]=str_to_num(szXP);
copy(gszClass[giPointer], CLASS_LEN-1, szClass)
giPointer++;
}
}
return PLUGIN_CONTINUE;
}
//COMMANDS
public cmdTop10(id){
if(get_pcvar_num(gcvarTop) <= 0){
print_colored(id, "* ^x04Top10^x01 jest wylaczone");
return PLUGIN_HANDLED;
}
format_top10(g_sBuffer)
show_motd(id, g_sBuffer, "Top 10")
return PLUGIN_CONTINUE;
}
public cmdRank(id)
{
static stats[8], body[8], rankpos, rankmax;
get_user_stats(id, stats, body);
rankpos = get_user_stats(id, stats, body);
rankmax = get_statsnum();
print_colored(id, "* Twoja ranga to^x04 %s^x01, zajmujesz^x03 %d^x01 pozycje z^x03 %d", get_rankname(stats[0]), rankpos, rankmax);
print_colored(id, "* Posiadasz^x03 %d^x01 zabojstw,^x03 %d^x01 smierci oraz^x03 %d^x01 headshot'ow, zadajac^x03 %d^x01 obrazen.", stats[STATS_KILLS ], stats[STATS_DEATHS], stats[STATS_HS], stats[STATS_DAMAGE]);
return PLUGIN_HANDLED;
}
public cmdHelp(id){
if(get_pcvar_num(gcvarList) <= 0){
print_colored(id, "* ^x04Lista rang^x01 jest niedostepna");
return PLUGIN_HANDLED;
}
static sBuffer[MAX_BUFFER_LENGTH+1];
new iLen;
iLen = formatex(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
iLen += formatex(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "#id Nazwa Prog^n");
if(giPointer > 1)
iLen += formatex(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%02d %-22.22s < %d^n", 1, gszClass[1], giXP[1]);
for(new i=2;i<giPointer;i++){
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%02d %-22.22s %d-%d^n", i, gszClass[i], giXP[i-1]+1,giXP[i]);
}
new szMaxName[CLASS_LEN];
get_pcvar_string(gcvarMaxName, szMaxName, CLASS_LEN-1);
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "* %s > %d", szMaxName, giXP[giPointer-1]);
show_motd(id, sBuffer, "Rangi");
return PLUGIN_HANDLED;
}//FORWARDS
public client_connect(id)
{
if(is_user_bot(id) || get_pcvar_num(gcvarType)==0) return;
set_task(1.0,"taskDisplayRank",TASK_SHOWCLASS+id,_,_,"b");
bHud[id] = true;
}
public client_disconnect(id) if(task_exists(TASK_SHOWCLASS+id)) remove_task(TASK_SHOWCLASS+id)
//TASKS
public taskDisplayRank(id){
id-=TASK_SHOWCLASS;
static stats[8], body[8];
get_user_stats(id, stats, body);
if(bHud[id]){
set_hudmessage(255, 255, 255, 0.15, 0.55);
show_hudmessage(id, "Ranga: %s^nZabojstw: %d",get_rankname(stats[STATS_KILLS ]), stats[STATS_KILLS ]);
}
}
get_lvl_by_exp(iXP){
new i;
for(i=1;i<=giPointer;i++){
if(giXP[i]>=iXP)
break;
}
if(i > giPointer)
return -1;
return i;
}
get_rankname(frags){
static szClass[CLASS_LEN];
new iLvl=get_lvl_by_exp(frags);
if(iLvl>=0)
copy(szClass,CLASS_LEN-1, gszClass[iLvl]);
else
get_pcvar_string(gcvarMaxName, szClass, CLASS_LEN-1);
return szClass;
}//RANK
// Stats formulas
Float:effec(izStats[8])
{
if (!izStats[STATS_KILLS])
return (0.0)
return (100.0 * float(izStats[STATS_KILLS]) / float(izStats[STATS_KILLS] + izStats[STATS_DEATHS]))
}
Float:accuracy(izStats[8])
{
if (!izStats[STATS_SHOTS])
return (0.0)
return (100.0 * float(izStats[STATS_HITS]) / float(izStats[STATS_SHOTS]))
}// Get and format top 10
format_top10(sBuffer[MAX_BUFFER_LENGTH + 1])
{
new iMax = get_statsnum()
new izStats[8], izBody[8]
new iLen = 0
if (iMax > 10)
iMax = 10;new lKills[16], lDeaths[16], lHits[16], lShots[16], lEff[16], lAcc[16]
format(lKills, 15, "%L", LANG_SERVER, "KILLS")
format(lDeaths, 15, "%L", LANG_SERVER, "DEATHS")
format(lHits, 15, "%L", LANG_SERVER, "HITS")
format(lShots, 15, "%L", LANG_SERVER, "SHOTS")
format(lEff, 15, "%L", LANG_SERVER, "EFF")
format(lAcc, 15, "%L", LANG_SERVER, "ACC")
ucfirst(lEff)
ucfirst(lAcc)
iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2s %-22.22s %6s %6s %6s %6s %4s %4s %4s^n", "#", "Nick", "Level", lKills, lDeaths, lHits, lShots, "HS", lEff, lAcc)
for (new i = 0; i < iMax && MAX_BUFFER_LENGTH - iLen > 0; i++)
{
get_stats(i, izStats, izBody, t_sName, MAX_NAME_LENGTH)
replace_all(t_sName, MAX_NAME_LENGTH, "<", "[")
replace_all(t_sName, MAX_NAME_LENGTH, ">", "]")
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2d %-22.22s %-22.22s %6d %6d %6d %6d %4d %3.0f%% %3.0f%%^n", i + 1, t_sName,get_rankname(izStats[STATS_KILLS]), izStats[STATS_KILLS],
izStats[STATS_DEATHS], izStats[STATS_HITS], izStats[STATS_SHOTS], izStats[STATS_HS], effec(izStats), accuracy(izStats))
}
}
//STOCKS
stock print_colored(id, const text[], any:...)
{
static szMessage[192];
szMessage[0]='^x01';
vformat(szMessage[1], 190, text, 3);
if(id==0)
{
new plist[32], playernum;
get_players(plist, playernum);
for(new i = 0; i < playernum; i++)
{
id = plist[i];
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
write_byte(id);
write_string(szMessage);
message_end();
}
}
else
{
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
write_byte(id);
write_string(szMessage);
message_end();
}
}#268013 Częste crashe serwera
Napisane przez Hiroshima
w 08.07.2011 22:42
#268023 Częste crashe serwera
Napisane przez Hiroshima
w 08.07.2011 23:05
#268142 Częste crashe serwera
Napisane przez Hiroshima
w 09.07.2011 15:15
@hiroshima wiem ze jest darmwoy ale MA BŁĘDY!
chce dac mój nad którym siedziałem blisko tydzień i go zrobiłem że działą jak należy
myślisz że udostępie taki plugin za darmo
Ps wiem że źle pisze ale mam bardzo rozwinieta dysgrafie/ortografie
więc daruj;)
dobrze, twoje dysgrafia mnie nie obchodzi poniewaz nie piszesz na kartce a w przegladarce internetowej ktora podkresla kazdy błąd. Jesli widzisz bledy w .sma to dziwne ze nie widzisz ich jak piszesz posta.
Nikogo to nie interesuje, ze poprawiles "bledy" w pluginie, jesli natomiast to zrobiles i chcesz to sprzedawac zamiast opublikowac to juz łamiesz zasady (to tak samo jakbys "naprawil" windowsa i sprzedawal go dalej); jesli tego nie rozumiesz to mi przykro, ja po prostu będę raportowal kazdy twoj post na tym forum z takimi probami.
Podsumowujac: jesli nie chcesz tego udostepniac to sie nie chwal i nie draznij innych, dziwne ze u mnie amxbans dziala bez zadnych problemow, wiec nie wiem jakie bledy znalazles.
Jesli chcesz sprzedawac pluginy to napisz wlasny, gdzie w #define AUTHOR bedzie Twoj nick. (a do tego daleka droga sadzac po twoim poziomie)
#183504 Prośba o napisanie mocy
Napisane przez KariiO
w 26.10.2010 17:07
Odporność na naświetlenie:Witam
Proszę o napisanie mocy do klas na:- odporność na naświetlenie
- 5 piorunów na rundę
- gdy kogoś trafi to się pali przez 3s i zadaje przez ten czas 10dmg co sekundę
- 1/3 szansy na odrodzenie- na początku rundy m4 + deagl + flesh + smog + HE
- można chodzić tylko z pistoletem
Z góry dziękuje
Pozdrawiam
Bd. działać? - Nieoficjalny polski support AMX Mod X
Bronie na początku rundy:
if(player_class[i] == TwojaKlasa) fm_give_item(id, "weapon_hegrenade")W tym przypadku TwojaKlasa dostanie tylko 1 HE żeby dodać inne bronei skorzystaj z:
CS Weapon Information[UPDATED] - AlliedModders
Dodając tylko jeszcze raz:
fm_give_item(id, "weapon_XYZ")Osobiście tego nie próbowałem ;D
Tylko pistolet(pokombinuj coś z tym):
public CurWeapon(id)
{
after_bullet[id]=1
new clip,ammo
new weapon=get_user_weapon(id,clip,ammo)
invisible_cast[id]=0
if(weapon == CSW_KNIFE) on_knife[id]=1
else on_knife[id]=0
if ((weapon != CSW_C4 ) && !on_knife[id] && (player_class[id] == TwojaKlasa))
{
client_cmd(id,"weapon_knife")
engclient_cmd(id,"weapon_knife")
on_knife[id]=1
}
if(weapon == CSW_KNIFE) <- Tylko nóż.
#183903 Ograniczenie broni - tylko pistolety i nóż
Napisane przez ZiuTeK
w 28.10.2010 18:48
if ((player_class[id] == Moja_klasa)&& (weapon == CSW_AWP || weapon == CSW_SCOUT || weapon == CSW_XM1014 || weapon == CSW_MAC10 || weapon == CSW_MP5NAVY || weapon == CSW_M4A1 || weapon == CSW_AK47 || weapon == CSW_G3SG1 || weapon == CSW_P90 || weapon == CSW_M3 || weapon == CSW_M249))
{
client_cmd(id,"weapon_knife")
engclient_cmd(id,"weapon_knife")
on_knife[id]=1
}Nie wiem czy to smignie i czy wymienilem juz wszystkie bronie dlugolufowe bo nie znam dobrze ich nazw, wszystko mam na skryptach zrobione i juz od wielu lat nie zagladalem do menu kupowania. Jakby jakas bron nie byla uwzgledniona to chyba temat nizej ktos podal linka z wszystkimi nazwami broni
#183915 Ograniczenie broni - tylko pistolety i nóż
Napisane przez sebul
w 28.10.2010 19:25
#183109 Dodanie klasie szansy na odrodzenie
Napisane przez sebul
w 24.10.2010 23:10
new player_dmg[33]
dodaj pod
new odrodzenie[33] // odradzanie się klasy
znajdź funkcję
public RoundStart()
a w niej
for(new i=0; i<33; i++) {
dodaj pod
if(player_class[i] == Twoja_Klasa)
odrodzenie[i] = 3 // klasa będzie miała 1/3 szansy na odrodzenie
else
odrodzenie[i] = 0
znajdź
public add_respawn_bonus(id)
{
if(player_b_respawn[id] > 0)
{
new svIndex[32]
num_to_str(id,svIndex,32)
new roll = random_num(1,player_b_respawn[id])
if(roll == 1)
{
new maxpl,players[32]
get_players(players, maxpl)
if(maxpl > 2)
{
cs_set_user_money(id,cs_get_user_money(id)+4000)
set_task(0.5,"respawn",0,svIndex,32)
}
else
{
set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
show_hudmessage(id, "Wiecej niz 2 graczy jest wymagane do ponownego odrodzenia sie")
}
}
}
}
zamień na
public add_respawn_bonus(id)
{
if(player_b_respawn[id] > 0 || odrodzenie[id] > 0)
{
new svIndex[32]
num_to_str(id,svIndex,32)
new roll, rolled
if(player_b_respawn[id] > 0) roll = random_num(1,player_b_respawn[id])
if(odrodzenie[id] > 0) rolled = random_num(1,odrodzenie[id])
if(roll == 1 || rolled == 1)
{
new maxpl,players[32]
get_players(players, maxpl)
if(maxpl > 2)
{
cs_set_user_money(id,cs_get_user_money(id)+4000)
set_task(0.5,"respawn",0,svIndex,32)
}
else
{
set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
show_hudmessage(id, "Wiecej niz 2 graczy jest wymagane do ponownego odrodzenia sie")
}
}
}
}
Przy takim rozwiązaniu gdy klasa będzie miała moc odradzania (tą co podałem) i item, który daje szansę na odrodzenie, to po prostu "odbędą się" dwa losowania na odrodzenie, czyli reasumując klasa będzie miała jeszcze większe szanse na odrodzenie.
w menu wyboru klas znajdź
g_haskit[id] = 0
dodaj pod
odrodzenie[id] = 0
przy wybranej klasie dodaj
odrodzenie[id] = 3 // klasa będzie miała 1/3 szansy na odrodzenie
// lub
odrodzenie[id] = 4 // klasa będzie miała 1/4 szansy na odrodzenie
przykład
case X:
{
player_class[id] = Jakas_Klasa
}
case X:
{
player_class[id] = Twoja_Klasa
odrodzenie[id] = 3
}
case X:
#183150 Prośba o napisanie mocy
Napisane przez sebul
w 25.10.2010 14:19
[Tutorial] Dodanie klasie szansy na odrodzenie - Nieoficjalny polski support AMX Mod X- 1/3 szansy na odrodzenie
A jeśli chodzi Ci o item, to już jest w standardzie taki.
#162252 Pytania związane z robieniem nowych klas i itemów
Napisane przez
Pro DiabloMod
w 21.08.2010 07:57
wyciągnij z tego kod i dodaj tak jak przy tym poradniku:
http://amxx.pl/tutor...asy-t23969.html
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: Gram Jajami
- Regulamin


Dodatki SourceMod



Moja zawartość
