Sqlitei Errors
#1

Hi I Use Sqlitei But Give me Error Anyone Can Help Me?

Script :

PHP код:
#define     FILTERSCRIPT
#include     <a_samp>
#include    <evf>           // by Emmet_ - https://sampforum.blast.hk/showthread.ph...9.43476310
#include    <izcmd>         // by Yashas - https://sampforum.blast.hk/showthread.ph...9.43476310
#include    <progress2>     // by [HLF]Southclaw - https://sampforum.blast.hk/showthread.ph...9.43476310
#include    <sqlitei>       // by Slice - https://sampforum.blast.hk/showthread.ph...9.43476310
#include    <sscanf2>       // by ****** - https://sampforum.blast.hk/showthread.ph...9.43476310
#include    <streamer>      // by Incognito - https://sampforum.blast.hk/showthread.ph...9.43476310
#include    <YSI\y_iterate> // by ****** - https://sampforum.blast.hk/showthread.ph...9.43476310
#define     MAX_TREES       (100)   // tree limit
#define     MAX_LOGS        (300)   // dropped log limit
#define     MAX_BUYERS      (20)    // log buyer limit
#define     CUTTING_TIME    (8)        // required seconds to cut a tree down (Default: 8)
#define     LOG_LIMIT         (10)    // how many logs a player can load to a bobcat (if you change this, don't forget to modify LogAttachOffsets array) (Default: 10)
#define     ATTACH_INDEX    (7)     // for setplayerattachedobject (Default: 7)
#define     TREE_RESPAWN    (300)   // required seconds to respawn a tree (Default: 300)
#define     LOG_LIFETIME    (120)   // life time of a dropped log, in seconds (Default: 120)
#define     LOG_PRICE       (50)    // price of a log (Default: 50)
#define     CSAW_PRICE      (500)      // price of a chainsaw (Default: 500)
enum    E_TREE
{
    
// loaded from db
    
FloattreeX,
    
FloattreeY,
    
FloattreeZ,
    
FloattreeRX,
    
FloattreeRY,
    
FloattreeRZ,
    
// temp
    
treeLogs,
    
treeSeconds,
    
booltreeGettingCut,
    
treeObjID,
    
Text3DtreeLabel,
    
treeTimer
}
enum    E_LOG
{
    
// temp
    
logDroppedBy[MAX_PLAYER_NAME],
    
logSeconds,
    
logObjID,
    
logTimer,
    
Text3DlogLabel
}
enum    E_BUYER
{
    
// loaded from db
    
buyerSkin,
    
FloatbuyerX,
    
FloatbuyerY,
    
FloatbuyerZ,
    
FloatbuyerA,
    
// temp
    
buyerActorID,
    
Text3DbuyerLabel
}
new
    
TreeData[MAX_TREES][E_TREE],
    
LogData[MAX_LOGS][E_LOG],
    
BuyerData[MAX_BUYERS][E_BUYER];
    
new
    
IteratorTrees<MAX_TREES>,
    
IteratorLogs<MAX_LOGS>,
    
IteratorBuyers<MAX_BUYERS>;
new
    
LogObjects[MAX_VEHICLES][LOG_LIMIT];
    
new
    
CuttingTreeID[MAX_PLAYERS] = {-1, ...},
    
CuttingTimer[MAX_PLAYERS] = {-1, ...},
    
PlayerBarCuttingBar[MAX_PLAYERS] = {INVALID_PLAYER_BAR_ID, ...},
    
boolCarryingLog[MAX_PLAYERS],
    
EditingTreeID[MAX_PLAYERS] = {-1, ...};
new
    
FloatLogAttachOffsets[LOG_LIMIT][4] = {
        {-
0.223, -1.089, -0.230, -90.399},
        {-
0.056, -1.091, -0.23090.399},
        {
0.116, -1.092, -0.230, -90.399},
        {
0.293, -1.088, -0.23090.399},
        {-
0.123, -1.089, -0.099, -90.399},
        {
0.043, -1.090, -0.09990.399},
        {
0.216, -1.092, -0.099, -90.399},
        {-
0.033, -1.0900.029, -90.399},
        {
0.153, -1.0890.02990.399},
        {
0.066, -1.0910.150, -90.399}
    };
new
    
DBScriptDBHandle;
new
    
DBStatementLoadTrees,
    
DBStatementAddTree,
    
DBStatementUpdateTree,
    
DBStatementRemoveTree;
    
new
    
DBStatementLoadBuyers,
    
DBStatementAddBuyer,
    
DBStatementUpdateBuyer,
    
