Raised This Month: $32 Target: $400
 8% 

database connection and automatic transfer


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
SANTO37
Member
Join Date: Aug 2008
Old 06-08-2019 , 18:03   database connection and automatic transfer
Reply With Quote #1

Hello,

I'm writing myself a match plugin.
But I'm in trouble.
There will be 5 VS 5 matches.
Players enter the game.
I want to put them on an automated team.

table like this

PHP Code:
CREATE TABLE IF NOT EXISTS `auto_player_team` (
  `
idint(10NOT NULL auto_increment,
  `
match_idvarchar(64NOT NULL default '',
  `
clan_idvarchar(64NOT NULL default '',
  `
playervarchar(64NOT NULL default '',
  `
team_CT_Tvarchar(64NOT NULL default '',
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM
output;

PHP Code:
INSERT INTO `auto_player_team` (`id`, `match_id`, `clan_id`, `player`, `team_CT_T`) VALUES
(1'124''12''SANTO37''CT'),
(
2'124''12''DiaLo''CT'),
(
3'124''12''MoovU6''CT'),
(
4'124''12''Laps''CT'),
(
5'124''12''Endles&7k''CT'),
(
6'124''19''Kazim127''T'),
(
7'124''19''SercanKu78''T'),
(
8'124''19''Mina4''T'),
(
9'124''19''CdfRT12''T'),
(
10'124''19''GOgo1''T'); 
information will be drawn from the database and players will be placed.

PHP Code:
#include <amxmodx>
#include <amxmisc> 
#include <sqlx>

new g_sqlhost[64] = "127.0.0.1"
new g_sqluser[64] = "amx_mac"
new g_sqlpass[64] = "amx_mac"
new g_sqldb[64] = "amx_mac"

new g_sqltable[64] = "auto_player_team"

public plugin_init(){
...
..

Can you please help me?
SANTO37 is offline
SANTO37
Member
Join Date: Aug 2008
Old 06-09-2019 , 00:39   Re: database connection and automatic transfer
Reply With Quote #2

Brother AmXDusThttps://forums.alliedmods.net/member.php?u=291042
This work gave the structure in a snap.
Many thanks to him.

It was tested working perfectly.


PHP Code:
/*
    From VEN's auto join on connect plugin
*/
#include <amxmodx>
#include <sqlx>



new const g_sqlhost[] = "127.0.0.1" 
new const g_sqluser[] = "amx_mac" 
new const g_sqlpass[] = "amx_mac" 
new const g_sqldb[] = "amx_mac" 

new const g_sqltable[] = "auto_player_team" 

new Handle:g_tuple

#define AUTO_TEAM_JOIN_DELAY 0.1

#define TEAM_SELECT_VGUI_MENU_ID 2

enum
{
    
JOIN_CT,
    
JOIN_T
}
public 
plugin_init() {
    
register_plugin("Auto Join""1.0""DusT")

    
register_message(get_user_msgid("ShowMenu"), "message_show_menu")
    
register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")

}
public 
plugin_cfg(){
    
set_task(0.1"connectDb")
}
public 
connectDb(){
    
g_tuple SQL_MakeDbTuple(g_sqlhostg_sqluserg_sqlpassg_sqldb)

    new 
query[512]
    
formatex(querycharsmax(query), "CREATE TABLE IF NOT EXISTS %s(id INT NOT NULL AUTO_INCREMENT, match_id VARCHAR(64) NOT NULL default '', clan_id VARCHAR(64) NOT NULL default '', player VARCHAR(64) NOT NULL default '', team_CT_T VARCHAR(64) NOT NULL default '', PRIMARY KEY(id))"g_sqltable)
    
SQL_ThreadQuery(g_tuple"checkTable"query)
}
public 
checkTable(failStateHandle:queryerror[], errNum){
    if(
errNum)
        
set_fail_state(error)
}    
public 
message_show_menu(msgiddestid) {
    static 
team_select[] = "#Team_Select"
    
static menu_text_code[sizeof team_select]
    
get_msg_arg_string(4menu_text_codesizeof menu_text_code 1)
    if (!
equal(menu_text_codeteam_select))
        return 
PLUGIN_CONTINUE

    checkTeamDb
id )

    return 
PLUGIN_HANDLED
}

public 
message_vgui_menu(msgiddestid) {
    if (
get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID)
        return 
PLUGIN_CONTINUE

    checkTeamDb
id )

    return 
PLUGIN_HANDLED
}
public 
checkTeamDbid ){
    new 
query[156], data[2]
    
data[0] = id
    formatex
(querycharsmax(query), "SELECT `team_CT_T` FROM %s WHERE `player` = '%s'"g_sqltablegetEscNameid ))
    
SQL_ThreadQuery(g_tuple"getTeam"querydatasizeof data)
}
public 
getTeamfailStateHandle:queryerror[], errNumdata[]){
    new 
idteam[3]
    
id data[0]
    if(!
is_user_connected(id))
        return
    if(!
SQL_NumResults(query))
        return 
    
SQL_ReadResult(query0teamcharsmax(team))
    if(
equali(team"ct"))
        
set_force_team_join_task(idJOIN_CT)
    else if(
equali(team"t"))
        
set_force_team_join_task(idJOIN_T)
}
public 
getEscNameid ){
    new 
escName[64], name[32]
    
get_user_name(idnamecharsmax(name))
    
SQL_QuoteString(Empty_HandleescNamecharsmax(escName), name )
    return 
escName
}
set_force_team_join_task(idteam_join) {
    static 
param_menu_msgid[2]
    
param_menu_msgid[0] = team_join
    set_task
(AUTO_TEAM_JOIN_DELAY"task_force_team_join"idparam_menu_msgidsizeof param_menu_msgid)
}

public 
task_force_team_join(menu_msgid[], id) {
    if (
get_user_team(id))
        return
    new 
team[2]
    switch(
menu_msgid[0]){
        case 
JOIN_CTteam[0] = '2'
        
case JOIN_Tteam[0] = '1'
        
default: team[0] = '6'
    
}
    
force_team_join(idteam)
}

stock force_team_join(idteam[]) {
    static 
jointeam[] = "jointeam"
    
engclient_cmd(idjointeamteam)

SANTO37 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:58.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode