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.
|
Pobyt w CT dopiero od x godzin na serwerze
#1
Napisano 23.09.2011 20:06
Poszukuję pluginu na JB (lub modyfikacji do JB Extreme), który by umożliwiał grę w CT tylko osobom, które przegrały 5 godzin na serwerze. Z góry dziękuję za pomoc.
#3
Napisano 23.09.2011 21:36
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?
#5
Napisano 23.09.2011 21:50
nie wiem czy działa robiłem na szybko
#include <amxmodx> #include <nvault> #include <hamsandwich> #include <cstrike> #define PLUGIN "Save Player's playing time" #define VERSION "1.0" #define AUTHOR "#Vaverix." new czas_gry[33]; new g_vault; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say /czas","czas"); g_vault = nvault_open("SPPT"); if (g_vault == INVALID_HANDLE) set_fail_state( "Nie udalo sie otworzyc pliku nvault!"); RegisterHam(Ham_Spawn, "player", "spawn", 1) } public client_connect(id) { wczytaj_czas_gry(id); } public client_disconnect(id) { zapisz_czas_gry(id); czas_gry[id] = 0; if(task_exists(id)) remove_task(id); } public wczytaj_czas_gry(id) { new name[35],vaultkey[64],vaultdata[256]; get_user_name(id,name,34); format(vaultkey,63,"%s-gametime",name); nvault_get(g_vault,vaultkey,vaultdata,255); czas_gry[id] = str_to_num(vaultdata); return PLUGIN_CONTINUE; } public zapisz_czas_gry(id) { new name[35],vaultkey[64],vaultdata[256]; get_user_name(id,name,34); czas_gry[id] += get_user_time(id, 1); format(vaultkey,63,"%s-gametime",name); format(vaultdata, 255, "%d", czas_gry[id]); nvault_set(g_vault,vaultkey,vaultdata) czas_gry[id] = str_to_num(vaultdata); return PLUGIN_CONTINUE; } public czas(id) { new sekundy = (czas_gry[id] + get_user_time(id, 1)), minuty, godziny; while(sekundy >= 60) { sekundy -= 60; minuty++; } while(minuty >= 60) { minuty -= 60; godziny++; } client_print(id,print_chat,"Grasz juz %ih %imin %is na tym serwerze!", godziny, minuty, sekundy); if(godziny >= 5) { client_print(id,print_chat,"Masz Przegrane ponad 5 H mozesz grac w ct"); } return PLUGIN_HANDLED; } public plugin_end() nvault_close(g_vault); public spawn(id) { new sekundy = (czas_gry[id] + get_user_time(id, 1)), minuty, godziny; while(sekundy >= 60) { sekundy -= 60; minuty++; } while(minuty >= 60) { minuty -= 60; godziny++; } if(godziny < 5) { cs_set_user_team(id, 1) user_kill(id, 1) } }
If you can dream it, you can do it.
#6
Napisano 23.09.2011 22:07
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?
#7
Napisano 23.09.2011 22:24
Tak, na serwerze posiadam PsychoStats.MisieQ właśnie wiem, tylko moja jest oparta na psychostatsach, bo nie chciałem zapisywać po raz kolejny nicków wszystkich graczy i ich czasu pobytu na serwerze, ponieważ to jest zbędne obciążenie, dlatego jeżeli posiadałby podobny plugin, to można by tak zaoszczędzić zużycie serwera oraz zaoszczędzić minimalnie miejsce ;]
MisieQ wie...
Użytkownik Redux edytował ten post 23.09.2011 22:25
#8
Napisano 23.09.2011 22:55
Cvary:
// Dane bazy sql amx_sn_ps_host "" amx_sn_ps_user "" amx_sn_ps_pass "" amx_sn_ps_db "" // Minimalny czas w sekundach, aby moc byc CT sn_min_czas ""
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?
#9
Napisano 23.09.2011 23:02
EDIT: Jest problem. Plugin zabija wszystkich TT i zostawia jednego.
Wycinek z logu błędów:
L 09/24/2011 - 01:19:40: Start of error session.
L 09/24/2011 - 01:19:40: Info (map "jail_abc_outside_b2") (file "addons/amxmodx/logs/error_20110924.log")
L 09/24/2011 - 01:19:40: [CSTRIKE] Invalid player 1
L 09/24/2011 - 01:19:40: [AMXX] Displaying debug trace (plugin "WymaganyCzasDlaCT.amxx")
L 09/24/2011 - 01:19:40: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 09/24/2011 - 01:19:40: [AMXX] [0] WymaganyCzasDlaCT.sma::spawn (line 42)
L 09/24/2011 - 01:19:40: [CSTRIKE] Invalid player 4
L 09/24/2011 - 01:19:40: [AMXX] Displaying debug trace (plugin "WymaganyCzasDlaCT.amxx")
L 09/24/2011 - 01:19:40: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 09/24/2011 - 01:19:40: [AMXX] [0] WymaganyCzasDlaCT.sma::spawn (line 42)
L 09/24/2011 - 01:19:41: [CSTRIKE] Invalid player 5
L 09/24/2011 - 01:19:41: [AMXX] Displaying debug trace (plugin "WymaganyCzasDlaCT.amxx")
L 09/24/2011 - 01:19:41: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 09/24/2011 - 01:19:41: [AMXX] [0] WymaganyCzasDlaCT.sma::spawn (line 42)
L 09/24/2011 - 01:19:41: [CSTRIKE] Invalid player 3
L 09/24/2011 - 01:19:41: [AMXX] Displaying debug trace (plugin "WymaganyCzasDlaCT.amxx")
L 09/24/2011 - 01:19:41: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 09/24/2011 - 01:19:41: [AMXX] [0] WymaganyCzasDlaCT.sma::spawn (line 42)
L 09/24/2011 - 01:19:41: [CSTRIKE] Invalid player 9
L 09/24/2011 - 01:19:41: [AMXX] Displaying debug trace (plugin "WymaganyCzasDlaCT.amxx")
L 09/24/2011 - 01:19:41: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 09/24/2011 - 01:19:41: [AMXX] [0] WymaganyCzasDlaCT.sma::spawn (line 42)
L 09/24/2011 - 01:19:42: [CSTRIKE] Invalid player 8
L 09/24/2011 - 01:19:42: [AMXX] Displaying debug trace (plugin "WymaganyCzasDlaCT.amxx")
L 09/24/2011 - 01:19:42: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 09/24/2011 - 01:19:42: [AMXX] [0] WymaganyCzasDlaCT.sma::spawn (line 42)
L 09/24/2011 - 01:19:45: [CSTRIKE] Invalid player 6
L 09/24/2011 - 01:19:45: [AMXX] Displaying debug trace (plugin "WymaganyCzasDlaCT.amxx")
L 09/24/2011 - 01:19:45: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 09/24/2011 - 01:19:45: [AMXX] [0] WymaganyCzasDlaCT.sma::spawn (line 42)
L 09/24/2011 - 01:19:53: [CSTRIKE] Invalid player 5
L 09/24/2011 - 01:19:53: [AMXX] Displaying debug trace (plugin "WymaganyCzasDlaCT.amxx")
L 09/24/2011 - 01:19:53: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 09/24/2011 - 01:19:53: [AMXX] [0] WymaganyCzasDlaCT.sma::spawn (line 42)
Użytkownik Redux edytował ten post 24.09.2011 00:22
#10
Napisano 24.09.2011 06:58
Edit.Lub z zapisem mysql w pluginie w około 10 -15 lini dajesz dane do bazy
Stworzy się tabelka Czasy tam godziny minuty sekundy co rundę sprawdza godziny gracza
jeśli ma mniej niż 5 wywala go do tt i daje info na czacie
Sprawdź
#include <amxmodx>
#include <sqlx>
#include <hamsandwich>
#include <ColorChat>
#include <cstrike>
#define PLUGIN "5h to play"
#define VERSION "1.0"
#define AUTHOR "speedkill"
new Host[] = ""
new User[] = ""
new Pass[] = ""
new Db[] = ""
new Handle:g_SqlTuple
new playedtime[33];
new stats[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(1.0, "MySql_Init")
RegisterHam(Ham_Spawn, "player", "spawn", 1)
}
public MySql_Init()
{
g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle","CREATE TABLE IF NOT EXISTS Czasy (name varchar(255),godziny varchar(255),minuty varchar(255),sekundy varchar(255))")
}
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple)
}
public Load_MySql(id)
{
new name[32], szTemp[512]
get_user_name(id, name, 31)
new Data[1]
Data[0] = id
format(szTemp,charsmax(szTemp),"SELECT * FROM `Czasy` WHERE (`Czasy`.`name` = '%s')", name)
SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
}
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error)
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("Load Query failed. [%d] %s", Errcode, Error)
}
new id
id = Data[0]
if(SQL_NumResults(Query) > 0)
{
stats[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"name"))
}
else
{
new name[32]
get_user_name(id, name, 31)
new szTemp[512]
new sekundy = (playedtime[id] + get_user_time(id, 1)), minuty, godziny;
while(sekundy >= 60)
{
sekundy -= 60;
minuty++;
}
while(minuty >= 60)
{
minuty -= 60;
godziny++;
}
format(szTemp,charsmax(szTemp),"INSERT INTO `Czasy` ( `name` , `godziny`, `minuty`, `sekundy`)VALUES ('%s','%i','%i','%i');",name,godziny,minuty,sekundy)
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
return PLUGIN_HANDLED
}
public Save_MySql(id)
{
new szTemp[512]
new name[32]
get_user_name(id, name, 31)
new sekundy = (playedtime[id] + get_user_time(id, 1)), minuty, godziny;
while(sekundy >= 60)
{
sekundy -= 60;
minuty++;
}
while(minuty >= 60)
{
minuty -= 60;
godziny++;
}
format(szTemp,charsmax(szTemp),"UPDATE `Czasy` SET godziny='%i',minuty='%i',sekundy='%i' WHERE name = '%s'",godziny,minuty,sekundy,name)
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
return PLUGIN_HANDLED
}
public client_putinserver(id)
{
Load_MySql(id)
}
public client_disconnect(id)
{
Save_MySql(id)
}
public spawn(id)
{
new sekundy = (playedtime[id] + get_user_time(id, 1)), minuty, godziny;
while(sekundy >= 60)
{
sekundy -= 60;
minuty++;
}
while(minuty >= 60)
{
minuty -= 60;
godziny++;
}
if(godziny < 5)
{
ColorChat(id,GREEN,"Nie masz przegranych 5 godzin na serwerze musisz grac w tt !")
cs_set_user_team(id, 1)
user_kill(id, 1)
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1250\\ deff0\\ deflang1045{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/
Użytkownik speedkill123 edytował ten post 24.09.2011 07:13
If you can dream it, you can do it.
#11
Napisano 24.09.2011 09:50
1. Muszę do AMXX doinstalować moduły sqlx i ColorChat?#include <amxmodx>
#include <sqlx>
#include <hamsandwich>
#include <ColorChat>
#include <cstrike>
2. Nie będzie się gryzł z innymi danymi w bazie Psychostats serwera?
#12
Napisano 24.09.2011 10:17
Posiadam taki plugin, ale nie udostępnie
Bo jest tam Ban na CT + Menu Drużyny + CT od x H w jednym
Jeśli spam to usunąć
#13
Napisano 24.09.2011 10:24
Eh nie lepiej wgrać plugin który zlicza czas pobytu gracza na serwerze i zapisuje do Vault ?
Posiadam taki plugin, ale nie udostępnie
Bo jest tam Ban na CT + Menu Drużyny + CT od x H w jednym
Jeśli spam to usunąć
Sądzę, że skoro mam Psychostats na serwerze to lepiej będzie wykorzystać jego statystyki.
#14
Napisano 24.09.2011 10:25
Spotkałem się z takim błędem na jednej serwerowni.
A pomyślałeś że jak ci baza "jeb*ie" ?
#15
Napisano 24.09.2011 10:27
Psychostats nie zawsze ma dobre statystyki.
Spotkałem się z takim błędem na jednej serwerowni.
A pomyślałeś że jak ci baza "jeb*ie" ?
A po co zbędne obciążenie dla serwera, skoro wszystko może być na bazie? Jak baza się sypnie/dostanie awarii to po prostu wyłączę na ten czas plugin.
1. Muszę do AMXX doinstalować moduły sqlx i ColorChat?#include <amxmodx>
#include <sqlx>
#include <hamsandwich>
#include <ColorChat>
#include <cstrike>
2. Nie będzie się gryzł z innymi danymi w bazie Psychostats serwera?
Użytkownik Redux edytował ten post 24.09.2011 10:33
#16
Napisano 24.09.2011 11:09
Jaką masz wersje amxx z tego co mi wiadomo to od 1.80 to jest już sql
Nie , nie będzie się gryzł z danymi
ps. Naxe ban na ct jest tutaj
If you can dream it, you can do it.
#17
Napisano 24.09.2011 11:11
ColorChat to nie moduł on jest potrzebny do kompilacji
Jaką masz wersje amxx z tego co mi wiadomo to od 1.80 to jest już sql
Nie , nie będzie się gryzł z danymi
ps. Naxe ban na ct jest tutaj
OK, dziękować, za chwilę powiem, jak plugin się sprawuje.
#18
Napisano 24.09.2011 11:17
Masz tu naprawiony
Nie sprawdzałem teamu gracza
#include <amxmodx> #include <sqlx> #include <hamsandwich> #include <ColorChat> #include <cstrike> #define PLUGIN "5h to play" #define VERSION "1.0" #define AUTHOR "speedkill" new Host[] = "" new User[] = "" new Pass[] = "" new Db[] = "" new Handle:g_SqlTuple new playedtime[33]; new stats[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) set_task(1.0, "MySql_Init") RegisterHam(Ham_Spawn, "player", "spawn", 1) } public MySql_Init() { g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle","CREATE TABLE IF NOT EXISTS Czasy (name varchar(255),godziny varchar(255),minuty varchar(255),sekundy varchar(255))") } public plugin_end() { SQL_FreeHandle(g_SqlTuple) } public Load_MySql(id) { new name[32], szTemp[512] get_user_name(id, name, 31) new Data[1] Data[0] = id format(szTemp,charsmax(szTemp),"SELECT * FROM `Czasy` WHERE (`Czasy`.`name` = '%s')", name) SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1) } public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { if(FailState == TQUERY_CONNECT_FAILED) { log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error) } else if(FailState == TQUERY_QUERY_FAILED) { log_amx("Load Query failed. [%d] %s", Errcode, Error) } new id id = Data[0] if(SQL_NumResults(Query) > 0) { stats[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query,"name")) } else { new name[32] get_user_name(id, name, 31) new szTemp[512] new sekundy = (playedtime[id] + get_user_time(id, 1)), minuty, godziny; while(sekundy >= 60) { sekundy -= 60; minuty++; } while(minuty >= 60) { minuty -= 60; godziny++; } format(szTemp,charsmax(szTemp),"INSERT INTO `Czasy` ( `name` , `godziny`, `minuty`, `sekundy`)VALUES ('%s','%i','%i','%i');",name,godziny,minuty,sekundy) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) } return PLUGIN_HANDLED } public Save_MySql(id) { new szTemp[512] new name[32] get_user_name(id, name, 31) new sekundy = (playedtime[id] + get_user_time(id, 1)), minuty, godziny; while(sekundy >= 60) { sekundy -= 60; minuty++; } while(minuty >= 60) { minuty -= 60; godziny++; } format(szTemp,charsmax(szTemp),"UPDATE `Czasy` SET godziny='%i',minuty='%i',sekundy='%i' WHERE name = '%s'",godziny,minuty,sekundy,name) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) } public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { return PLUGIN_HANDLED } public client_putinserver(id) { Load_MySql(id) } public client_disconnect(id) { Save_MySql(id) } public spawn(id) { if(is_user_connected(id) && is_user_alive(id)) { if(cs_get_user_team(id) == CS_TEAM_CT) { new sekundy = (playedtime[id] + get_user_time(id, 1)), minuty, godziny; while(sekundy >= 60) { sekundy -= 60; minuty++; } while(minuty >= 60) { minuty -= 60; godziny++; } if(godziny < 5) { ColorChat(id,GREEN,"Nie masz przegranych 5 godzin na serwerze musisz grac w tt !") cs_set_user_team(id, 1) user_kill(id, 1) } } } }
If you can dream it, you can do it.
#19
Napisano 24.09.2011 11:31
//AMXXPC compile.exe
// by the AMX Mod X Dev Team
//// WymaganyCzasDlaCT.sma
// D:\Program Files\AMX Mod X\files\base\scripting\WymaganyCzasDlaCT.sma(4) : fa
tal error 100: cannot read from file: "ColorChat"
//
// Compilation aborted.
// 1 Error.
// Could not locate output file D:\Program Files\AMX Mod X\files\base\scripting\
compiled\WymaganyCzasDlaCT.amx (compile failed).
//
// Compilation Time: 0,55 sec
// ----------------------------------------
Press enter to exit ...
#20
Napisano 24.09.2011 11:37
Nie masz biblioteki colorchat - > http://amxx.pl/dokum...a/i11/colorchat
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych