Raised This Month: $ Target: $400
 0% 

Plugin error


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
riscanuc
Member
Join Date: Apr 2012
Old 01-20-2013 , 04:02   Plugin error
Reply With Quote #1

Can remove from this plugin everything related to mysql ? Sorry for my bad English..
Code:
#include <amxmodx>
#include <fakemeta_util>
#include <ColorChat>
#include <cstrike>
#include <hamsandwich>
#include <sqlx>
#include <deathrun_stats>

native dr_add_life(id, ile)
    
//#define Mysql
#define TOP_DATA_BUFFER_SIZE 1536

new const g_szPrefix[64] = "1vs1"

new g_iAsker[33], g_iTimeToRace[33];
new g_bUserRacing[33]
new Float:g_fHisTime[33], Float:g_fSpawnOrigin[3]
new finish[33] = false

#if defined Mysql
new wins[33]
new lost[33]
new nazwa_gracza[33][64]
new name[64]
new Handle:g_SqlTuple
new bool:WczytaneDane[33] = {false}
#endif

public plugin_init() 
{
    register_plugin(g_szPrefix, "0.1", "MarWit & speedkill")
    register_clcmd("say /race", "cmdRace")
    register_forward(FM_Think, "fwd_Think")
    register_event("DeathMsg", "DeathMsg", "a")
    new iEnt = fm_find_ent_by_class(-1, "info_player_start")
    pev(iEnt, pev_origin, g_fSpawnOrigin)
    
    CreateAdEntitys()
    #if defined Mysql
    RegisterHam(Ham_Spawn, "player", "respawn", 1)
    register_cvar("amx_race_host", "localhost")
    register_cvar("amx_race_user", "root")
    register_cvar("amx_race_pass", "root")
    register_cvar("amx_race_db", "db")
    polacz()
    register_clcmd("say /victorii","show")
    register_clcmd("say /top","Topka")
    #endif
}
#if defined Mysql
public polacz()
{
    new Host[32], User[32], Pass[32], DB[32]
    get_cvar_string("amx_race_host", Host, 31)
    get_cvar_string("amx_race_user", User, 31)
    get_cvar_string("amx_race_pass", Pass, 31)
    get_cvar_string("amx_race_db", DB, 31)
    g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,DB)
    
    new error, szError[128]
    new Handle:hConn = SQL_Connect(g_SqlTuple,error,szError, 127)
    if(error){
        log_amx("Error: %s", szError)
        return;
    }
    
    new Handle:Queries = SQL_PrepareQuery(hConn,"CREATE TABLE IF NOT EXISTS `Race` (name VARCHAR(64) NOT NULL, wins INT(10) NOT NULL DEFAULT 0, lost INT(10) NOT NULL DEFAULT 0, PRIMARY KEY(name))")
    
    SQL_Execute(Queries)
    SQL_FreeHandle(Queries)
    SQL_FreeHandle(hConn)
}
#endif
public fwd_Think(iEnt)
{
    new iNum, iTemp[33], bool:bContinue
    new szBuffer[1024]
    pev(iEnt, pev_classname, szBuffer, 1023)
    
    if(equal(szBuffer, "msgent"))
    {
        switch(random_num(1, 4))
        {
            case 1: ColorChat(0, RED, "[%s]^x01 Vrei să provoci pe cineva la cursa? Tastați /race și selectați un jucător!", g_szPrefix)
                case 2: ColorChat(0, RED, "[%s]^x01 Daca castigi cursa poti obtine 3 vieti sau 10.000 $ :]", g_szPrefix)
                #if defined Mysql
            case 3: ColorChat(0, RED, "[%s]^x01 Clasament si nr. de victorii puteti vedea tastand /victorii", g_szPrefix)
                case 4: ColorChat(0, RED, "[%s]^x01 Vrei sa vezi 10 cele mai bune timpuri ? Tasteaza /castigatori", g_szPrefix)
                #endif
        }
        set_pev(iEnt, pev_nextthink, get_gametime() + 45.0)
    } 
    else if(equal(szBuffer, "racesent"))
    {
        new szName[2][64]
        
        ColorChat(0, RED, "[%s]^x01 Curent de curse:", g_szPrefix)
        
        for(new i=1; i<=33; i++)
        {
            bContinue = false
            
            for(new iID=0; iID<33; iID++)
            {
                if(iTemp[iID] == i)
                    bContinue = true
            }
            
            if(!is_user_connected(i) || !g_bUserRacing[i] || bContinue)
                continue;
            
            get_user_name(i, szName[0], 63)    
            get_user_name(g_iAsker[i], szName[1], 63)
            
            ColorChat(0, RED, "[%s]^x04 %s^x01 ||^x04 %s", g_szPrefix, szName[0], szName[1])
            
            iTemp[iNum] = i
            iNum++
            iTemp[iNum] = g_iAsker[i]
            iNum++
        }
        
        if(iNum < 2)
            ColorChat(0, RED, "[%s]^x04 Brak!", g_szPrefix)
        
        set_pev(iEnt, pev_nextthink, get_gametime() + 90.0)
    }
    
    return FMRES_IGNORED
}
#if defined Mysql
public Topka(id)
{
        ColorChat(id, RED, "[%s]^x01 Incarcaturi ...", g_szPrefix)
        new szTemp[512],data[1]
        data[0] = id
        formatex(szTemp,charsmax(szTemp),"SELECT * FROM `Race` ORDER BY wins DESC LIMIT 10")
        SQL_ThreadQuery(g_SqlTuple,"top",szTemp,data,1)
}
public top(FailState,Handle:Query,Error[],Errcode,data[],DataSize)
{
    if(FailState!= TQUERY_SUCCESS)
    {
        log_amx("SQL Insert error: %s",Error)
    }
    
    new id = data[0]
    
    static Data[TOP_DATA_BUFFER_SIZE],Title[33],Len,Place,name[64],wins,lost
    
    Place = 0
    
    Len = formatex(Data[Len], TOP_DATA_BUFFER_SIZE - Len, "<html><body bgcolor=Black><br>")                                
    Len += formatex(Data[Len], TOP_DATA_BUFFER_SIZE - Len, "<center><table frame=^"border^" width=^"600^" cellspacing=^"0^" bordercolor=#4A4344 style=^"color:#56A5EC;text-align:center;^">")
    Len += formatex(Data[Len], TOP_DATA_BUFFER_SIZE - Len, "<tr><td><b>#</b></td><td><b>Nick</b></td><td><b>Zwyciestwa</b></td></td><td><b>Przegrane</b></td></td></tr>")
    
    while(SQL_MoreResults(Query))
    {
        Place++
        SQL_ReadResult(Query,0,name,63)
        wins = SQL_ReadResult(Query,1)    
        lost = SQL_ReadResult(Query,2)
        
        replace_all(name, 63, "<", "")
        replace_all(name, 63, ">", "")
        
        Len += formatex(Data[Len], TOP_DATA_BUFFER_SIZE - Len, "<tr>")
        Len += formatex(Data[Len], TOP_DATA_BUFFER_SIZE - Len, "<td><font color=Red>%d</font></td>", Place)
        Len += formatex(Data[Len], TOP_DATA_BUFFER_SIZE - Len, "<td>%s</td>", name)
        Len += formatex(Data[Len], TOP_DATA_BUFFER_SIZE - Len, "<td>%d</td>", wins)
        Len += formatex(Data[Len], TOP_DATA_BUFFER_SIZE - Len, "<td>%d</td>", lost)
        Len += formatex(Data[Len], TOP_DATA_BUFFER_SIZE - Len, "</tr>")
        
        SQL_NextRow(Query)
    }
    
    Len += formatex(Data[Len],TOP_DATA_BUFFER_SIZE - Len,"</center></body></html>")
    
    formatex(Title, 32, "Top Winners")
    show_motd(id, Data, Title)
    
    return PLUGIN_HANDLED
}

public show(id)
{
    new Data[1]
    Data[0] = id
    
    if(is_user_connected(id))
    {
        new szTemp[512]
        format(szTemp,charsmax(szTemp),"SELECT COUNT(*) FROM `Race` WHERE `wins` >= %d", wins[id])
        SQL_ThreadQuery(g_SqlTuple,"Rank",szTemp,Data,1)
    }
    return PLUGIN_CONTINUE
}

public Rank(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    new count = 0
    count = SQL_ReadResult(Query,0)
    if(count == 0)
        count = 1
    
    new id
    id = Data[0]
    ColorChat(id, RED, "[%s]^x01 Angajament %i si locul de %d castiga curse si %d pierzatori.", g_szPrefix,count,wins[id],lost[id])
    
    return PLUGIN_HANDLED
}

public plugin_end()
{
    SQL_FreeHandle(g_SqlTuple)
}
#endif
public client_connect(id)
{
    finish[id] = false
    #if defined Mysql
    new name[64];
    get_user_name(id, name, charsmax(name))
    if(strcmp(nazwa_gracza[id], name))
    {
        wins[id] = 0
        WczytaneDane[id] = false
        load(id)
    }
    #endif
    if(task_exists(id)) remove_task(id)
    
    g_bUserRacing[id] = false
    
    if(1 <= g_iAsker[g_iAsker[id]] <= 32)
    {
        g_iAsker[g_iAsker[id]] = 0;
        g_fHisTime[g_iAsker[id]] = 0.0
    }
    
    g_fHisTime[id] = 0.0
    g_iAsker[id] = 0    
}

public client_disconnect(id)
{
    if(task_exists(id)) remove_task(id)
    #if defined Mysql
    save(id)
    #endif
    g_bUserRacing[id] = false
    
    if(1 <= g_iAsker[g_iAsker[id]] <= 32) 
    {
        g_iAsker[g_iAsker[id]] = 0;
        g_fHisTime[g_iAsker[id]] = 0.0
    }
    
    g_fHisTime[id] = 0.0
    g_iAsker[id] = 0
}
#if defined Mysql
public client_authorized(id)
{
    get_user_name(id, nazwa_gracza[id], charsmax(nazwa_gracza[]))
}
#endif
public DeathMsg()
{
    static id
    id = read_data(2)
    
    if(g_bUserRacing[id] && is_user_connected(id) && is_user_connected(g_iAsker[id]))
    {
        new szName[64]
        get_user_name(g_iAsker[id], szName, 63)
        
        ColorChat(0, RED, "[%s]^x04 %s^x01 a cāștigat pentru că adversarul său a fost ucis!", g_szPrefix, szName)
        ColorChat(id, RED, "[%s] ^x01Przegrales! :F", g_szPrefix)
        ColorChat(g_iAsker[id], RED, "[%s] ^x01Wygrales! :]", g_szPrefix)
        #if defined Mysql
        lost[id]++
        wins[g_iAsker[id]]++
        #endif
        switch(random_num(1, 2))
        {
            case 1: 
            {
                ColorChat(g_iAsker[id], RED, "[%s] ^x01Ai cāștigat trei vieți.", g_szPrefix)
                dr_add_life(g_iAsker[id],3)
            }
            case 2:
            {
                ColorChat(g_iAsker[id], RED, "[%s] ^x01Ai cāștigat 10000 $.", g_szPrefix)
                cs_set_user_money(g_iAsker[id],cs_get_user_money(g_iAsker[id]) + 10000)
            }
        }
        g_bUserRacing[id] = false
        g_bUserRacing[g_iAsker[id]] = false
        
        g_iAsker[g_iAsker[id]] = 0
        g_iAsker[id] = 0
    }
    
    return PLUGIN_CONTINUE
}
public fwPlayerFinished(id)
{
    finish[id] = true
    if(!g_bUserRacing[id])
        return PLUGIN_CONTINUE
    
    new szBuffer[64];
    get_user_name(id, szBuffer, 63)
    
    g_fHisTime[id] = get_gametime() - g_fHisTime[id]
    
    ColorChat(0, RED, "[%s]^x04 %s^x01 A castigat cursa impotriva timpului %d:%.2f. Felicitari!!", g_szPrefix, szBuffer, floatround(g_fHisTime[id]/60.0) >= 1 ? floatround(g_fHisTime[id]/60) : 0, g_fHisTime[id] >= 60.0 ? g_fHisTime[id] - ( 60.0 * ( g_fHisTime[id]/60.0 ) )  : g_fHisTime[id])
    ColorChat(id, RED, "[%s] ^x01Ai castigat ! :]", g_szPrefix)
    ColorChat(g_iAsker[id], RED, "[%s] ^x01Ai pierdut! :F", g_szPrefix)
    switch(random_num(1, 2))
    {
        case 1: 
        {
            ColorChat(id, RED, "[%s] ^x01Ai cāștigat trei vieți.", g_szPrefix)
            dr_add_life(id,3)
        }
        case 2:
        {
            ColorChat(id, RED, "[%s] ^x01Ai cāștigat 10000 $.", g_szPrefix)
            cs_set_user_money(id,cs_get_user_money(id) + 10000)
        }
    }
    #if defined Mysql
    lost[g_iAsker[id]]++
    wins[id]++
    #endif
    
    g_bUserRacing[id] = false
    g_bUserRacing[g_iAsker[id]] = false
    
    g_fHisTime[id] = 0.0
    g_fHisTime[g_iAsker[id]] = 0.0
    
    g_iAsker[g_iAsker[id]] = 0
    g_iAsker[id] = 0
    
    return PLUGIN_CONTINUE
}
public cmdRace(id)
{
    if(g_bUserRacing[id] || cs_get_user_team(id) == CS_TEAM_T || !is_user_alive(id) || finish[id])
    {
        ColorChat(id, RED, "[%s] ^x01Nu puteti urmari acum !", g_szPrefix)
        return PLUGIN_CONTINUE
    }
    
    new iMenu = menu_create("\rSelectați un jucator:", "SelectPlayer_Handle");
    new szBuffer[2][64]
    
    for(new i=1; i<33; i++)
    {
        if(!is_user_alive(i) || !is_user_connected(i) || get_user_team(i) != 2 || g_bUserRacing[i] || i == id)
            continue
        
        get_user_name(i, szBuffer[0], 63)
        num_to_str(i, szBuffer[1], 63)
        
        menu_additem(iMenu, szBuffer[0], szBuffer[1])
    }
    
    menu_setprop(iMenu, MPROP_EXITNAME, "Wyjdz")
    menu_display(id, iMenu)
    
    return PLUGIN_CONTINUE
}
public SelectPlayer_Handle(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    
    new iAccess, iTarget, iCallBack
    new szInfo[64]
    
    menu_item_getinfo(menu, item, iAccess, szInfo, 63, _, _, iCallBack)
    iTarget = str_to_num(szInfo)
    
    if(!is_user_alive(iTarget) || !is_user_connected(iTarget) || get_user_team(iTarget) != 2 || g_bUserRacing[iTarget])
    {
        menu_destroy(menu)
        cmdRace(id)
        return PLUGIN_HANDLED
    }
    
    AskPlayer(iTarget, id)
    return PLUGIN_CONTINUE
    
}

public AskPlayer(id, iAsker)
{
    if(!is_user_connected(id) || !is_user_connected(iAsker) || g_bUserRacing[id] || g_bUserRacing[iAsker] || finish[id] || finish[iAsker])
        return PLUGIN_HANDLED
    
    new szBuffer[128]
    get_user_name(iAsker, szBuffer, 127)
    format(szBuffer, 127, "Vrei sa concurezi cu %s ?", szBuffer)
    
    new iMenu = menu_create(szBuffer, "AskPlayer_Handle")
    
    menu_additem(iMenu, "Tak")
    menu_additem(iMenu, "Nie")
    
    menu_display(id, iMenu)
    
    g_iAsker[id] = iAsker
    
    return PLUGIN_CONTINUE
}

public AskPlayer_Handle(id, menu, item)
{
    if(!is_user_connected(g_iAsker[id]) || g_bUserRacing[id] || g_bUserRacing[g_iAsker[id]])
        return PLUGIN_HANDLED
    
    switch(item)
    {
        case 0:
        {
            ColorChat(g_iAsker[id], RED, "[%s]^x01 Jucătorul a acceptat cursa cu tine!", g_szPrefix)
            
            g_iTimeToRace[id] = 3
            g_iAsker[g_iAsker[id]] = id
            g_bUserRacing[id] = true
            g_bUserRacing[g_iAsker[id]] = true
            
            set_pev(id, pev_origin, g_fSpawnOrigin)
            set_pev(g_iAsker[id], pev_origin, g_fSpawnOrigin)
            
            set_pev(id, pev_fixangle, 1)
            set_pev(g_iAsker[id], pev_fixangle, 1)
            
            set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN)
            set_pev(g_iAsker[id], pev_flags, pev(g_iAsker[id], pev_flags) | FL_FROZEN)
            
            set_task(1.0, "StartRace", id, _, _, "a", g_iTimeToRace[id])
        }
        
        case 1:
        {
            ColorChat(g_iAsker[id], RED, "[%s]^x01 Jucatorul nu a acceptat cursa cu tine!", g_szPrefix)
            
            g_iAsker[id] = 0
        }
    }
    
    return PLUGIN_CONTINUE
}

