/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <codmod> #include <fun> #include <hamsandwich> #include <cstrike> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "CheQ" new Ubrania_CT[4][]={"sas","gsg9","urban","gign"}; new Ubrania_Terro[4][]={"arctic","leet","guerilla","terror"}; new bool:MaKlase[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1); cod_register_class("Zmianiacz","Opis",1<<CSW_DEAGLE,1,1,1,1) } public cod_class_enabled(id) { MaKlase[id] = true; } public cod_class_disabled(id) { MaKlase[id] = false; } public Odrodzenie(id) { if(!is_user_alive(id) || !MaKlase[id]) return PLUGIN_CONTINUE; give_item(id, "weapon_deagle"); if(cod_get_user_level(id) >= 10) give_item(id,"weapon_hegrenade"); if(cod_get_user_level(id) >= 15) give_item(id, "weapon_famas"); if(cod_get_user_level(id) >= 20) ZmienUbranie(id, 0); if(cod_get_user_level(id)>= 35) give_item(id, "weapon_m4a1"); if(cod_get_user_level(id) >= 70) give_item(id, "weapon_ak47"); if(cod_get_user_level(id) >= 210) give_item(id, "weapon_scout"); return PLUGIN_CONTINUE; } public ZmienUbranie(id,reset) { if (id<1 || id>32 || !is_user_connected(id)) return PLUGIN_CONTINUE; if (reset) cs_reset_user_model(id); else { new num = random_num(0,3); switch(get_user_team(id)) { case 1: cs_set_user_model(id, Ubrania_CT[num]); case 2:cs_set_user_model(id, Ubrania_Terro[num]); } } return PLUGIN_CONTINUE; }
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.
|
Anonimowy*BB*
Rejestracja: 02.10.2011Aktualnie: Nieaktywny
Poza forum Ostatnio: 25.04.2012 23:45
Statystyki
- Grupa: Użytkownik
- Całość postów: 72
- Odwiedzin: 4 477
- Tytuł: Pomocny
- Wiek: Wiek nie został ustalony
- Urodziny: Data urodzin nie została podana
-
Imię
Mateusz
-
Płeć
Mężczyzna
-
Lokalizacja
PdoN'
Narzędzia użytkownika
Ostatnio byli
#395819 [ROZWIĄZANE] Bronie od Levela :)
Napisane przez dasiek w 11.04.2012 18:24
#395822 [ROZWIĄZANE] amx na mixy
Napisane przez dasiek w 11.04.2012 18:28
#394118 [ROZWIĄZANE] Otworzenie Menu - Drugiej Strony
Napisane przez dasiek w 08.04.2012 18:38
menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc"); menu_additem(gMyMenu,"Czesc");
Tyle itemów w menu bedczie miało 2 strony a na 3 będą 2 elementy.
#393733 [VIP] Startowe bronie.
Napisane przez dasiek w 08.04.2012 08:50
#393735 Problem z zapisem poziomów
Napisane przez dasiek w 08.04.2012 08:53
#393812 Gdzie i jak zmienić wartość Cvary
Napisane przez dasiek w 08.04.2012 10:41
#393815 Problem z zapisem poziomów
Napisane przez dasiek w 08.04.2012 10:42
#387097 Smart Vip
Napisane przez dasiek w 27.03.2012 17:19
Vip na Flage ADMIN_LEVEL_H.
Posiada na start
*He
*Flash
*Smoke
*Dodatkowe 30 HP na start
*Menu a w nim Do Wyboru Deagle, Podwójny skok, Ciche Bieganie, Mniejszą grawitacje, Większą Stałą szybkość i Prefix w Nicku.
*Tylko Vip może podnosić i korzystać z awp.
Dodatkowo gdy na serwerze nie ma pliku vip.txt Plugin generuje go według Cvarów
vip_hpstart - Dodatkowe hp na start
vip_hestart - 0/1 Włącza wyłącza he na start
vip_flstart - 0/1 Włącza wyłącza flasha na start
vip_smstart - 0/1 Włącza wyłącza smoka na start
vip_awp - 0/1 Włącza wyłącza korzystanie z awp dla VIPA
vip_prefix - Prefix przed nickiem.
Zmiana Flagi VIP ? 16 linijka
#define VIP_FLAG ADMIN_LEVEL_H
Załączone pliki
-
smart_vip.sma 9,72 KB 479 Ilość pobrań
smart_vip.amxx -
smart_vip.sma 9,72 KB 315 Ilość pobrań
smart_vip.amxx
#391686 Blokada HE
Napisane przez dasiek w 05.04.2012 11:32
Polecam je na serwery Cod i Diablo gdyż na małych mapach typu fy snow mogą rzucać he 1/1 na respa. na moim Codzie funkcjonuje bez błędów i skutecznie.
Jak Działa:
Jeśli ktoś wyjmie He przed czasem ekran robi się czerwony pół przeźroczysty i delikwentowi odejmuje co 0.1 sekundy 8 hp (zmienianie cvarem) dopóki nie zmieni broni na inną.
block_hp // ile hp odejmjue co 10 sekundy jak ktos he wyciagnie (8)
block_time // ile trwa blokada. (25)
Instalacja standardowa.
Załączone pliki
-
he_block.sma 2,2 KB 891 Ilość pobrań
he_block.amxx
#393451 Klasa posiadająca Miny i Rakiety.
Napisane przez dasiek w 07.04.2012 19:14
new const nazwa[] = "Saper z Bazookom"; new const opis[] = "Mp5Navy Ma Miny i rakiety"; new const bronie = 1<<CSW_MP5NAVY; new const zdrowie = 0; new const kondycja = 10; new const inteligencja = 0; new const wytrzymalosc = 5;
Kod Klasy. Sma w Załączniku.
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
register_clcmd("say /day","cod_class_enabled");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
precache_sound("weapons/rocketfire1.wav")
precache_sound("weapons/mine_charge.wav")
precache_sound("weapons/mine_deploy.wav");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[id]--;
new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
entity_get_vector(id, EV_VEC_v_angle, vAngle);
entity_get_vector(id, EV_VEC_origin , Origin);
new Ent = create_entity("info_target");
entity_set_string(Ent, EV_SZ_classname, "Rocket");
entity_set_model(Ent, "models/rpgrocket.mdl");
vAngle[0] *= -1.0;
entity_set_origin(Ent, Origin);
entity_set_vector(Ent, EV_VEC_angles, vAngle);
entity_set_int(Ent, EV_INT_effects, 2);
entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
entity_set_edict(Ent, EV_ENT_owner, id);
emit_sound(Ent, CHAN_WEAPON, "weapons/rocketfire1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
VelocityByAim(id, 1000 , Velocity);
entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
set_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.0, entlist, 32);
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
continue;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
emit_sound( ent, CHAN_VOICE, "weapons/mine_deploy.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
emit_sound( ent, CHAN_BODY , "weapons/mine_charge.wav", 0.2, ATTN_NORM, 0, PITCH_NORM );
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32);
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
continue;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
Załączone pliki
-
klasa_saperzbazookom.sma 7,33 KB 125 Ilość pobrań
klasa_saperzbazookom.amxx -
klasa_saperzbazookom.sma 7,33 KB 58 Ilość pobrań
klasa_saperzbazookom.amxx
#392037 Sklep na DR tylko dla 1 seci :)
Napisane przez Na 5tyk w 05.04.2012 20:25
#302429 Silnik na naliczanie doświadczenia
Napisane przez mierzwi w 02.10.2011 17:59
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <nvault> #include <sqlx> #include <ColorChat> #define VERSION "0.2" new pCvar_Kill new pCvar_Survive; new pCvar_MinPlayers; new pCvar_SaveType; new g_iMaxClients; new bool:g_bEnoughPlayers = false; new g_sPrefix[] = "ExpMod"; new g_PlayerExp[33]; new bool:g_bWasLoad[33] = false; #if defined WORKING_ON_IP new const g_sServerAdress[] = "Write your server IP"; #endif new g_NvaultFile; new const g_sNvaultName[] = "ExpMod"; enum _:SQLData { SQLD_Host, SQLD_User, SQLD_Password, SQLD_Database }; new g_sSQLData[SQLData][32]; new g_pSQLD_Cvars[SQLData]; new g_sTable[32]; new Handle:g_hTuple; new bool:g_bRemote; new g_sCreateTableSql[] = "\ CREATE TABLE IF NOT EXISTS `%s`\ (\ `sid` VARCHAR(32),\ `exp` INT(10)\ )"; public plugin_init(){ register_plugin("Silnik ExpMod", VERSION, ""); #if defined WORKING_ON_IP new sServerAdress[24]; get_user_ip(0, sServerAdress, sizeof sServerAdress - 1); if(!equali(g_sServerAdress, sServerAdress)) set_fail_state("Dont try copy this plugin :)"); #endif register_event("DeathMsg", "eventDeathMsg", "a"); register_logevent("eventRoundStart", 2, "1=Round_Start"); register_logevent("eventRoundEnd", 2 , "1=Round_End"); register_cvar("exp_kill", "10"); register_cvar("exp_survive", "15"); register_cvar("exp_minplayers", "0"); register_cvar("exp_savetype", "1"); /* savetype: 0 - none, 1 - SQL, 2 - nvault */ pCvar_Kill = get_cvar_num("exp_kill"); pCvar_Survive = get_cvar_num("exp_survive"); pCvar_MinPlayers = get_cvar_num("exp_minplayers"); pCvar_SaveType = get_cvar_num("exp_savetype"); register_clcmd("say asd", "asd"); g_NvaultFile = nvault_open(g_sNvaultName); if(g_NvaultFile == INVALID_HANDLE) log_amx("Couldn't open nvault file (%s).", g_sNvaultName); g_pSQLD_Cvars[SQLD_Host] = register_cvar("exp_sql_host", "127.0.0.1"); g_pSQLD_Cvars[SQLD_User] = register_cvar("exp_sql_user", "root"); g_pSQLD_Cvars[SQLD_Password] = register_cvar("exp_sql_password", ""); g_pSQLD_Cvars[SQLD_Database] = register_cvar("exp_sql_database", "tescik"); register_cvar("exp_sql_table", "tabela"); register_cvar("exp_sql_remote_access", "0"); /* if database with server are on this same server, you would use 1, if aren't, use 0 */ SqlConnect(); g_iMaxClients = get_maxplayers(); } public asd(id){ client_print(id, print_chat, "%d", g_PlayerExp[id]); } public SqlConnect(){ get_pcvar_string(g_pSQLD_Cvars[SQLD_Host], g_sSQLData[SQLD_Host], 31); get_pcvar_string(g_pSQLD_Cvars[SQLD_User], g_sSQLData[SQLD_User], 31); get_pcvar_string(g_pSQLD_Cvars[SQLD_Password], g_sSQLData[SQLD_Password], 31); get_pcvar_string(g_pSQLD_Cvars[SQLD_Database], g_sSQLData[SQLD_Database], 31); get_cvar_string("exp_sql_table", g_sTable, 31); g_bRemote = bool:get_cvar_num("exp_sql_remote_access"); g_hTuple = SQL_MakeDbTuple(g_sSQLData[SQLD_Host], g_sSQLData[SQLD_User], g_sSQLData[SQLD_Password], g_sSQLData[SQLD_Database]); new Handle:hConnection, error, sError[256]; if((hConnection = SQL_Connect(g_hTuple, error, sError, 255))){ if(g_bRemote){ new Handle:hQuery; hQuery = SQL_PrepareQuery(hConnection, g_sCreateTableSql, g_sTable); if(!SQL_Execute(hQuery)){ SQL_QueryError(hQuery, sError, 255); log_amx("%s", sError); } } else{ new sCommand[512]; formatex(sCommand, 511, g_sCreateTableSql, g_sTable); SQL_ThreadQuery(g_hTuple, "handleSqlCreateTable", sCommand); } } else{ log_amx("%s", sError); } } public handleSqlCreateTable(FailState, Handle:Query, Error[], Errcode, Data[], DataSize){ if(Errcode) log_amx("Error on Table query: %s",Error) if(FailState == TQUERY_CONNECT_FAILED){ log_amx("Could not connect to SQL database.") return 0; } else if(FailState == TQUERY_QUERY_FAILED){ log_amx("Table Query failed.") return 0; } return 0; } public handleSqlSaveData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize){ if(Errcode) log_amx("Error on Table query: %s", Error); if(FailState == TQUERY_CONNECT_FAILED){ log_amx("Could not connect to SQL database."); return 0; } else if(FailState == TQUERY_QUERY_FAILED){ log_amx("Table Query failed"); return 0; } new id = Data[0]; if(SQL_MoreResults(Query) > 0){ new sCommand[512], sAUTHID[32]; get_user_authid(id, sAUTHID, sizeof sAUTHID - 1); formatex(sCommand, 511, "UPDATE %s SET `exp` = %i WHERE `sid` = '%s'", g_sTable, g_PlayerExp[id], sAUTHID); SQL_ThreadQuery(g_hTuple, "handleSqlSaveDataOther", sCommand); } else{ new sCommand[512], sAUTHID[32]; get_user_authid(id, sAUTHID, sizeof sAUTHID - 1); formatex(sCommand, 511, "INSERT INTO %s (`sid`, `exp`) VALUES('%s', %i)", g_sTable, sAUTHID, g_PlayerExp[id]); SQL_ThreadQuery(g_hTuple, "handleSqlSaveDataOther", sCommand); } return 0; } public handleSqlSaveDataOther(FailState, Handle:Query, Error[], Errcode, Data[], DataSize){ if(Errcode){ log_amx("Error on Table query: %s", Error); } if(FailState == TQUERY_CONNECT_FAILED){ log_amx("Could not connect to SQL database"); return 0; } else if(FailState == TQUERY_QUERY_FAILED){ log_amx("Table Query failed"); return 0; } return 0; } public handleSqlLoadData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize){ if(Errcode) log_amx("Error on Table query: %s",Error); if(FailState == TQUERY_CONNECT_FAILED){ log_amx("Could not connect to SQL database"); return 0; } else if(FailState == TQUERY_QUERY_FAILED){ log_amx("Table Query failed"); return 0; } new id = Data[0]; if(SQL_MoreResults(Query)){ g_PlayerExp[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "exp")); } else { g_bWasLoad[id] = true; /* change to true for don't double save to SQL */ SaveData(id); } return 0; } SaveData(id){ if(!is_user_connected(id)) return PLUGIN_CONTINUE; else if(!g_bWasLoad[id]) LoadData(id); if(pCvar_SaveType == 1){ new Handle:hConnection, error, sError[256]; if((hConnection = SQL_Connect(g_hTuple, error, sError, 255))){ new sAUTHID[32]; get_user_authid(id, sAUTHID, sizeof sAUTHID - 1); if(g_bRemote){ new Handle:hQuery; hQuery = SQL_PrepareQuery(hConnection, "SELECT * FROM %s WHERE `sid` = '%s'", g_sTable, sAUTHID); if(!SQL_Execute(hQuery)){ SQL_QueryError(hQuery, sError, 255); log_amx("%s", sError); } else{ if(SQL_MoreResults(hQuery) > 0){ hQuery = SQL_PrepareQuery(hConnection, "UPDATE %s SET `exp` = %i WHERE `sid` = '%s'", g_sTable, g_PlayerExp[id], sAUTHID); if(!SQL_Execute(hQuery)){ SQL_QueryError(hQuery, sError, 255); log_amx("%s", sError); } } else{ hQuery = SQL_PrepareQuery(hConnection, "INSERT INTO %s (`sid`, `exp`) VALUES('%s', %i)", g_sTable, sAUTHID, g_PlayerExp[id]); if(!SQL_Execute(hQuery)){ SQL_QueryError(hQuery, sError, 255); log_amx("%s", sError); } } } } else{ new sCommand[512], iData[1]; formatex(sCommand, 511, "SELECT * FROM %s WHERE `sid` = '%s'", g_sTable, sAUTHID); iData[0] = id; SQL_ThreadQuery(g_hTuple, "handleSqlSaveData", sCommand, iData, 1); } } else log_amx("%s", sError); } else if(pCvar_SaveType == 2){ new sAUTHID[32], sCommand[512]; get_user_authid(id, sAUTHID, sizeof sAUTHID - 1); formatex(sCommand, sizeof sCommand - 1, "#%d", g_PlayerExp[id]); nvault_set(g_NvaultFile, sAUTHID, sCommand); } return PLUGIN_CONTINUE; } LoadData(id){ if(is_user_connected(id) && !g_bWasLoad[id]) g_bWasLoad[id] = true; if(pCvar_SaveType == 1){ new Handle:hConnection, error, sError[256]; if((hConnection = SQL_Connect(g_hTuple, error, sError, 255))){ new sAUTHID[32]; get_user_authid(id, sAUTHID, sizeof sAUTHID - 1); if(g_bRemote){ new Handle:hQuery; hQuery = SQL_PrepareQuery(hConnection, "SELECT * FROM %s WHERE `sid` = '%s'", g_sTable, sAUTHID); if(!SQL_Execute(hQuery)){ SQL_QueryError(hQuery, sError, 255); log_amx("%s", sError); } else{ if(SQL_MoreResults(hQuery)){ g_PlayerExp[id] = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "exp")); } else SaveData(id); } } else{ new sCommand[512], iData[1]; formatex(sCommand, 511, "SELECT * FROM %s WHERE `sid` = '%s'", g_sTable, sAUTHID); iData[0] = id; SQL_ThreadQuery(g_hTuple, "handleSqlLoadData", sCommand, iData, 1); } } else{ log_amx("%s", sError); } } else if(pCvar_SaveType == 2){ new sAUTHID[32], sCommand[512], sPlayerExp[16]; get_user_authid(id, sAUTHID, sizeof sAUTHID - 1); nvault_get(g_NvaultFile, sAUTHID, sCommand, sizeof sCommand - 1); replace_all(sCommand, charsmax(sCommand), " ", "_"); replace_all(sCommand, charsmax(sCommand), "#", " "); parse(sCommand, sPlayerExp, sizeof sPlayerExp - 1); g_PlayerExp[id] = str_to_num(sPlayerExp); } } public client_authorized(id){ g_bWasLoad[id] = false; g_PlayerExp[id] = 0; LoadData(id); } public client_disconnect(id){ SaveData(id); g_bWasLoad[id] = false; } public eventRoundStart(){ if(get_playersnum() >= pCvar_MinPlayers) g_bEnoughPlayers = true; else g_bEnoughPlayers = false; if(pCvar_SaveType == 2){ nvault_close(g_NvaultFile); g_NvaultFile = nvault_open(g_sNvaultName); if(g_NvaultFile == INVALID_HANDLE) log_amx("Couldn't open nvault file (%s).", g_sNvaultName); } return PLUGIN_CONTINUE; } public eventRoundEnd(){ if(!g_bEnoughPlayers) return PLUGIN_CONTINUE; new iPlayers[32], iNum; get_players(iPlayers, iNum); for(new g = 0; g < iNum; g++){ new id = iPlayers[g]; if(!is_user_connected(id) || !is_user_alive(id)) continue; if(get_user_team(id) == 1){ g_PlayerExp[id] += pCvar_Survive; ColorChat(id, GREY, "^x04[%s]^x03 Zdobyles^x01 %d^x03 doswiadczenia za przezycie rundy^x01!", g_sPrefix, pCvar_Survive); SaveData(id); } } } public eventDeathMsg(){ new KillerID = read_data(1); new VictimID = read_data(2); if(IsPlayer(KillerID) && NotSameTeam(KillerID, VictimID) && KillerID != VictimID && g_bEnoughPlayers){ g_PlayerExp[KillerID] += pCvar_Kill; ColorChat(KillerID, GREY, "^x04[%s]^x03 Zdobyles^x01 %d^x03 doswiadczenia za zabicie przeciwnika^x01!", g_sPrefix, pCvar_Kill); } SaveData(KillerID); return PLUGIN_CONTINUE; } bool:IsPlayer(index) return ((1 <= index <= g_iMaxClients) && is_user_connected(index)); bool:NotSameTeam(index1, index2) return (get_user_team(index1) != get_user_team(index2));
#181536 MoneyMod v0.4a by funfel
Napisane przez mierzwi w 19.10.2010 19:49
Witam chciałbym wam przedstawić MoneyMod v0.4a, którego zrobiłem. Może dostanę od was +
Opis:
Jest to mod do serverów hidenseek (ganiany/easyblock). Za zabicie zdobywamy pieniądze za które możemy coś kupić (coś w rodzaju exp moda tylko kasa).
Główne menu: Menu w którym wybieramy gdzie chcemy dalej iść.
Informacje o graczach: Menu w którym możemy zobaczyć kto ma jakie statystyki (jest wyświetlone wszystko oprócz informacji o broniach i nabojach).
Menu itemów: Możemy tu kupić ulepszenia (opis ulepszeń niżej).
Menu broni: Możemy tu kupić granaty lub iść do menu z poszczególnymi broniami.
Menu poszczególnej broni np. deagle: Kupujemy tu broń oraz amunicję do niej (automatycznie jak kupisz broń masz 1 nabój zakupiony).
Opis itemów:
Extra Health - za każdy punkt dostajemy więcej życia na start;
Belching Blows - szansa na odbicie ciosu;
Respawn - szansa na odrodzenie po śmierci;
FallDamage Reductor - redukuje nasze obrażenia z upadku;
Repulsive Explosive Grenade - nasz granat wybuchowy staję się bombą odpychającą;
Bonus Money - za każde zabicie etc. dostajemy bonus w postaci kasy;
Anti Freeze - odporność na smoke;
Silent Walk - ciche chodzenie;
Anti Dazzle - anty-flash;
No Pain Shock - brak spowolnienia po strzale etc.;
Opis broni:
Explosive Grenade - szansa na granaty wybuchowy;
Dazzling Grenade - szansa na granat oślepiający;
Freezing Grenade - szansa na granat zamrażający;
Deagle/Awp/Usp/Scout - szansa na daną broń;
Bullets - amunicja do danej broni;
Funkcja "ostatni terro":
W tej funkcji kiedy zostaje 1 tt i cvar jest na 1, dla terrorysty pojawia się informacja aby wpisał /last i wybrał pomocną rzecz, aby mieć szanse na wygraną, pokaże się mu takie menu:
Health - daje ci życie;
Armor - daje ci armor;
Chance of rebirtch for all - daje dla całego twojego teamu (tt) szanse na odrodzenie;
Możliwy jest 1 wybór.
Automatyczne konkursy:
Co jakiś czas na sayu pisze aby napisać jakieś słowo, słowa są losowane i są trudne do napisania, kto pierwszy napisze wygrywa od 10 do 50 $.
Zabieranie/dawanie kasy:
Jest funkcja która pozwala dla admina z immunitetem dawać/zabierać komuś kasę:
mm_givemoney "nick/sid/ip" "ilość"
mm_takemoney "nick/sid/ip" "ilość"
Vip:
Vip jest na flagę "r". Vip nie dostaje więcej kasy ani nic, po prostu w tabeli pisze tylko VIP tam gdzie DEAD lub Bomb.
Autor:
Autorem jestem ja (funfel).
Komendy:
/mm - wejście do gł. menu;
/money - wejście do gł. menu;
/moneymod - wejście do gł. menu;
/mymoney - wyświetlenie na sayu twojej kasy;
/last - wejście do wyboru ostatniego itemu dla ostatniego tt;
/mymoney - wyświetlenie na sayu twojej kasy;
/items - opis itemów (na prośbę tych niżej);
Cvary:
(to co po cvarze to domyślna wartość)
amx_savestyle 1 - autozapis: 1 - sid, 2 - nick, 3 - ip;
amx_headsplash 0 - zabicie przez skok na głowę;
mm_players 3 - ilu graczy musi być na serverze aby naliczało kase;
mm_firstmoney 100 - ilość kasy dla osoby która jest 1 raz na serverze;
mm_chooselast 1 - funkcja "ostatni terro";
mm_kill 40 - ilość kasy za zabicie;
mm_survive 80 - ilość kasy za przeżycie (tylko tt);
mm_winround 60 - ilość kasy za wygranie rundy (tylko ct);
mm_suicide 5 - ilość zabieranej kasy za zabicie się;
mm_cost_hp 600 - koszt życia;
mm_cost_blows 1000 - koszt odbicia ciosów;
mm_cost_respawn 3000 - koszt odrodzenia;
mm_cost_falldmg 2500 - koszt reduktora obrażeń po upadku;
mm_cost_superhe 5000 - koszt odpychającej bomby;
mm_cost_bonusmoney 7500 - koszt bonusu;
mm_cost_walk 10000 - koszt cichego chodzenia;
mm_cost_noflash 50000 - koszt anty flasha;
mm_cost_nosmoke 40000 - koszt anty frosta;
mm_cost_shock 60000 - koszt braku spolownienia np. po strzale;
mm_cost_he 750 - koszt heńka;
mm_cost_flash 400 - koszt flesza;
mm_cost_smoke 600 - koszt frosta;
mm_cost_deagle 750 - koszt deagla;
mm_cost_awp 1000 - koszt awp;
mm_cost_usp 500 - koszt usp;
mm_cost_scout 800 - koszt scouta;
mm_cost_ammo_deagle 7500 - koszt naboju do deagla;
mm_cost_ammo_awp 10000 - koszt naboju do awp;
mm_cost_ammo_usp 4000 - koszt naboju do usp;
mm_cost_ammo_scout 7500 - koszt naboju do scouta;
mm_max_health 4 - ile można dodać max do życia;
mm_max_blows 5 - ile można dodać max do odbicia ciosów;
mm_max_respawn 5 - ile można dodać max do odrodzenia;
mm_max_falldmg 8 - ile można dodać max do reduktora obrażeń po upadku;
mm_max_superhe 4 - ile można dodać max do bomby odpychającej;
mm_max_bonusmoney 4 - ile można dodać max do bonusu;
mm_max_walk 1 - ile można dodać max do cichego chodzenia;
mm_max_noflash 1 - ile można dodać max do anty flasha;
mm_max_nosmoke 2 - ile można dodać max do anty frosta;
mm_max_shock 1 - ile można dodać max do braku spowolnienia np. po strzale;
mm_max_he 5 - ile można dodać max do heńka;
mm_max_flash 5 - ile można dodać max do flasha;
mm_max_smoke 5 - ile można dodać max do frosta;
mm_max_deagle 5 - ile można dodać max do deagla;
mm_max_awp 5 - ile można dodać max do awp;
mm_max_usp 5 - ile można dodać max do usp;
mm_max_scout 5 - ile można dodać max do scouta;
mm_max_ammo_deagle 2 - ile można dodać naboi do deagla;
mm_max_ammo_awp 2 - ile można dodać naboi do awp;
mm_max_ammo_usp 3 - ile można dodać naboi do usp;
mm_max_ammo_scout 2 - ile można dodać naboi do scouta;
mm_number_health 25 - ilość dodanego życia za 1 level.;
mm_number_bonusmoney 10 - ilość dodanej kasy za 1 level;
mm_number_itemhealth 50 - ilość dodanego życia dla ostatniego tt.;
mm_number_itemarmo 250 - ilość dodanego armora dla ostatniego tt.;
mm_distance_superhe 25 - moc bomby odpychającej;
mm_chance_blows 5 - szansa na odbicie ciosu;
mm_chance_respawnt 10 - szansa na odrodzenie w tt;
mm_chance_respawnct 20 - szansa na odrodzenie w ct;
mm_chance_he 20 - szansa na wylosowanie heńka;
mm_chance_flash 20 - szansa na wylosowanie flasha;
mm_chance_smoke 20 - szansa na wylosowanie frosta;
mm_chance_deagle 5 - szansa na deagla;
mm_chance_awp 4 - szansa na awp;
mm_chance_usp 8 - szansa na usp;
mm_chance_scout 6 - szansa na scouta;
mm_chance_itemrespawn 10 - szansa dla wszystkich tt na odrodzenie;
mm_percent_falldmg 5 - procent redukowanych obrażeń po upadku;
mm_percent_nosmoke 50 - tego nie edytować.;
Natywy:
mm_get_money(id) - sprawdza ile gracz ma kasy;
mm_set_money(id, amount) - ustawia dla gracza ilość kasy (najlepiej zrobić tak)
mm_set_money(id, mm_get_money(id) + twojaliczba)
Download:
W downloadzie daje zmodyfikowany plugin frostnade, który działa pod moneymod (musisz go wgrać, inaczej anti freeze nie będzie działać). Wrzucam sma!
moneymod.amxx - załącznik;
moneymod_frostnade.amxx - załącznik;
*moneymod.sma - załącznik*;
*moneymod_frostnade.sma - załącznik*;
frostnova.mdl - załącznik;
Bugi możecie pisać tutaj. Starałem się pisać po polsku (:
Wszelkie prawa zastrzeżone - Copyright © 2010.
Załączone pliki
-
moneymod_frostnade.amxx 30,41 KB 69 Ilość pobrań
-
moneymod_frostnade.sma 33,05 KB 405 Ilość pobrań
moneymod_frostnade.amxx -
frostnova.zip 7,35 KB 368 Ilość pobrań
-
moneymod.amxx 83,66 KB 77 Ilość pobrań
-
moneymod.sma 93,83 KB 674 Ilość pobrań
moneymod.amxx
#390975 Sklep na DR tylko dla 1 seci :)
Napisane przez Na 5tyk w 04.04.2012 07:06
#388986 CodMod z awansami klas
Napisane przez TheRock w 31.03.2012 16:37
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: Anonimowy*BB*
- Regulamin