DBStatementRemoveBuyer;
SetPlayerLookAt(playeridFloat:xFloat:y)
{
    
// somewhere on samp forums, couldn't find the source
    
new Float:PxFloat:PyFloatPa;
    
GetPlayerPos(playeridPxPyPa);
    
Pa floatabs(atan((y-Py)/(x-Px)));
    if (
<= Px && >= PyPa floatsub(180Pa);
    else if (
Px && PyPa floatadd(Pa180);
    else if (
>= Px && <= PyPa floatsub(360.0Pa);
    
Pa floatsub(Pa90.0);
    if (
Pa >= 360.0Pa floatsub(Pa360.0);
    
SetPlayerFacingAngle(playeridPa);
}
ConvertToMinutes(time)
{
    
// https://sampforum.blast.hk/showthread.ph...9.43476310
    
new string[15];//-2000000000:00 could happen, so make the string 15 chars to avoid any errors
    
format(stringsizeof(string), "%02d:%02d"time 60time 60);
    return 
string;
}
GetClosestTree(playeridFloatrange 2.0)
{
    new 
id = -1Floatdist rangeFloattempdist;
    foreach(new 
Trees)
    {
        
tempdist GetPlayerDistanceFromPoint(playeridTreeData[i][treeX], TreeData[i][treeY], TreeData[i][treeZ]);
        if(
tempdist range) continue;
        if(
tempdist <= dist)
        {
            
dist tempdist;
            
id i;
        }
    }
    return 
id;
}
GetClosestLog(playeridFloatrange 2.0)
{
    new 
id = -1Floatdist rangeFloattempdistFloatpos[3];
    foreach(new 
Logs)
    {
        
GetDynamicObjectPos(LogData[i][logObjID], pos[0], pos[1], pos[2]);
        
tempdist GetPlayerDistanceFromPoint(playeridpos[0], pos[1], pos[2]);
        if(
tempdist range) continue;
        if(
tempdist <= dist)
        {
            
dist tempdist;
            
id i;
        }
    }
    return 
id;
}
IsPlayerNearALogBuyer(playerid)
{
    foreach(new 
Buyers)
    {
        if(
IsPlayerInRangeOfPoint(playerid2.0BuyerData[i][buyerX], BuyerData[i][buyerY], BuyerData[i][buyerZ])) return 1;
    }
    
    return 
0;
}
Player_Init(playerid)
{
    
CuttingTreeID[playerid] = -1;
    
CuttingTimer[playerid] = -1;
    
CarryingLog[playerid] = false;
    
EditingTreeID[playerid] = -1;
    
    
CuttingBar[playerid] = CreatePlayerProgressBar(playerid498.0104.0113.06.20x61381BFFCUTTING_TIME0);
    
ApplyAnimation(playerid"CHAINSAW""null"0.0000000);
    
ApplyAnimation(playerid"CARRY""null"0.0000000);
    return 
1;
}
Player_ResetCutting(playerid)
{
    if(!
IsPlayerConnected(playerid) || CuttingTreeID[playerid] == -1) return 0;
    new 
id CuttingTreeID[playerid];
    
TreeData[id][treeGettingCut] = false;
    if(
TreeData[id][treeSeconds] < 1Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABELTreeData[id][treeLabel], E_STREAMER_COLOR0x2ECC71FF);
    
    
ClearAnimations(playerid);
    
TogglePlayerControllable(playerid1);
    
CuttingTreeID[playerid] = -1;
    
    if(
CuttingTimer[playerid] != -1)
    {
        
KillTimer(CuttingTimer[playerid]);
        
CuttingTimer[playerid] = -1;
    }
    
    
SetPlayerProgressBarValue(playeridCuttingBar[playerid], 0.0);
    
HidePlayerProgressBar(playeridCuttingBar[playerid]);
    return 
1;
}
Player_GiveLog(playerid)
{
    if(!
IsPlayerConnected(playerid)) return 0;
    
CarryingLog[playerid] = true;
    
SetPlayerSpecialAction(playeridSPECIAL_ACTION_CARRY);
    
SetPlayerAttachedObject(playeridATTACH_INDEX1979360.0779990.043999, -0.170999, -13.79995379.700.0);
    
    
SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}You can press {F1C40F}~k~~CONVERSATION_NO~ {FFFFFF}to drop your log.");
    return 
1;
}
Player_DropLog(playeriddeath_drop 0)
{
    if(!
IsPlayerConnected(playerid) || !CarryingLog[playerid]) return 0;
    new 
id Iter_Free(Logs);
    if(
id != -1)
    {
        new 
FloatxFloatyFloatzFloatalabel[128];
        
GetPlayerPos(playeridxyz);
        
GetPlayerFacingAngle(playerida);
        
GetPlayerName(playeridLogData[id][logDroppedBy], MAX_PLAYER_NAME);
        if(!
death_drop)
        {
            
+= (1.0 floatsin(-adegrees));
            
+= (1.0 floatcos(-adegrees));
            
            
ApplyAnimation(playerid"CARRY""putdwn05"4.1011001);
        }
        
LogData[id][logSeconds] = LOG_LIFETIME;
        
LogData[id][logObjID] = CreateDynamicObject(19793xy0.90.00.0a);
        
        
format(labelsizeof(label), "Log (%d)\n\n{FFFFFF}Dropped By {F1C40F}%s\n{FFFFFF}%s\nUse {F1C40F}/log take {FFFFFF}to take it."idLogData[id][logDroppedBy], ConvertToMinutes(LOG_LIFETIME));
        
LogData[id][logLabel] = CreateDynamic3DTextLabel(label0xF1C40FFFxy0.75.0, .testlos 1);
        
        
LogData[id][logTimer] = SetTimerEx("RemoveLog"1000true"i"id);
        
Iter_Add(Logsid);
    }
    
    
Player_RemoveLog(playerid);
    return 
1;
}
Player_RemoveLog(playerid)
{
    if(!
IsPlayerConnected(playerid) || !CarryingLog[playerid]) return 0;
    
RemovePlayerAttachedObject(playeridATTACH_INDEX);
    
SetPlayerSpecialAction(playeridSPECIAL_ACTION_NONE);
    
CarryingLog[playerid] = false;
    return 
1;
}
Vehicle_LogCount(vehicleid)
{
    if(
GetVehicleModel(vehicleid) == 0) return 0;
    new 
count;
    for(new 
iLOG_LIMITi++) if(IsValidDynamicObject(LogObjects[vehicleid][i])) count++;
    return 
count;
}
Vehicle_RemoveLogs(vehicleid)
{
    if(
GetVehicleModel(vehicleid) == 0) return 0;
    for(new 
iLOG_LIMITi++)
    {
        if(
IsValidDynamicObject(LogObjects[vehicleid][i]))
        {
            
DestroyDynamicObject(LogObjects[vehicleid][i]);
            
LogObjects[vehicleid][i] = -1;
        }
    }
    
    return 
1;
}
Tree_BeingEdited(id)
{
    if(!
Iter_Contains(Treesid)) return 0;
    foreach(new 
Player) if(EditingTreeID[i] == id) return 1;
    return 
0;
}
Tree_UpdateLogLabel(id)
{
    if(!
Iter_Contains(Treesid)) return 0;
    new 
label[96];
    
    if(
TreeData[id][treeLogs] > 0) {
        
format(labelsizeof(label), "Tree (%d)\n\n{FFFFFF}Logs: {F1C40F}%d\n{FFFFFF}Use {F1C40F}/log takefromtree {FFFFFF}to take a log."idTreeData[id][treeLogs]);
        
UpdateDynamic3DTextLabelText(TreeData[id][treeLabel], 0xE74C3CFFlabel);
    }else{
        
TreeData[id][treeTimer] = SetTimerEx("RespawnTree"1000true"i"id);
        
        
format(labelsizeof(label), "Tree (%d)\n\n{FFFFFF}%s"idConvertToMinutes(TreeData[id][treeSeconds]));
        
UpdateDynamic3DTextLabelText(TreeData[id][treeLabel], 0xE74C3CFFlabel);
    }
    
    return 
1;
}
public 
OnFilterScriptInit()
{
    print(
"  [Lumberjack] Initializing...");
    
    
// assign default values to variables
    
for(new iMAX_TREESi++)
    {
        
TreeData[i][treeObjID] = TreeData[i][treeTimer] = -1;
        
TreeData[i][treeLabel] = Text3D: -1;
    }
    
    for(new 
iMAX_LOGSi++)
    {
        
LogData[i][logObjID] = LogData[i][logTimer] = -1;
        
LogData[i][logLabel] = Text3D: -1;
    }
    
    for(new 
iMAX_BUYERSi++)
    {
        
BuyerData[i][buyerActorID] = -1;
        
BuyerData[i][buyerLabel] = Text3D: -1;
    }
    
    for(new 
iMAX_VEHICLESi++) for(new xLOG_LIMITx++) LogObjects[i][x] = -1;
    
    foreach(new 
PlayerPlayer_Init(i);
    
    
// open database & create tables
    
ScriptDBHandle db_open("lumberjack.db");
    
db_query(ScriptDBHandle"CREATE TABLE IF NOT EXISTS trees (ID INTEGER, PosX FLOAT, PosY FLOAT, PosZ FLOAT, RotX FLOAT, RotY FLOAT, RotZ FLOAT)");
    
db_query(ScriptDBHandle"CREATE TABLE IF NOT EXISTS buyers (ID INTEGER, Skin INTEGER, PosX FLOAT, PosY FLOAT, PosZ FLOAT, PosA FLOAT)");
    
    
// prepare tree queries
    
LoadTrees db_prepare(ScriptDBHandle"SELECT * FROM trees");
    
AddTree db_prepare(ScriptDBHandle"INSERT INTO trees (ID, PosX, PosY, PosZ, RotX, RotY, RotZ) VALUES (?, ?, ?, ?, ?, ?, ?)");
    
UpdateTree db_prepare(ScriptDBHandle"UPDATE trees SET PosX=?, PosY=?, PosZ=?, RotX=?, RotY=?, RotZ=? WHERE ID=?");
    
RemoveTree db_prepare(ScriptDBHandle"DELETE FROM trees WHERE ID=?");
    
    
// prepare buyer queries
    
LoadBuyers db_prepare(ScriptDBHandle"SELECT * FROM buyers");
    
AddBuyer db_prepare(ScriptDBHandle"INSERT INTO buyers (ID, Skin, PosX, PosY, PosZ, PosA) VALUES (?, ?, ?, ?, ?, ?)");
    
UpdateBuyer db_prepare(ScriptDBHandle"UPDATE buyers SET Skin=?, PosX=?, PosY=?, PosZ=?, PosA=? WHERE ID=?");
    
RemoveBuyer db_prepare(ScriptDBHandle"DELETE FROM buyers WHERE ID=?");
    
    
// load trees
    
new idFloatpos[3], Floatrot[3];
    
stmt_bind_result_field(LoadTrees0DB::TYPE_INTEGERid);
    
stmt_bind_result_field(LoadTrees1DB::TYPE_FLOATpos[0]);
    
stmt_bind_result_field(LoadTrees2DB::TYPE_FLOATpos[1]);
    
stmt_bind_result_field(LoadTrees3DB::TYPE_FLOATpos[2]);
    
stmt_bind_result_field(LoadTrees4DB::TYPE_FLOATrot[0]);
    
stmt_bind_result_field(LoadTrees5DB::TYPE_FLOATrot[1]);
    
stmt_bind_result_field(LoadTrees6DB::TYPE_FLOATrot[2]);
    if(
stmt_execute(LoadTrees))
    {
        print(
"  [Lumberjack] Loading trees...");
        new 
label[96];
        while(
stmt_fetch_row(LoadTrees))
        {
            
TreeData[id][treeX] = pos[0];
             
TreeData[id][treeY] = pos[1];
              
TreeData[id][treeZ] = pos[2];
            
TreeData[id][treeRX] = rot[0];
             
TreeData[id][treeRY] = rot[1];
              
TreeData[id][treeRZ] = rot[2];
            
TreeData[id][treeObjID] = CreateDynamicObject(657TreeData[id][treeX], TreeData[id][treeY], TreeData[id][treeZ], TreeData[id][treeRX], TreeData[id][treeRY], TreeData[id][treeRZ]);
            
            
format(labelsizeof(label), "Tree (%d)\n\n{FFFFFF}Press {F1C40F}~k~~CONVERSATION_NO~ {FFFFFF}to cut down."id);
            
TreeData[id][treeLabel] = CreateDynamic3DTextLabel(label0x2ECC71FFTreeData[id][treeX], TreeData[id][treeY], TreeData[id][treeZ] + 1.55.0);
            
Iter_Add(Treesid);
        }
        
printf("  [Lumberjack] Loaded %d trees."Iter_Count(Trees));
    }
    
    
// load buyers
    
new skinFloatbpos[4];
    
stmt_bind_result_field(LoadBuyers0DB::TYPE_INTEGERid);
    
stmt_bind_result_field(LoadBuyers1DB::TYPE_INTEGERskin);
    
stmt_bind_result_field(LoadBuyers2DB::TYPE_FLOATbpos[0]);
    
stmt_bind_result_field(LoadBuyers3DB::TYPE_FLOATbpos[1]);
    
stmt_bind_result_field(LoadBuyers4DB::TYPE_FLOATbpos[2]);
    
stmt_bind_result_field(LoadBuyers5DB::TYPE_FLOATbpos[3]);
    if(
stmt_execute(LoadBuyers))
    {
        print(
"  [Lumberjack] Loading buyers...");
        new 
label[172];
        while(
stmt_fetch_row(LoadBuyers))
        {
            
BuyerData[id][buyerSkin] = skin;
             
BuyerData[id][buyerX] = bpos[0];
              
BuyerData[id][buyerY] = bpos[1];
            
BuyerData[id][buyerZ] = bpos[2];
             
BuyerData[id][buyerA] = bpos[3];
            
BuyerData[id][buyerActorID] = CreateActor(BuyerData[id][buyerSkin], BuyerData[id][buyerX], BuyerData[id][buyerY], BuyerData[id][buyerZ], BuyerData[id][buyerA]);
            
SetActorInvulnerable(BuyerData[id][buyerActorID], 1);
            
format(labelsizeof(label), "Log Buyer (%d)\n\n{FFFFFF}Use {F1C40F}/chainsaw {FFFFFF}to buy a chainsaw for {2ECC71}$%d.\n{FFFFFF}Use {F1C40F}/log sell {FFFFFF}to sell a log for {2ECC71}$%d."idCSAW_PRICELOG_PRICE);
            
BuyerData[id][buyerLabel] = CreateDynamic3DTextLabel(label0xF1C40FFFBuyerData[id][buyerX], BuyerData[id][buyerY], BuyerData[id][buyerZ] + 0.255.0, .testlos 1);
            
Iter_Add(Buyersid);
        }
        
printf("  [Lumberjack] Loaded %d buyers."Iter_Count(Buyers));
    }
    
    return 
1;
}
public 
OnFilterScriptExit()
{
    foreach(new 
Player)
    {
        
Player_ResetCutting(i);
        
Player_RemoveLog(i);
        
        
DestroyPlayerProgressBar(iCuttingBar[i]);
    }
    
    foreach(new 
BuyersDestroyActor(BuyerData[i][buyerActorID]);
    
    
db_close(ScriptDBHandle);
    print(
"  [Lumberjack] Unloaded.");
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    
Player_Init(playerid);
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
Player_ResetCutting(playerid);
    
Player_RemoveLog(playerid);
    
    
EditingTreeID[playerid] = -1;
    return 
1;
}
public 
OnVehicleSpawn(vehicleid)
{
    
Vehicle_RemoveLogs(vehicleid);
    return 
1;
}
public 
OnVehicleDeath(vehicleidkillerid)
{
    
Vehicle_RemoveLogs(vehicleid);
    return 
1;
}
public 
OnPlayerDeath(playeridkilleridreason)
{
    
Player_ResetCutting(playerid);
    
Player_DropLog(playerid1);
    return 
1;
}
public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
newstate != PLAYER_STATE_WASTED)
    {
        
Player_ResetCutting(playerid);
        
Player_RemoveLog(playerid);
    }
    
    return 
1;
}
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if(
GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && (newkeys KEY_NO))
    {
        if(
CarryingLog[playerid]) return Player_DropLog(playerid);
        
        if(
GetPlayerWeapon(playerid) == WEAPON_CHAINSAW && CuttingTreeID[playerid] == -&& !CarryingLog[playerid])
        {
            new 
id GetClosestTree(playerid);
            if(
id != -1)
            {
                if(!
Tree_BeingEdited(id) && !TreeData[id][treeGettingCut] && TreeData[id][treeSeconds] < 1)
                {
                    
SetPlayerLookAt(playeridTreeData[id][treeX], TreeData[id][treeY]);
                    
Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABELTreeData[id][treeLabel], E_STREAMER_COLOR0xE74C3CFF);
                    
CuttingTimer[playerid] = SetTimerEx("CutTree"1000true"i"playerid);
                    
CuttingTreeID[playerid] = id;
                    
SetPlayerProgressBarValue(playeridCuttingBar[playerid], 0.0);
                    
ShowPlayerProgressBar(playeridCuttingBar[playerid]);
                    
TogglePlayerControllable(playerid0);
                    
SetPlayerArmedWeapon(playeridWEAPON_CHAINSAW);
                    
ApplyAnimation(playerid"CHAINSAW""WEAPON_csaw"4.1100101);
                    
TreeData[id][treeGettingCut] = true;
                }
            }
        }
    }
    return 
1;
}
public 
OnPlayerEditDynamicObject(playeridSTREAMER_TAG_OBJECT objectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz)
{
    if(
EditingTreeID[playerid] != -&& Iter_Contains(TreesEditingTreeID[playerid]))
    {
        if(
response == EDIT_RESPONSE_FINAL)
        {
            new 
id EditingTreeID[playerid];
            
TreeData[id][treeX] = x;
            
TreeData[id][treeY] = y;
            
TreeData[id][treeZ] = z;
            
TreeData[id][treeRX] = rx;
            
TreeData[id][treeRY] = ry;
            
TreeData[id][treeRZ] = rz;
            
SetDynamicObjectPos(objectidTreeData[id][treeX], TreeData[id][treeY], TreeData[id][treeZ]);
            
SetDynamicObjectRot(objectidTreeData[id][treeRX], TreeData[id][treeRY], TreeData[id][treeRZ]);
            
Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABELTreeData[id][treeLabel], E_STREAMER_XTreeData[id][treeX]);
            
Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABELTreeData[id][treeLabel], E_STREAMER_YTreeData[id][treeY]);
            
Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABELTreeData[id][treeLabel], E_STREAMER_ZTreeData[id][treeZ] + 1.5);
            
stmt_bind_value(UpdateTree0DB::TYPE_FLOATTreeData[id][treeX]);
            
stmt_bind_value(UpdateTree1DB::TYPE_FLOATTreeData[id][treeY]);
            
stmt_bind_value(UpdateTree2DB::TYPE_FLOATTreeData[id][treeZ]);
            
stmt_bind_value(UpdateTree3DB::TYPE_FLOATTreeData[id][treeRX]);
            
stmt_bind_value(UpdateTree4DB::TYPE_FLOATTreeData[id][treeRY]);
            
stmt_bind_value(UpdateTree5DB::TYPE_FLOATTreeData[id][treeRZ]);
            
stmt_bind_value(UpdateTree6DB::TYPE_INTEGERid);
            
stmt_execute(UpdateTree);
            
EditingTreeID[playerid] = -1;
        }
        if(
response == EDIT_RESPONSE_CANCEL)
        {
            new 
id EditingTreeID[playerid];
            
SetDynamicObjectPos(objectidTreeData[id][treeX], TreeData[id][treeY], TreeData[id][treeZ]);
            
SetDynamicObjectRot(objectidTreeData[id][treeRX], TreeData[id][treeRY], TreeData[id][treeRZ]);
            
EditingTreeID[playerid] = -1;
        }
    }
    return 