public StartRace(id)
{
    g_iTimeToRace[id]--
    
    if(g_iTimeToRace[id] > 0)
    {
        ColorChat(id, RED, "[%s] ^x01Cursa īncepe la %d secunde!", g_szPrefix, g_iTimeToRace[id])
        ColorChat(g_iAsker[id], RED, "[%s] ^x01Cursa īncepe la %d secunde!", g_szPrefix, g_iTimeToRace[id])
        
    } 
    else 
    {
        ColorChat(id, RED, "[%s] ^x01Go Go Go! Noroc :]", g_szPrefix, g_iTimeToRace[id])
        ColorChat(g_iAsker[id], RED, "[%s] ^x01Go Go Go! Noroc :]", g_szPrefix, g_iTimeToRace[id])
        set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN)
        set_pev(g_iAsker[id], pev_flags, pev(g_iAsker[id], pev_flags) & ~FL_FROZEN)
        
        g_fHisTime[id] = get_gametime()
        g_fHisTime[g_iAsker[id]] = get_gametime()
        
        if(task_exists(id)) remove_task(id)
    }
    
    return PLUGIN_CONTINUE
}
public CreateAdEntitys()
{
    new iEnt[2];
    
    iEnt[0] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
    set_pev(iEnt[0], pev_classname, "msgent")
    set_pev(iEnt[0], pev_nextthink, get_gametime() + 120.0)
    
    iEnt[1] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
    set_pev(iEnt[1], pev_classname, "racesent")
    set_pev(iEnt[1], pev_nextthink, get_gametime() + 90.0)
    
    dllfunc(DLLFunc_Think, iEnt[0])
    dllfunc(DLLFunc_Think, iEnt[1])
}
#if defined Mysql
public load(id)
{
    new name[64], szTemp[512]
    get_user_name(id, name, 63)
    replace_all(name, 63, "'", "\'")
    replace_all(name, 63, "`", "\`")
    
    new data[1]
    data[0] = id
    
    formatex(szTemp,charsmax(szTemp),"SELECT * FROM `Race` WHERE `name` = '%s'", name)
    SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp, data, sizeof(data))
}

