tak daj sma pluginu /link do pluginu który pokazuje dmg i to się ogarnie lub ewentualnie wyłącz ten plugin całkiem
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.
|
Zawartość użytkownika MrBully
Odnotowano 9 pozycji dodanych przez MrBully (Rezultat wyszukiwania ograniczony do daty: 25.05.2023 )
#776239 Tworzenie Zapisu SQL od podstaw
Napisano przez MrBully w 30.01.2023 16:08 w Tutoriale
a więc tak.
register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0")Zbędne
DeathMsg()Brak rejestracji eventu
W DeathMsg
SaveData(vid) SaveData(kid)Pytanie, jaki jest sens wysyłania dwóch zapytań co śmierć gracza? Nie lepiej raz, przy wyjściu z serwera?
o tym że można deathmsg() użyć nie wiedziałem
co do zapisów przy śmieci tak w przypadku craszu serwera dane mogą się nie zapisać
#776222 Tworzenie Zapisu SQL od podstaw
Napisano przez MrBully w 29.01.2023 11:13 w Tutoriale
Poradnik jak napisać zapis sql od podstaw
na samej górze
#include <sqlx> #include <amxmodx>
niżej zmienne
// zmienna do cvarów new g_pCvarDB[4] new kille[33], deady[33] enum { Host = 0, User, Pass, DB } new Handle:g_hTuple //plik do logów w przypadku błędów new const g_szLogFile[] = "Zapislogi.log" // zmienna z poleceniem sql która stworzy nam tabele new const g_szTable[] = " \ CREATE TABLE IF NOT EXISTS `zapis` \ ( \ `SteamID` varchar(34) NOT NULL, \ `Kille` int(20) NOT NULL DEFAULT '0', \ `Deady` int(20) NOT NULL DEFAULT '0', \ PRIMARY KEY (`SteamID`) \ ); \ "
dalej
public plugin_init() { register_plugin("Zapis Sql", "1.0", "KTIVGames") register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0") //cvary g_pCvarDB[Host] = register_cvar("plugin_host", "127.0.0.1") g_pCvarDB[User] = register_cvar("plugin_user", "root") g_pCvarDB[Pass] = register_cvar("plugin_pass", "password") g_pCvarDB[DB] = register_cvar("plugin_dbname", "levels_db") // task od ładowanie sql set_task(0.1, "Delay_MySQL_Init") }
// kille i deady które przechwycimy i zapiszemy public DeathMsg() { new kid = read_data(1) //zabojca new vid = read_data(2) // ofiara kille[kid] +=1 deady[vid] +=1 //zapisanie danych gracza SaveData(vid) SaveData(kid) }
public plugin_end() { if (g_hTuple != Empty_Handle) { SQL_FreeHandle(g_hTuple) } } public Delay_MySQL_Init() { MySQL_Init() }
public MySQL_Init() { //dane sql do cvara new szHost[64], szUser[32], szPass[32], szDB[128] get_pcvar_string(g_pCvarDB[Host], szHost, charsmax(szHost)) get_pcvar_string(g_pCvarDB[User], szUser, charsmax(szUser)) get_pcvar_string(g_pCvarDB[Pass], szPass, charsmax(szPass)) get_pcvar_string(g_pCvarDB[DB], szDB, charsmax(szDB)) g_hTuple = SQL_MakeDbTuple(szHost, szUser, szPass, szDB) new iErrorCode, szError[512], Handle:hSQLConnection hSQLConnection = SQL_Connect(g_hTuple, iErrorCode, szError, charsmax(szError)) //sprawdzanei połączenia z sql if (hSQLConnection != Empty_Handle) { log_amx("[MySQL]Successfully connected to host: %s (ALL IS OK).", szHost) SQL_FreeHandle(hSQLConnection) } else { set_fail_state("Failed to connect to MySQL database: %s.", szError) } SQL_ThreadQuery(g_hTuple, "QueryCreateTable", g_szTable) }
public QueryCreateTable(iFailState, Handle:hQuery, szError[], iError, szData[], iSize, Float:flQueueTime) { SQL_IsFail(iFailState, iError, szError, g_szLogFile) }
wczytywanie danych oraz tworzenie nowych w przypadku nowego gracza
public client_putinserver(id) { if(is_user_hltv(id) || is_user_bot(id)) return set_task(1.0, "DelayLoad", id) } public DelayLoad(id) { // Load his data LoadData(id) }
public LoadData(id) { new szAuthID[35] get_user_authid(id, szAuthID, charsmax(szAuthID)) new szQuery[128], szData[5] // zapytanie wybranie tabeli z której dane zostaną wyciągnięte na podstawie SteamID formatex(szQuery, charsmax(szQuery), "SELECT * FROM `zapis` WHERE ( `SteamID` = '%s' );", szAuthID) num_to_str(id, szData, charsmax(szData)) SQL_ThreadQuery(g_hTuple, "QuerySelectData", szQuery, szData, charsmax(szData)) } public QuerySelectData(iFailState, Handle:hQuery, szError[], iError, szData[]) { if (SQL_IsFail(iFailState, iError, szError, g_szLogFile)) return new id = str_to_num(szData) // gracz nie istnieje w tabeli więc zostanie utworzone dane z jego killami i dedami if(!SQL_NumResults(hQuery)) { new szAuthID[35] get_user_authid(id, szAuthID, charsmax(szAuthID)) new szQuery[128] //zapytanie które tworzy nowy wpis z danymi formatex(szQuery, charsmax(szQuery), "INSERT INTO `zapis` (`SteamID`, `Kille`, `Deady`) VALUES ('%s', '%i', '%i');", szAuthID, kille[id],deady[id]) SQL_ThreadQuery(g_hTuple, "QueryInsertData", szQuery) return } // wyciaganie killi i deadów gracza z tabeli new Kille_Column = SQL_FieldNameToNum(hQuery, "Kille") new Deady_Column = SQL_FieldNameToNum(hQuery, "Deady") kille[id] = SQL_ReadResult(hQuery, Kille_Column) deady[id] = SQL_ReadResult(hQuery, Deady_Column) }
zapis do bazy
public SaveData(id) { new szAuthID[35], szName[32] get_user_authid(id, szAuthID, charsmax(szAuthID)) get_user_name(id, szName, charsmax(szName)) new szQuery[128] // zapytanie o zaktulizowanie danych gracza formatex(szQuery, charsmax(szQuery), "UPDATE `zapis` SET `Kille` = '%d', `Deady` = '%d' WHERE ( `SteamID` = '%s' );", kille[id], deady[id], szAuthID) SQL_ThreadQuery(g_hTuple, "QueryUpdateData", szQuery) } public QueryUpdateData(iFailState, Handle:hQuery, szError[], iError, szData[], iSize, Float:flQueueTime) { SQL_IsFail(iFailState, iError, szError, g_szLogFile) }
i na końcu stock od wyświetlania errorów
stock SQL_IsFail(iFailState, iError, szError[], const szLogFile[]) { if (iFailState == TQUERY_CONNECT_FAILED) { log_to_file(szLogFile, "[MySQL] Could not connect to SQL database: %s", szError) return true } else if (iFailState == TQUERY_QUERY_FAILED) { log_to_file(szLogFile, "[MySQL] Query failed: %s", szError) return true } else if (iError) { log_to_file(szLogFile, "[MySQL] Error on query: %s", szError) return true } return false }
Przykład :
sql.sma 4,48 KB 47 Ilość pobrań
sql.amxx
Poradnik napisany przezemnie na podstawie pluginu ze _levels_system (przerobiony)
ze_level_system.sma 16,16 KB 41 Ilość pobrań
ze_level_system.amxx
#776159 [ROZWIĄZANE] Crasz Hunk_AllocName: failed on 12392 bytes
Napisano przez MrBully w 22.01.2023 16:46 w Problemy
witam serwer craszuje na niektórych mapach wcześniej one działały
sewer na 1shot1kill
L 01/22/2023 - 16:29:52: FATAL ERROR (shutting down): Hunk_AllocName: failed on 12392 bytes FATAL ERROR (shutting down): Hunk_AllocName: failed on 12392 bytes
pełny zrzut konsoli
plugins.ini
; AMX Mod X plugins ; Admin Base - Always one has to be activated admin.amxx ; admin base (required for any admin-related) ;admin_sql.amxx ; admin base - SQL version (comment admin.amxx) ; Basic admincmd.amxx ; basic admin console commands adminhelp.amxx ; help command for admin console commands adminslots.amxx ; slot reservation multilingual.amxx ; Multi-Lingual management ; Menus menufront.amxx ; front-end for admin menus cmdmenu.amxx ; command menu (speech, settings) plmenu.amxx ; players menu (kick, ban, client cmds.) telemenu.amxx ; teleport menu (Fun Module required!) mapsmenu.amxx ; maps menu (vote, changelevel) pluginmenu.amxx ; Menus for commands/cvars organized by plugin ; Chat / Messages adminchat.amxx ; console chat commands antiflood.amxx ; prevent clients from chat-flooding the server scrollmsg.amxx ; displays a scrolling message imessage.amxx ; displays information messages adminvote.amxx ; vote commands ; Map related nextmap.amxx ; displays next map in mapcycle mapchooser.amxx ; allows to vote for next map timeleft.amxx ; displays time left on map ; Configuration pausecfg.amxx ; allows to pause and unpause some plugins statscfg.amxx ; allows to manage stats plugins via menu and commands ; Counter-Strike ;restmenu.amxx ; restrict weapons menu ;statsx.amxx ; stats on death or round end (CSX Module required!) ;miscstats.amxx ; bunch of events announcement for Counter-Strike ;stats_logging.amxx ; weapons stats logging (CSX Module required!) ; Custom - Add 3rd party plugins here bullet_damage.amxx walkguard.amxx cs_weap_restrict_api.amxx speedometer.amxx PrecacheX.amxx cords.amxx
plugins-zombie_escape
; Zombie Escape Mod v1.7 ; Help/More: http://escapers-zone.net/ ; Engine/Core ze_core.amxx ze_adminmenu.amxx ze_vip_system.amxx ze_level_system.amxx debug ze_set_player_level.amxx ze_levels_rank_top.amxx // ze_damage_control.amxx ze_damage_system.amxx ze_supplybox.amxx ze_timereward.amxx nademodes.amxx ze_multijump.amxx parachute.amxx ze_vip_system.amxx ;infection.amxx ;escape.amxx ze_break_message.amxx ze_win_message.amxx ze_best_defender.amxx ze_best_infector.amxx ze_prefixes.amxx boss_kingpin.amxx human_armor.amxx ;misje ze_mission_core.amxx debug ze_quest_test.amxx debug ; Setting API / Models amx_settings_api.amxx cs_weap_models_api.amxx ; Events/Messages Blocker ze_block_events_messages.amxx debug ; Classes ze_zombie_class.amxx ze_class_nemesis.amxx ze_classes.amxx zc_hunter.amxx ; Gamemodes ze_gamemodes.amxx debug ze_gamemode_escape.amxx debug ze_gamemode_nemesis.amxx ze_gamemode_swarm.amxx ; Effects/Messages ze_effects_frags.amxx ze_effects_messages.amxx ze_effects_weather.amxx ze_nightvision_lighting.amxx ; Coins System ze_coins_system.amxx debug ze_escape_coins_donation.amxx ; HUD|DHUD ze_hud_info.amxx ; Menu Main ze_main_menu.amxx ze_weapon_menu.amxx ; Items Manager ze_items_manager.amxx ze_items_limit.amxx ze_items_escape_coins.amxx ; Knockback System ze_knockback_system.amxx ; Long-Jump ze_leap.amxx ; Grenades ze_fire.amxx ze_frost.amxx ; Mod Files (Resources) ze_resources.amxx ze_countdown.amxx ze_zombie_sounds.amxx ;ze_special_models.amxx ; Extra Items: Humans ze_extra_fire_nade.amxx ze_extra_frost_nade.amxx ;zp_extra_pipe.amxx ze_extra_balrog1.amxx ze_nuke.amxx M4A1_DarkKnight.amxx AK47_Paladin.amxx force_shield_grenade.amxx Weapon_buffBaretta.amxx plugin-laserfist.amxx ; Extra Items: Zombies ze_extra_antifire.amxx ze_extra_antifreeze.amxx ze_madness.amxx ze_extra_zombie_gromgrenade.amxx t_virus.amxx ;Enable if needed ze_items_level.amxx ;Level System needed. ze_items_vip.amxx ;VIP System needed. ; ITEMS LEVEL Weapon_Broad.amxx CSO_PlasmaGun.amxx mp.amxx zp_extra_thanatos7.amxx normal_brickpeacev2.amxx ze_tornado.amxx zp_extra_thanatos3.amxx zp_extraitems_coilmg.amxx Lycanthrope_CSO.amxx CounterStrikeOnline_starchasersr.amxx starchaserar.amxx thunderForce.amxx AMXX_ScarOzD.amxx zp_hunter_killerx90.amxx hunter_killerx15.amxx stunrifleNORMAL.amxx buffm95tig.amxx inferno_cannon.amxx z47_goldredcannonex_zp50.amxx ;weapon_tiamat_mk4.amxx
a w necie mało informacji na ten temat
#775908 [ROZWIĄZANE] plugin nie działa plugin file open error
Napisano przez MrBully w 05.01.2023 11:20 w Problemy
witam plugin nie chce działać nie ładuje się wcale 0 errorów tylko to wyskakuje
L 01/05/2023 - 11:16:46: [AMXX] Plugin file open error (plugin "ze_block_events_messages.amx")
REHLDS version : 48/1.1.2.7/Stdio 3056 secure (10)
amx v1.8.3-dev+5169
#include <zombie_escape> // Variables new g_iFwSpawn // Cvars new g_pCvarBlockKillCmd, g_pCvarBlockMoneyHUD, g_pCvarBlockOtherHUD public plugin_init() { register_plugin("[ZE] Blocked Messages & Events", ZE_VERSION, AUTHORS) // Events. register_event("ResetHUD", "fw_ResetHUDs_Event", "b") // Block some messages register_message(get_user_msgid("TextMsg"), "Message_TextMsg") register_message(get_user_msgid("SendAudio"), "Message_SendAudio") // Fakemeta register_forward(FM_ClientKill, "Fw_ClientKill_Pre", 0) unregister_forward(FM_Spawn, g_iFwSpawn) // Hams RegisterHam(Ham_Touch, "weaponbox", "Fw_TouchWeaponBox_Pre", 0) RegisterHam(Ham_Touch, "armoury_entity", "Fw_TouchWeaponBox_Pre", 0) // Cvars g_pCvarBlockKillCmd = register_cvar("ze_block_kill", "1") g_pCvarBlockMoneyHUD = register_cvar("ze_block_money_hud", "1") g_pCvarBlockOtherHUD = register_cvar("ze_block_radar_ap_hp", "1") } public plugin_precache() { // Prevent Entities from being spawned like (Rain, Snow, Fog) It's registered here as this called before plugin_init() g_iFwSpawn = register_forward(FM_Spawn, "Fw_Spawn") } // Forward called after init. public plugin_cfg() { // Block buyzone in Map. set_member_game(m_bTCantBuy, true) set_member_game(m_bCTCantBuy, true) set_member_game(m_bMapHasBuyZone, false) } public Message_TextMsg() { new szMsg[22] get_msg_arg_string(2, szMsg, charsmax(szMsg)) // Block round end related messages if (equal(szMsg, "#Hostages_Not_Rescued") || equal(szMsg, "#Round_Draw") || equal(szMsg, "#CTs_Win") || equal(szMsg, "#Terrorists_Win") || equal(szMsg, "#Game_will_restart_in") || equal(szMsg, "#Game_Commencing")) return PLUGIN_HANDLED return PLUGIN_CONTINUE } public Message_SendAudio() { new szAudio[17] get_msg_arg_string(2, szAudio, charsmax(szAudio)) // Block CS round win audio messages if (equal(szAudio[7], "terwin") || equal(szAudio[7], "ctwin") || equal(szAudio[7], "rounddraw")) return PLUGIN_HANDLED return PLUGIN_CONTINUE } public fw_ResetHUDs_Event(id) { new iHideHUDs if (get_pcvar_num(g_pCvarBlockOtherHUD)) iHideHUDs |= HIDEHUD_HEALTH if (get_pcvar_num(g_pCvarBlockMoneyHUD)) iHideHUDs |= HIDEHUD_MONEY // Hide HUDs for player. set_member(id, m_iHideHUD, iHideHUDs) } public Fw_ClientKill_Pre(id) { // Block Kill Command if enabled if (get_pcvar_num(g_pCvarBlockKillCmd)) return FMRES_SUPERCEDE return PLUGIN_CONTINUE } public Fw_Spawn(iEnt) { // Invalid entity if (!pev_valid(iEnt)) return FMRES_IGNORED // Get classname new szClassName[32] get_entvar(iEnt, var_classname, szClassName, charsmax(szClassName)) // Prevent All (Rain, Snow, Fog) From the original map, So we can add our Weather if (equal(szClassName, "env_rain") || equal(szClassName, "env_snow") || equal(szClassName, "env_fog")) { engfunc(EngFunc_RemoveEntity, iEnt) return FMRES_SUPERCEDE } return FMRES_IGNORED } public Fw_TouchWeaponBox_Pre(iWeaponBox, iIndex) { if (!is_user_alive(iIndex)) return HAM_IGNORED // Block Zombies From Pick UP Weapons if (ze_is_user_zombie(iIndex)) return HAM_SUPERCEDE return HAM_IGNORED }
- AMXX.pl: Support AMX Mod X i SourceMod
- → Zawartość użytkownika MrBully
- Regulamin