1;
}
forward CutTree(playerid);
public 
CutTree(playerid)
{
    if(
CuttingTreeID[playerid] != -1)
    {
        new 
id CuttingTreeID[playerid], Floatvalue GetPlayerProgressBarValue(playeridCuttingBar[playerid]) + 1.0;
        
        if(
value >= CUTTING_TIME) {
            
Player_ResetCutting(playerid);
            
MoveDynamicObject(TreeData[id][treeObjID], TreeData[id][treeX], TreeData[id][treeY], TreeData[id][treeZ] + 0.030.025TreeData[id][treeRX], TreeData[id][treeRY] - 80.0TreeData[id][treeRZ]);
            
TreeData[id][treeLogs] = 5;
            
TreeData[id][treeSeconds] = TREE_RESPAWN;
            
Tree_UpdateLogLabel(id);
        }else{
            
SetPlayerProgressBarValue(playeridCuttingBar[playerid], value);
        }
    }
    return 
1;
}
forward RespawnTree(id);
public 
RespawnTree(id)
{
    new 
label[96];
    if(
TreeData[id][treeSeconds] > 1) {
        
TreeData[id][treeSeconds]--;
        
        
format(labelsizeof(label), "Tree (%d)\n\n{FFFFFF}%s"idConvertToMinutes(TreeData[id][treeSeconds]));
        
UpdateDynamic3DTextLabelText(TreeData[id][treeLabel], 0xE74C3CFFlabel);
    }else if(
TreeData[id][treeSeconds] == 1) {
        
KillTimer(TreeData[id][treeTimer]);
        
TreeData[id][treeLogs] = 0;
        
TreeData[id][treeSeconds] = 0;
        
TreeData[id][treeTimer] = -1;
        
        
SetDynamicObjectPos(TreeData[id][treeObjID], TreeData[id][treeX], TreeData[id][treeY], TreeData[id][treeZ]);
         
SetDynamicObjectRot(TreeData[id][treeObjID], TreeData[id][treeRX], TreeData[id][treeRY], TreeData[id][treeRZ]);
         
         
format(labelsizeof(label), "Tree (%d)\n\n{FFFFFF}Press {F1C40F}~k~~CONVERSATION_NO~ {FFFFFF}to cut down."id);
         
UpdateDynamic3DTextLabelText(TreeData[id][treeLabel], 0x2ECC71FFlabel);
    }
    
    return 
1;
}
forward RemoveLog(id);
public 
RemoveLog(id)
{
    if(!
Iter_Count(Logsid)) return 1;
    
    if(
LogData[id][logSeconds] > 1) {
        
LogData[id][logSeconds]--;
        new 
label[128];
        
format(labelsizeof(label), "Log (%d)\n\n{FFFFFF}Dropped By {F1C40F}%s\n{FFFFFF}%s\nUse {F1C40F}/log take {FFFFFF}to take it."idLogData[id][logDroppedBy], ConvertToMinutes(LogData[id][logSeconds]));
        
UpdateDynamic3DTextLabelText(LogData[id][logLabel], 0xF1C40FFFlabel);
    }else if(
LogData[id][logSeconds] == 1) {
        
KillTimer(LogData[id][logTimer]);
        
DestroyDynamicObject(LogData[id][logObjID]);
        
DestroyDynamic3DTextLabel(LogData[id][logLabel]);
        
        
LogData[id][logTimer] = -1;
        
LogData[id][logObjID] = -1;
        
LogData[id][logLabel] = Text3D: -1;
        
Iter_Remove(Logsid);
    }
    
    return 
1;
}
// Player Commands
CMD:chainsaw(playeridparams[])
{
    if(
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You can't use this command in a vehicle.");
    if(!
IsPlayerNearALogBuyer(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not near a Log Buyer.");
    if(
GetPlayerMoney(playerid) < CSAW_PRICE) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You don't have enough money.");
    
GivePlayerMoney(playerid, -CSAW_PRICE);
    
GivePlayerWeapon(playeridWEAPON_CHAINSAW1);
    
    new 
string[64];
    
format(stringsizeof(string), "LUMBERJACK: {FFFFFF}Bought a chainsaw for {2ECC71}$%d."CSAW_PRICE);
       
SendClientMessage(playerid0x3498DBFFstring);
    return 
1;
}
CMD:log(playeridparams[])
{
    if(
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You can't use this command in a vehicle.");
    if(
isnull(params)) return SendClientMessage(playerid0xE88732FF"SYNTAX: {FFFFFF}/log [load/take/takefromcar/takefromtree/sell]");
    
    if(!
strcmp(params"load"true)) {
        
// loading to a bobcat
        
if(!CarryingLog[playerid]) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not carrying a log.");
        new 
id GetNearestVehicle(playerid);
        if(
GetVehicleModel(id) != 422) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not near a Bobcat.");
        new 
FloatxFloatyFloatz;
        
GetVehicleBoot(idxyz);
        if(!
IsPlayerInRangeOfPoint(playerid3.0xyz)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not near a Bobcat's back.");
        if(
Vehicle_LogCount(id) >= LOG_LIMIT) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You can't load any more logs to this vehicle.");
        for(new 
iLOG_LIMITi++)
        {
            if(!
IsValidDynamicObject(LogObjects[id][i]))
            {
                
LogObjects[id][i] = CreateDynamicObject(197930.00.00.00.00.00.0);
                
AttachDynamicObjectToVehicle(LogObjects[id][i], idLogAttachOffsets[i][0], LogAttachOffsets[i][1], LogAttachOffsets[i][2], 0.00.0LogAttachOffsets[i][3]);
                break;
            }
        }
        
        
Streamer_Update(playerid);
        
Player_RemoveLog(playerid);
        
SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}Loaded a log.");
        
// done
    
}else if(!strcmp(params"take")) {
        
// taking from ground
        
if(CarryingLog[playerid]) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're already carrying a log.");
        new 
id GetClosestLog(playerid);
        if(
id == -1) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not near a log.");
        
LogData[id][logSeconds] = 1;
        
RemoveLog(id);
        
        
Player_GiveLog(playerid);
        
SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}You've taken a log from ground.");
        
// done
    
}else if(!strcmp(params"takefromcar")) {
        
// taking from a bobcat
        
if(CarryingLog[playerid]) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're already carrying a log.");
        new 
id GetNearestVehicle(playerid);
        if(
GetVehicleModel(id) != 422) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not near a Bobcat.");
        new 
FloatxFloatyFloatz;
        
GetVehicleBoot(idxyz);
        if(!
IsPlayerInRangeOfPoint(playerid3.0xyz)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not near a Bobcat's back.");
        if(
Vehicle_LogCount(id) < 1) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}This Bobcat doesn't have any logs.");
        for(new 
= (LOG_LIMIT 1); >= 0i--)
        {
            if(
IsValidDynamicObject(LogObjects[id][i]))
            {
                
DestroyDynamicObject(LogObjects[id][i]);
                
LogObjects[id][i] = -1;
                break;
            }
        }
        
Streamer_Update(playerid);
        
Player_GiveLog(playerid);
        
SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}You've taken a log from the Bobcat.");
        
// done
    
}else if(!strcmp(params"takefromtree")) {
        
// taking from a cut tree
        
if(CarryingLog[playerid]) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're already carrying a log.");
        new 
id GetClosestTree(playerid);
        if(
id == -1) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not near a tree.");
        if(
TreeData[id][treeSeconds] < 1) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}This tree isn't cut.");
        if(
TreeData[id][treeLogs] < 1) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}This tree doesn't have any logs.");
        
TreeData[id][treeLogs]--;
        
Tree_UpdateLogLabel(id);
        
        
Player_GiveLog(playerid);
        
SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}You've taken a log from the cut tree.");
        
// done
    
}else if(!strcmp(params"sell")) {
        
// selling a log
        
if(!CarryingLog[playerid]) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not carrying a log.");
        if(!
IsPlayerNearALogBuyer(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not near a Log Buyer.");
        
Player_RemoveLog(playerid);
        
GivePlayerMoney(playeridLOG_PRICE);
        
        new 
string[64];
        
format(stringsizeof(string), "LUMBERJACK: {FFFFFF}Sold a log for {2ECC71}$%d."LOG_PRICE);
        
SendClientMessage(playerid0x3498DBFFstring);
        
// done
    
}
    return 
1;
}
// Admin Commands - Trees
CMD:createtree(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Only RCON admins can use this command.");
    new 
id Iter_Free(Trees);
    if(
id == -1) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Can't add any more trees.");
     new 
FloatxFloatyFloatzFloata;
     
GetPlayerPos(playeridxyz);
     
GetPlayerFacingAngle(playerida);
     
+= (3.0 floatsin(-adegrees));
    
+= (3.0 floatcos(-adegrees));
    
-= 1.0;
    
    
TreeData[id][treeX] = x;
    
TreeData[id][treeY] = y;
    
TreeData[id][treeZ] = z;
    
TreeData[id][treeRX] = TreeData[id][treeRY] = TreeData[id][treeRZ] = 0.0;
    
    
TreeData[id][treeObjID] = CreateDynamicObject(657TreeData[id][treeX], TreeData[id][treeY], TreeData[id][treeZ], TreeData[id][treeRX], TreeData[id][treeRY], TreeData[id][treeRZ]);
    new 
label[96];
    
format(labelsizeof(label), "Tree (%d)\n\n{FFFFFF}Press {F1C40F}~k~~CONVERSATION_NO~ {FFFFFF}to cut down."id);
    
TreeData[id][treeLabel] = CreateDynamic3DTextLabel(label0x2ECC71FFTreeData[id][treeX], TreeData[id][treeY], TreeData[id][treeZ] + 1.55.0);
    
Iter_Add(Treesid);
    
    
stmt_bind_value(AddTree0DB::TYPE_INTEGERid);
    
stmt_bind_value(AddTree1DB::TYPE_FLOATTreeData[id][treeX]);
    
stmt_bind_value(AddTree2DB::TYPE_FLOATTreeData[id][treeY]);
    
stmt_bind_value(AddTree3DB::TYPE_FLOATTreeData[id][treeZ]);
    
stmt_bind_value(AddTree4DB::TYPE_FLOATTreeData[id][treeRX]);
    
stmt_bind_value(AddTree5DB::TYPE_FLOATTreeData[id][treeRY]);
    
stmt_bind_value(AddTree6DB::TYPE_FLOATTreeData[id][treeRZ]);
    
    if(
stmt_execute(AddTree))
    {
        
EditingTreeID[playerid] = id;
        
EditDynamicObject(playeridTreeData[id][treeObjID]);
        
        
SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}Tree created.");
        
SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}You can edit it right now, or cancel editing and edit it some other time.");
    }
    
    return 