public register_client(failstate, Handle:query, error[],errcode, data[], datasize)
{
    if(failstate != TQUERY_SUCCESS){
        log_amx("<Query> Error: %s", error)
        return;
    }
    new id = data[0]
    if(!is_user_connected(id) && !is_user_connecting(id))
        return;
    
    if(SQL_NumRows(query))
    {
        SQL_ReadResult(query,SQL_FieldNameToNum(query,"name"), name, 63)
        wins[id]  = SQL_ReadResult(query, SQL_FieldNameToNum(query,"wins"))
        lost[id]  = SQL_ReadResult(query, SQL_FieldNameToNum(query,"lost"))
        WczytaneDane[id] = true;
    } 
    else
    {
        new name[64]
        get_user_name(id, name, 63)
        replace_all(name, 63, "'", "\'")
        replace_all(name, 63, "`", "\`")
        
        new szTemp[512], data[1]
        data[0] = id
        formatex(szTemp,charsmax(szTemp),"INSERT INTO `Race` (`name`, `wins`,`lost`) VALUES ('%s','%d','%d')", name, wins[id],lost[id])
        SQL_ThreadQuery(g_SqlTuple,"IgnoreHandleInsert",szTemp,data, 1)
    }
}
public save(id)
{    
    if(!WczytaneDane[id])
    {
        load(id)
        return PLUGIN_HANDLED
    }
    new szTemp[512]
    new name[64]
    get_user_name(id, name, 63)
    replace_all(name, 63, "'", "\'")
    replace_all(name, 63, "`", "\`")
    
    formatex(szTemp,charsmax(szTemp),"UPDATE `Race` SET `wins` = '%d',`lost` = '%d' WHERE `name` = '%s'",wins[id],lost[id], name)
    SQL_ThreadQuery(g_SqlTuple,"IgnoreHandleSave",szTemp)
    
    return PLUGIN_CONTINUE
}

public IgnoreHandleInsert(failstate, Handle:query, error[], errnum, data[], size){
    if(failstate != TQUERY_SUCCESS){
        log_amx("<Query> Error: %s", error)
        return
    }
    WczytaneDane[data[0]] = true
}

public IgnoreHandleSave(failstate, Handle:query, error[], errnum, data[], size){
    if(failstate != TQUERY_SUCCESS){
        log_amx("<Query> Error: %s", error)
        return;
    }
}
public respawn(id)
{
    if(is_user_alive(id))
    {
        save(id)
        finish[id] = false
    }
}
#endif
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
__________________
riscanuc is offline
 



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 13:42.


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