Dėl sportas plugino
Posted: 2017 Mar 07 17:17
Sveiki. Gal galite pasakyti kame beda ? Stai prisegu sma failą nuo plugino. Radau pluginą kuris darant pritupimus didina greitį . Aš jį paredagavau kad visą statistiką saugotų į mysql . Kompiliavimo klaidų kompiliatorius nerodo , tačiau nuo jo lūžta serveris.
Version 0.9.531 Linux
[DPROTO]: Done.
AMX Mod X version 1.8.3-dev Copyright (c) 2004-2006 AMX Mod X Development Team
AMX Mod X comes with ABSOLUTELY NO WARRANTY; for details type `amxx gpl'.
This is free software and you are welcome to redistribute it under
certain conditions; type 'amxx gpl' for details.
stray key in process_key: item_getiteminfo 61
[LocalizeBug Fix] Successful Patching.
[CF.Fix]: Successfully loaded.
POD-Bot mm: plugin attaching
L 01/07/2016 - 15:11:37: -------- Mapchange to de_dust --------
Uploading dump (in-process) [proxy '']
/tmp/dumps/crash_20160107151137_1.dmp
success = yes
response: Discarded=1
Segmentation fault (core dumped)
Add "-debug" to the ./hlds_run command line to generate a debug.log to help with solving this problem
Thu Jan 7 15:11:38 EET 2016: Server restart in 10 seconds
Prisegu sma kodą , gal žinot kame bėda ?
Version 0.9.531 Linux
[DPROTO]: Done.
AMX Mod X version 1.8.3-dev Copyright (c) 2004-2006 AMX Mod X Development Team
AMX Mod X comes with ABSOLUTELY NO WARRANTY; for details type `amxx gpl'.
This is free software and you are welcome to redistribute it under
certain conditions; type 'amxx gpl' for details.
stray key in process_key: item_getiteminfo 61
[LocalizeBug Fix] Successful Patching.
[CF.Fix]: Successfully loaded.
POD-Bot mm: plugin attaching
L 01/07/2016 - 15:11:37: -------- Mapchange to de_dust --------
Uploading dump (in-process) [proxy '']
/tmp/dumps/crash_20160107151137_1.dmp
success = yes
response: Discarded=1
Segmentation fault (core dumped)
Add "-debug" to the ./hlds_run command line to generate a debug.log to help with solving this problem
Thu Jan 7 15:11:38 EET 2016: Server restart in 10 seconds
Prisegu sma kodą , gal žinot kame bėda ?
Code: Select all
#include <amxmodx>#include <hamsandwich>#include <engine>#include <fun>#include <fakemeta>#include <sqlx> #define PLUGIN "Jail Break: sportas"#define VERSION "2.0"#define AUTHOR "saimon" new ducks[33] new Handle:g_hDbTuple;new p_DbHost, p_DbUser, p_DbPass, p_DbName; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_forward(FM_PlayerPreThink, "PlayerPreThink", 0) RegisterHam(Ham_Spawn, "player", "spawnas", 1) p_DbHost = register_cvar( "amx_sport_dbhost", "xxxx" ); p_DbUser = register_cvar( "amx_sport_dbuser", "xxxx" ); p_DbPass = register_cvar( "amx_sport_dbpass", "xxxx" ); p_DbName = register_cvar( "amx_sport_dbname", "xxxx" ); SQL_CreateDbTuple( );} public plugin_end(){ SQL_SaveAllDbTuple(); if (g_hDbTuple) { SQL_FreeHandle(g_hDbTuple); }} stock print_colorchat(const id, const input[], any:...){ new count = 1, players[32]; static msg[191]; vformat(msg,190,input,3); replace_all(msg,190,"!g","^4");// green txt replace_all(msg,190,"!y","^1");// orange txt replace_all(msg,190,"!t","^3");// team txt replace_all(msg,190,"!w","^0");// team txt if (id) players[0] = id; else get_players(players,count,"ch"); for (new i=0;i<count;i++) if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); write_byte(players[i]); write_string(msg); message_end(); }} public spawnas(id){ sportas(id) duckai(id)} public sportas(id){ if(get_user_team(id) == 2) { client_print(id, print_chat, "[SPORTAS] Jus nesate kalinys !") } else { duckai(id) print_colorchat(id, "!g[!gSportas] !yJusu statistika:") print_colorchat(id, "!g[!gSportas] !y Pritupimai: !g%d ]", ducks[id]) }} public client_disconnect(id){ ducks[id] = 0 SQL_SaveDbTuple(id);} public client_putinserver(id){ SQL_LoadDbTuple(id);} SQL_CreateDbTuple(){ new szDBHost[ 64 ], szDBUser[ 32 ], szDBPass[ 32 ], szDBName[ 32 ], szQuery[ 256 ]; get_pcvar_string( p_DbHost, szDBHost, charsmax( szDBHost ) ); get_pcvar_string( p_DbUser, szDBUser, charsmax( szDBUser ) ); get_pcvar_string( p_DbPass, szDBPass, charsmax( szDBPass ) ); get_pcvar_string( p_DbName, szDBName, charsmax( szDBName ) ); g_hDbTuple = SQL_MakeDbTuple( szDBHost, szDBUser, szDBPass, szDBName, 0 ); format( szQuery, charsmax( szQuery ), "CREATE TABLE IF NOT EXISTS sportas (zaidejo_ip varchar(32) NOT NULL default '', pritupimai int(16) DEFAULT NULL) TYPE=MyISAM;" ); SQL_ThreadQuery( g_hDbTuple, "QueryHandler", szQuery );} SQL_SaveAllDbTuple( ){ new players[ 32 ], pnum, i; get_players( players, pnum ); for ( i = 0; i < pnum; i++ ) { SQL_SaveDbTuple( players[ i ] ); }} SQL_LoadDbTuple( id ){ new user_ip[ 32 ], szQuery[ 256 ], data[ 1 ]; get_user_ip( id, user_ip, charsmax( user_ip ), 1 ); data[ 0 ] = id; format( szQuery, charsmax( szQuery ), "SELECT zaidejo_ip, pritupimai FROM sportas WHERE zaidejo_ip = '%s';", user_ip ); SQL_ThreadQuery( g_hDbTuple, "QuerySelect", szQuery, data, 1 );} public QuerySelect( failstate, Handle:query, error[ ], errnum, data[ ], size, Float:queuetime ){ if ( ( failstate == TQUERY_QUERY_FAILED ) || ( failstate == TQUERY_CONNECT_FAILED ) ) { server_print( "* MySQL failstate: %s [%d]", error, errnum ); return; } new user_ip[ 32 ] new id = data[0] get_user_ip( id, user_ip, charsmax( user_ip ), 1 ); if ( !SQL_NumResults( query ) ) { new szQuery[ 256 ]; format( szQuery, charsmax( szQuery ), "INSERT INTO sportas (zaidejo_ip, pritupimai) VALUES ('%s', '0');", user_ip ); SQL_ThreadQuery( g_hDbTuple, "QueryHandler", szQuery ); ducks[ id ] = 0 } else { ducks[ id ] = SQL_ReadResult( query, 1 ); } } public QueryHandler( failstate, Handle:query, error[ ], errnum, data[ ], size, Float:queuetime ){ if ( ( failstate == TQUERY_QUERY_FAILED ) || ( failstate == TQUERY_CONNECT_FAILED ) ) { server_print( "* MySQL failstate: %s [%d]", error, errnum ); }} SQL_SaveDbTuple( id ){ if ( ducks[id] > 0 ) { new user_ip[ 32 ], szQuery[ 256 ]; get_user_ip( id, user_ip, charsmax( user_ip ), 1 ); format( szQuery, charsmax( szQuery ), "UPDATE sportas SET pritupimai = '%d' WHERE zaidejo_ip = '%s';", ducks[id], user_ip ); SQL_ThreadQuery( g_hDbTuple, "QueryHandler", szQuery ); }} public PlayerPreThink(id){ if(!is_user_alive(id)) return FMRES_IGNORED if(pev(id, pev_oldbuttons) & IN_DUCK && !(pev(id, pev_button) & IN_DUCK) && get_user_team(id) == 1) { static s_iFlags s_iFlags = pev(id, pev_flags) if(/*!*/(s_iFlags & FL_DUCKING)/* && pev(id, pev_bInDuck)*/) { ducks[id] ++ } } return FMRES_IGNORED;} public duckai(id){ switch(ducks[id]) { case 300 .. 700: set_user_maxspeed(id, get_user_maxspeed(id) + 5) case 701 .. 1500: set_user_maxspeed(id, get_user_maxspeed(id) + 10) case 1501 .. 2000: set_user_maxspeed(id, get_user_maxspeed(id) + 25) case 2001 .. 3000: set_user_maxspeed(id, get_user_maxspeed(id) + 50) case 3001 .. 5000: set_user_maxspeed(id, get_user_maxspeed(id) + 100) case 5001 .. 7000: set_user_maxspeed(id, get_user_maxspeed(id) + 125) case 7001 .. 9000: set_user_maxspeed(id, get_user_maxspeed(id) + 150) case 9001 .. 10000: set_user_maxspeed(id, get_user_maxspeed(id) + 200) case 10001 .. 12000: set_user_maxspeed(id, get_user_maxspeed(id) + 225) case 12001 .. 15000: set_user_maxspeed(id, get_user_maxspeed(id) + 250) } }