1;
}
CMD:edittree(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Only RCON admins can use this command.");
    if(
EditingTreeID[playerid] != -1) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're already editing a tree.");
    new 
id;
    if(
sscanf(params"i"id)) return SendClientMessage(playerid0xE88732FF"SYNTAX: {FFFFFF}/edittree [tree id]");
    if(!
Iter_Contains(Treesid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Invalid ID.");
    if(
TreeData[id][treeGettingCut]) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Can't edit specified tree because its getting cut down.");
    if(!
IsPlayerInRangeOfPoint(playerid30.0TreeData[id][treeX], TreeData[id][treeY], TreeData[id][treeZ])) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}You're not near the tree you want to edit.");
    
EditingTreeID[playerid] = id;
    
EditDynamicObject(playeridTreeData[id][treeObjID]);
    return 
1;
}
CMD:removetree(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Only RCON admins can use this command.");
    new 
id;
    if(
sscanf(params"i"id)) return SendClientMessage(playerid0xE88732FF"SYNTAX: {FFFFFF}/removetree [tree id]");
    if(!
Iter_Contains(Treesid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Invalid ID.");
    if(
TreeData[id][treeGettingCut]) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Can't remove specified tree because its getting cut down.");
    if(
Tree_BeingEdited(id)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Can't remove specified tree because its being edited.");
    
DestroyDynamicObject(TreeData[id][treeObjID]);
    
DestroyDynamic3DTextLabel(TreeData[id][treeLabel]);
    if(
TreeData[id][treeTimer] != -1KillTimer(TreeData[id][treeTimer]);
    
    
TreeData[id][treeLogs] = TreeData[id][treeSeconds] = 0;
    
TreeData[id][treeObjID] = TreeData[id][treeTimer] = -1;
    
TreeData[id][treeLabel] = Text3D: -1;
    
Iter_Remove(Treesid);
    
    
stmt_bind_value(RemoveTree0DB::TYPE_INTEGERid);
    if(
stmt_execute(RemoveTree)) SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}Tree removed.");
    return 
1;
}
// Admin Commands - Log Buyers
CMD:createbuyer(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Only RCON admins can use this command.");
    new 
skin;
    if(
sscanf(params"i"skin)) return SendClientMessage(playerid0xE88732FF"SYNTAX: {FFFFFF}/createbuyer [skin id]");
    if(!(
<= skin <= 311)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Invalid skin ID.");
    new 
id Iter_Free(Buyers);
    if(
id == -1) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Can't add any more log buyers.");
    
GetPlayerPos(playeridBuyerData[id][buyerX], BuyerData[id][buyerY], BuyerData[id][buyerZ]);
    
GetPlayerFacingAngle(playeridBuyerData[id][buyerA]);
    
BuyerData[id][buyerActorID] = CreateActor(skinBuyerData[id][buyerX], BuyerData[id][buyerY], BuyerData[id][buyerZ], BuyerData[id][buyerA]);
    
SetActorInvulnerable(BuyerData[id][buyerActorID], 1);
    
    new 
label[172];
    
format(labelsizeof(label), "Log Buyer (%d)\n\n{FFFFFF}Use {F1C40F}/chainsaw {FFFFFF}to buy a chainsaw for {2ECC71}$%d.\n{FFFFFF}Use {F1C40F}/log sell {FFFFFF}to sell a log for {2ECC71}$%d."idCSAW_PRICELOG_PRICE);
    
BuyerData[id][buyerLabel] = CreateDynamic3DTextLabel(label0xF1C40FFFBuyerData[id][buyerX], BuyerData[id][buyerY], BuyerData[id][buyerZ] + 0.255.0, .testlos 1);
    
Iter_Add(Buyersid);
    
    
stmt_bind_value(AddBuyer0DB::TYPE_INTEGERid);
    
stmt_bind_value(AddBuyer1DB::TYPE_INTEGERskin);
    
stmt_bind_value(AddBuyer2DB::TYPE_FLOATBuyerData[id][buyerX]);
    
stmt_bind_value(AddBuyer3DB::TYPE_FLOATBuyerData[id][buyerY]);
    
stmt_bind_value(AddBuyer4DB::TYPE_FLOATBuyerData[id][buyerZ]);
    
stmt_bind_value(AddBuyer5DB::TYPE_FLOATBuyerData[id][buyerA]);
    if(
stmt_execute(AddBuyer))
    {
        
SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}Buyer created.");
        
SetPlayerPos(playeridBuyerData[id][buyerX] + (1.5 floatsin(-BuyerData[id][buyerA], degrees)), BuyerData[id][buyerY] + (1.5 floatcos(-BuyerData[id][buyerA], degrees)), BuyerData[id][buyerZ]);
    }
    
    return 
1;
}
CMD:setbuyerskin(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Only RCON admins can use this command.");
    new 
idskin;
    if(
sscanf(params"ii"idskin)) return SendClientMessage(playerid0xE88732FF"SYNTAX: {FFFFFF}/setbuyerskin [buyer id] [skin id]");
    if(!
Iter_Contains(Buyersid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Invalid ID.");
    if(!(
<= skin <= 311)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Invalid skin ID.");
    
BuyerData[id][buyerSkin] = skin;
    
    
DestroyActor(BuyerData[id][buyerActorID]);
    
BuyerData[id][buyerActorID] = CreateActor(skinBuyerData[id][buyerX], BuyerData[id][buyerY], BuyerData[id][buyerZ], BuyerData[id][buyerA]);
    
SetActorInvulnerable(BuyerData[id][buyerActorID], 1);
    
    
stmt_bind_value(UpdateBuyer0DB::TYPE_INTEGERskin);
    
stmt_bind_value(UpdateBuyer1DB::TYPE_FLOATBuyerData[id][buyerX]);
    
stmt_bind_value(UpdateBuyer2DB::TYPE_FLOATBuyerData[id][buyerY]);
    
stmt_bind_value(UpdateBuyer3DB::TYPE_FLOATBuyerData[id][buyerZ]);
    
stmt_bind_value(UpdateBuyer4DB::TYPE_FLOATBuyerData[id][buyerA]);
    
stmt_bind_value(UpdateBuyer5DB::TYPE_INTEGERid);
    if(
stmt_execute(UpdateBuyer)) SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}Buyer updated.");
    return 
1;
}
CMD:setbuyerpos(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Only RCON admins can use this command.");
    new 
id;
    if(
sscanf(params"i"id)) return SendClientMessage(playerid0xE88732FF"SYNTAX: {FFFFFF}/setbuyerpos [buyer id]");
    if(!
Iter_Contains(Buyersid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Invalid ID.");
    
GetPlayerPos(playeridBuyerData[id][buyerX], BuyerData[id][buyerY], BuyerData[id][buyerZ]);
    
GetPlayerFacingAngle(playeridBuyerData[id][buyerA]);
    
DestroyActor(BuyerData[id][buyerActorID]);
    
BuyerData[id][buyerActorID] = CreateActor(BuyerData[id][buyerSkin], BuyerData[id][buyerX], BuyerData[id][buyerY], BuyerData[id][buyerZ], BuyerData[id][buyerA]);
    
SetActorInvulnerable(BuyerData[id][buyerActorID], 1);
    
Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABELBuyerData[id][buyerLabel], E_STREAMER_XBuyerData[id][buyerX]);
    
Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABELBuyerData[id][buyerLabel], E_STREAMER_YBuyerData[id][buyerY]);
    
Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABELBuyerData[id][buyerLabel], E_STREAMER_ZBuyerData[id][buyerZ] + 0.25);
    
stmt_bind_value(UpdateBuyer0DB::TYPE_INTEGERBuyerData[id][buyerSkin]);
    
stmt_bind_value(UpdateBuyer1DB::TYPE_FLOATBuyerData[id][buyerX]);
    
stmt_bind_value(UpdateBuyer2DB::TYPE_FLOATBuyerData[id][buyerY]);
    
stmt_bind_value(UpdateBuyer3DB::TYPE_FLOATBuyerData[id][buyerZ]);
    
stmt_bind_value(UpdateBuyer4DB::TYPE_FLOATBuyerData[id][buyerA]);
    
stmt_bind_value(UpdateBuyer5DB::TYPE_INTEGERid);
    if(
stmt_execute(UpdateBuyer))
    {
        
SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}Buyer updated.");
        
SetPlayerPos(playeridBuyerData[id][buyerX] + (1.5 floatsin(-BuyerData[id][buyerA], degrees)), BuyerData[id][buyerY] + (1.5 floatcos(-BuyerData[id][buyerA], degrees)), BuyerData[id][buyerZ]);
    }
    
    return 
1;
}
CMD:removebuyer(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Only RCON admins can use this command.");
    new 
id;
    if(
sscanf(params"i"id)) return SendClientMessage(playerid0xE88732FF"SYNTAX: {FFFFFF}/removebuyer [buyer id]");
    if(!
Iter_Contains(Buyersid)) return SendClientMessage(playerid0xE74C3CFF"ERROR: {FFFFFF}Invalid ID.");
    
DestroyActor(BuyerData[id][buyerActorID]);
    
DestroyDynamic3DTextLabel(BuyerData[id][buyerLabel]);
    
    
BuyerData[id][buyerActorID] = -1;
    
BuyerData[id][buyerLabel] = Text3D: -1;
    
Iter_Remove(Buyersid);
    
    
stmt_bind_value(RemoveBuyer0DB::TYPE_INTEGERid);
    if(
stmt_execute(RemoveBuyer)) SendClientMessage(playerid0x3498DBFF"LUMBERJACK: {FFFFFF}Buyer removed.");
    return 
1;

Errors:

Код HTML:
pawno\include\sqlitei.inc(969) : error 017: undefined symbol "db_get_result_mem_handle"
pawno\include\sqlitei.inc(978) : error 017: undefined symbol "db_get_result_mem_handle"
pawno\include\sqlitei.inc(2159) : error 017: undefined symbol "db_get_result_mem_handle"
filterscripts\lumberjack.pwn(137) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(155) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(198) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(231) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(293) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(300) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(363) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(504) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(530) : error 025: function heading differs from prototype
filterscripts\lumberjack.pwn(530) : error 017: undefined symbol "objectid"
filterscripts\lumberjack.pwn(532) : error 010: invalid function or declaration
filterscripts\lumberjack.pwn(534) : error 010: invalid function or declaration
filterscripts\lumberjack.pwn(537) : error 010: invalid function or declaration
filterscripts\lumberjack.pwn(544) : error 021: symbol already defined: "SetDynamicObjectPos"
filterscripts\lumberjack.pwn(547) : error 021: symbol already defined: "Streamer_SetFloatData"
filterscripts\lumberjack.pwn(551) : error 025: function heading differs from prototype
filterscripts\lumberjack.pwn(551) : error 021: symbol already defined: "stmt_bind_value"
filterscripts\lumberjack.pwn(552) : error 021: symbol already defined: "stmt_bind_value"
filterscripts\lumberjack.pwn(553) : error 021: symbol already defined: "stmt_bind_value"
filterscripts\lumberjack.pwn(554) : error 021: symbol already defined: "stmt_bind_value"
filterscripts\lumberjack.pwn(555) : error 021: symbol already defined: "stmt_bind_value"
filterscripts\lumberjack.pwn(556) : error 021: symbol already defined: "stmt_bind_value"
filterscripts\lumberjack.pwn(557) : error 021: symbol already defined: "stmt_bind_value"
filterscripts\lumberjack.pwn(558) : error 021: symbol already defined: "stmt_execute"
filterscripts\lumberjack.pwn(560) : error 010: invalid function or declaration
filterscripts\lumberjack.pwn(563) : error 010: invalid function or declaration
filterscripts\lumberjack.pwn(565) : error 021: symbol already defined: "id"
filterscripts\lumberjack.pwn(565) : error 008: must be a constant expression; assumed zero
filterscripts\lumberjack.pwn(572) : error 010: invalid function or declaration
filterscripts\lumberjack.pwn(580) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(598) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(624) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(626) : error 017: undefined symbol "Logs"
filterscripts\lumberjack.pwn(672) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(695) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(706) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(729) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(759) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(804) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(817) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(843) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(875) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(899) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(932) : warning 219: local variable "id" shadows a variable at a preceding level
filterscripts\lumberjack.pwn(353) : warning 204: symbol is assigned a value that is never used: "UpdateTree"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


25 Errors.
Reply
#2

or not to get a solution? Help....
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)