[help] what wrong
#1

PHP Code:
/*
    vDealer by Gamer931215
    ©2011, you may use/edit this script for yourself, but NOT re-release, sell, mirror
    or make profit of this!
    V1.1:
        - Bug fixed with dialogspam (thanks to [KO]KillerThriller for reporting)
        - You can now define the pickupmodel if you want to change it
        - System can now also use checkpoints instead of pickups
        - OnGameModeInit bug fixed (i failed, lol)
        - System is now using Incognito's streamer
    native CreateVehicleDealer(dealername[],Float:x,Float:y,Float:z)
    native ToggleDealer(dealerid,toggle)
    native AddVehicleToDealer(dealerid,vehiclename[],modelid,price)
    native ToggleDealerVehicle(dealerid,dealervehicleid,toggle)
*/
#include <a_samp>
#include <zcmd>
#include <streamer>
/*==============================================================================================================
                                                    Settings
===============================================================================================================*/
//LIMITS
#define    M_VEHICLES            500        //maximum ammount of private vehicles
#define M_DEALERS            100     //maximum ammount of vehicleDealers
#define M_DEALER_VEHICLES   15      //maximum vehicles per dealer
#define M_PLAYERS            32      //Maximum playersin your server (should be equal to your ammount of serverslots)
//main settings
#define RESPAWN_DELAY       5000    //Respawn time in miliseconds
#define DIALOG_RANGE        0       //dialog range
#define DIALOG_STRING_SIZE  256     //string size of generated dialog
#define PICKUP_MODEL        1318    //ModelID for pickup
#define MAP_ICON            55      //mapicon for dealer
#define PICKUP_ANTISPAM     10000   //Antispam timer for OnPlayerPickupPickup (time in miliseconds)
#define USE_CP              false   //will use checkpoints instead of pickups
#define CP_SIZE             1
//sell vehicle settings
#define SELL_DIVIDE         5       //Original price / SELL_DIVIDE = sellback money you get
//streamer settings
#define STREAMER_DISTANCE    100     //Streamdistance for the build-in streamer
#define STREAMER_INTERVAL   1000    //Streamer tickratio (due to the loops, this shouldnt be really lower as 600-700 i think, i recommend setting it to 1000 though)
//FILEPATHS
#define VEHICLE_PATH        "vDealer_vehicles/%i.ini"
//SQL Settings:
#define USE_MYSQL_DATABASE  false
#define SQL_SERVER            "localhost"
#define SQL_TABLE           "vDealer_vehicles"
#define SQL_USER            "root"
#define SQL_PASS            ""
/*==============================================================================================================
                                            Variables/Color defines
===============================================================================================================*/
#if USE_MYSQL_DATABASE == true
    #include <yoursql>
    #include <sscanf2>
#else
    #include <YSI/y_ini>
#endif
#define vDEALER: new
#define DIALOG_SELL DIALOG_RANGE
#define DIALOG_DEALER_VEHICLES DIALOG_RANGE +1
#define DIALOG_DEALER_PRIMARY_COLOR DIALOG_RANGE +2
#define DIALOG_DEALER_SECONDARY_COLOR DIALOG_RANGE +3
#define COLOR_RED 0xFF1400FF
#define COLOR_YELLOW 0xFFFF00FF
#define COLOR_WHITE 0xFFFFFFFF
//dealer vehicleinfo per dealer
enum vehicle
{
    
_name[32],
    
_modelid,
    
_price,
    
bool:_active
}
new 
DealerVehicles[M_DEALERS][M_DEALER_VEHICLES][vehicle];
//Dealers
enum _dealer
{
    
_dealername[64],
    
Float:_x,
    
Float:_y,
    
Float:_z,
    
bool:_active,
    
_pickupid,
    
_mapicon,
    
Text3D:_3dtextlabel
}
new 
Dealers[M_DEALERS][_dealer];
//vehicles
enum PrivateVehicle
{
    
_owner[MAX_PLAYER_NAME],
    
_modelid,
    
Float:_x,
    
Float:_y,
    
Float:_z,
    
Float:_rot,
    
_c1,
    
_c2,
    
_price,
    
_vehicleid
}
new 
PrivateVehicles[M_VEHICLES][PrivateVehicle];
/*==============================================================================================================
                                            Public player related functions
===============================================================================================================*/
#if defined FILTERSCRIPT
    
public OnFilterScriptInit()
    {
        
vdealer_init();
        return 
CallLocalFunction("vdealer_OnFilterScriptInit","");
    }
    
#if defined _ALS_OnFilterScriptInit
        #undef OnFilterScriptInit
    #else
        #define _ALS_OnFilterScriptInit
    #endif
    #define OnFilterScriptInit vdealer_OnFilterScriptInit
    
forward vdealer_OnFilterScriptInit();
    public 
OnFilterScriptExit()
    {
        
vdealer_exit();
        return 
CallLocalFunction("vdealer_OnFilterScriptExit","");
    }
    
#if defined _ALS_OnFilterScriptExit
        #undef OnFilterScriptExit
    #else
        #define _ALS_OnFilterScriptExit
    #endif
    #define OnFilterScriptExit vdealer_OnFilterScriptExit
    
forward vdealer_OnFilterScriptExit();
#else
    
public OnGameModeInit()
    {
        
vdealer_init();
        return 
CallLocalFunction("vdealer_OnGameModeInit","");
    }
    
#if defined _ALS_OnGameModeInit
        #undef OnGameModeInit
    #else
        #define _ALS_OnGameModeInit
    #endif
    #define OnGameModeInit vdealer_OnGameModeInit
    
forward vdealer_OnGameModeInit();
    public 
OnGameModeExit()
    {
        
vdealer_exit();
        return 
CallLocalFunction("vdealer_OnGameModeExit","");
    }
    
#if defined _ALS_OnGameModeExit
        #undef OnGameModeExit
    #else
        #define _ALS_OnGameModeExit
    #endif
    #define OnGameModeExit vdealer_OnGameModeExit
    
forward vdealer_OnGameModeExit();
#endif
public OnPlayerStateChange(playerid,newstate,oldstate)
{
    if(
newstate == PLAYER_STATE_DRIVER)
    {
        new 
veh GetPlayerVehicleID(playerid);
        new 
pName[MAX_PLAYER_NAME];
        
GetPlayerName(playerid,pName,sizeof pName);
        if(
IsVehiclePrivate(veh))
        {
            if(!
strcmp(pName,PrivateVehicles[ConvertVID(veh)][_owner])) return 0;
            
RemovePlayerFromVehicle(playerid);
            
SendClientMessageEx(playerid,COLOR_YELLOW,"sss","You are not the owner of this vehicle! This vehicle is owned by {FFFFFF}",PrivateVehicles[ConvertVID(veh)][_owner],"{FFFF00}.");
        }
    }
    return 
CallLocalFunction("vdealer_OnPlayerStateChange","iii",playerid,newstate,oldstate);
}
#if defined _ALS_OnPlayerStateChange
    #undef OnPlayerStateChange
#else
    #define _ALS_OnPlayerStateChange
#endif
#define OnPlayerStateChange vdealer_OnPlayerStateChange
forward vdealer_OnPlayerStateChange(playerid,newstate,oldstate);
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(!
response)
    {
        
DeletePVar(playerid,"dealerid");
        
DeletePVar(playerid,"modelid");
        
DeletePVar(playerid,"c1");
        
DeletePVar(playerid,"c2");
        
DeletePVar(playerid,"price");
        
#if USE_CP == true
            
DeletePVar(playerid,"DisablePickups");
        
#else
            
SetTimerEx("EnablePickups",PICKUP_ANTISPAM,false,"i",playerid);
        
#endif
        
return CallLocalFunction("vdealer_OnDialogResponse","iiiis",playeriddialogidresponselistiteminputtext);
    }
    switch(
dialogid)
    {
        case 
DIALOG_SELL:
        {
            
GivePlayerMoney(playerid,(PrivateVehicles[ConvertVID(GetPlayerVehicleID(playerid))][_price] / SELL_DIVIDE));
            
SendClientMessageEx(playerid,COLOR_YELLOW,"si","You've succesfully sold your vehicle for {FFFFFF}$",(PrivateVehicles[ConvertVID(GetPlayerVehicleID(playerid))][_price] / SELL_DIVIDE));
            
RemoveVehicle(GetPlayerVehicleID(playerid));
        }
        case 
DIALOG_DEALER_VEHICLES:
        {
            new 
dealerid GetPVarInt(playerid,"dealerid");
            
DeletePVar(playerid,"dealerid");
            if(
GetPlayerMoney(playerid) - DealerVehicles[dealerid][listitem][_price] < 0)
            {
                
DeletePVar(playerid,"DisabledPickups");
                return 
SendClientMessage(playerid,COLOR_RED,"You've got not enough money for this vehicle!");
            }
            
SetPVarInt(playerid,"price",DealerVehicles[dealerid][listitem][_price]);
            
SetPVarInt(playerid,"modelid",DealerVehicles[dealerid][listitem][_modelid]);
            
ShowPlayerDialog(playerid,DIALOG_DEALER_PRIMARY_COLOR,DIALOG_STYLE_LIST,"Select primary color","Red\nGreen\nBlue\nOrange\nBlack\nWhite\nPink","OK","");
        }
        case 
DIALOG_DEALER_PRIMARY_COLOR:
        {
            switch(
listitem)
            {
                case 
0:
                {
                    
SetPVarInt(playerid,"c1",3);
                }
                case 
1:
                {
                    
SetPVarInt(playerid,"c1",86);
                }
                case 
2:
                {
                    
SetPVarInt(playerid,"c1",79);
                }
                case 
3:
                {
                    
SetPVarInt(playerid,"c1",6);
                }
                case 
4:
                {
                    
SetPVarInt(playerid,"c1",0);
                }
                case 
5:
                {
                    
SetPVarInt(playerid,"c1",1);
                }
                case 
6:
                {
                    
SetPVarInt(playerid,"c1",183);
                }
            }
            
ShowPlayerDialog(playerid,DIALOG_DEALER_SECONDARY_COLOR,DIALOG_STYLE_LIST,"Select secondary color","Red\nGreen\nBlue\nOrange\nBlack\nWhite\nPink","OK","");
        }
        case 
DIALOG_DEALER_SECONDARY_COLOR:
        {
            switch(
listitem)
            {
                case 
0:
                {
                    
SetPVarInt(playerid,"c2",3);
                }
                case 
1:
                {
                    
SetPVarInt(playerid,"c2",86);
                }
                case 
2:
                {
                    
SetPVarInt(playerid,"c2",79);
                }
                case 
3:
                {
                    
SetPVarInt(playerid,"c2",6);
                }
                case 
4:
                {
                    
SetPVarInt(playerid,"c2",0);
                }
                case 
5:
                {
                    
SetPVarInt(playerid,"c2",1);
                }
                case 
6:
                {
                    
SetPVarInt(playerid,"c2",183);
                }
            }
            new 
id,pName[MAX_PLAYER_NAME],Float:x,Float:y,Float:z,Float:angle;
            
GetPlayerPos(playerid,x,y,z);GetPlayerName(playerid,pName,sizeof pName);GetPlayerFacingAngle(playerid,angle);
            
GivePlayerMoney(playerid,-DealerVehicles[GetPVarInt(playerid,"dealerid")][listitem][_price]);
            
id CreatePrivateVehicle(pName,GetPVarInt(playerid,"modelid"),x,y,z,angle,GetPVarInt(playerid,"c1"),GetPVarInt(playerid,"c2"),GetPVarInt(playerid,"price"));
            
PutPlayerInVehicle(playerid,id,0);
            
SendClientMessage(playerid,COLOR_YELLOW,"You've succesfully bought a vehicle! You can use {FFFFFF}/park {FFFF00}to park your vehicle and {FFFFFF}/sellvehicle {FFFF00}to sell it!");
            
DeletePVar(playerid,"dealerid");
            
DeletePVar(playerid,"modelid");
            
DeletePVar(playerid,"c1");
            
DeletePVar(playerid,"c2");
            
DeletePVar(playerid,"price");
            
DeletePVar(playerid,"DisablePickups");
        }
    }
    return 
CallLocalFunction("vdealer_OnDialogResponse","iiiis",playeriddialogidresponselistiteminputtext);
}
#if defined _ALS_OnDialogResponse
    #undef OnDialogResponse
#else
    #define _ALS_OnDialogResponse
#endif
#define OnDialogResponse vdealer_OnDialogResponse
forward vdealer_OnDialogResponse(playeriddialogidresponselistiteminputtext[]);
forward EnablePickups(playerid);
public 
EnablePickups(playerid)
{
    
DeletePVar(playerid,"DisablePickups");
    return 
1;
}
#if USE_CP == true
    
public OnPlayerEnterDynamicCP(playerid)
    {
        if(
IsPlayerInAnyVehicle(playerid)) return 1;
        new 
string[DIALOG_STRING_SIZE],dealerid GetClosestDealerForPlayer(playerid);
        if(
dealerid == -1) return 1;
        
SetPVarInt(playerid,"dealerid",dealerid);
        for(new 
0;i<M_DEALER_VEHICLES;i++)
        {
            if(
DealerVehicles[dealerid][i][_active] != true) continue;
            
format(string,sizeof string,"%s%s - {00FF00}$%i\n",string,DealerVehicles[dealerid][i][_name],DealerVehicles[dealerid][i][_price]);
        }
        
ShowPlayerDialog(playerid,DIALOG_DEALER_VEHICLES,DIALOG_STYLE_LIST,"Which vehicle do you want to buy?",string,"Buy","Leave");
        return 
1;
    }
#else
    
public OnPlayerPickUpDynamicPickup(playeridpickupid)
    {
        if(
GetPVarInt(playerid,"DisablePickups") == 1) return 1;
        
SetPVarInt(playerid,"DisablePickups",1);
        new 
string[DIALOG_STRING_SIZE],dealerid GetClosestDealerForPlayer(playerid);
        if(
dealerid == -1) return 1;
        
SetPVarInt(playerid,"dealerid",dealerid);
        for(new 
0;i<M_DEALER_VEHICLES;i++)
        {
            if(
DealerVehicles[dealerid][i][_active] != true) continue;
            
format(string,sizeof string,"%s%s - {00FF00}$%i\n",string,DealerVehicles[dealerid][i][_name],DealerVehicles[dealerid][i][_price]);
        }
        
ShowPlayerDialog(playerid,DIALOG_DEALER_VEHICLES,DIALOG_STYLE_LIST,"Which vehicle do you want to buy?",string,"Buy","Leave");
        return 
1;
    }
#endif
/*==============================================================================================================
                                             Public Vehicle related functions
===============================================================================================================*/
public OnVehicleRespray(playeridvehicleidcolor1color2)
{
    new 
veh GetPlayerVehicleID(playerid);
    
PrivateVehicles[ConvertVID(veh)][_c1] = color1;
    
PrivateVehicles[ConvertVID(veh)][_c2] = color2;
    return 
CallLocalFunction("vdealer_OnVehicleRespray","iiii",playerid,vehicleid,color1,color2);
}
#if defined _ALS_OnVehicleRespray
    #undef OnVehicleRespray
#else
    #define _ALS_OnVehicleRespray
#endif
#define OnVehicleRespray vdealer_OnVehicleRespray
forward vdealer_OnVehicleRespray(playerid,vehicleid,color1,color2);
public 
OnVehicleDeath(vehicleid)
{
    if(
IsVehiclePrivate(vehicleid))
    {
        
SetVehicleToRespawn(vehicleid);
        
SetVehiclePos(vehicleid,-5,-5,-5);
        
SetTimerEx("Spawn_On_Park_Pos",RESPAWN_DELAY,false,"i",vehicleid);
    }
    return 
CallLocalFunction("OnVehicleDeath","i",vehicleid);
}
#if defined _ALS_OnVehicleDeath
    #undef OnVehicleDeath
#else
    #define _ALS_OnVehicleDeath
#endif
#define OnVehicleDeath vdealer_OnVehicleDeath
forward vdealer_OnVehicleDeath(vehicleid);
forward Spawn_On_Park_Pos(vehicleid);
public 
Spawn_On_Park_Pos(vehicleid)
{
    new 
pvid ConvertVID(vehicleid);
    
SetVehiclePos(vehicleid,PrivateVehicles[pvid][_x],PrivateVehicles[pvid][_y],PrivateVehicles[pvid][_z]);
    
SetVehicleZAngle(vehicleid,PrivateVehicles[pvid][_rot]);
    return 
1;
}
/*==============================================================================================================
                                                vDealer related functions
===============================================================================================================*/
//Public Functions:
stock CreateVehicleDealer(dealername[],Float:x,Float:y,Float:z)
{
    new 
id GenerateID(1);
    
format(Dealers[id][_dealername],64,"%s",dealername);
    
Dealers[id][_x] = x;
    
Dealers[id][_y] = y;
    
Dealers[id][_z] = z;
    
Dealers[id][_active] = true;
    
#if USE_CP == true
        
Dealers[id][_pickupid] = CreateDynamicCP(x,y,z,CP_SIZE);
    
#else
        
Dealers[id][_pickupid] = CreateDynamicPickup(PICKUP_MODEL,23,x,y,z);
    
#endif
    
Dealers[id][_3dtextlabel] = CreateDynamic3DTextLabel(dealername,COLOR_YELLOW,x,y,+1,STREAMER_DISTANCE);
    
Dealers[id][_mapicon] = CreateDynamicMapIcon(x,y,z,MAP_ICON,0);
    return 
id;
}
stock AddVehicleToDealer(dealerid,vehiclename[],modelid,price)
{
    new 
id GenerateID(2,dealerid);
    
format(DealerVehicles[dealerid][id][_name],32,"%s",vehiclename);
    
DealerVehicles[dealerid][id][_modelid] = modelid;
    
DealerVehicles[dealerid][id][_price] = price;
    
DealerVehicles[dealerid][id][_active] = true;
    return 
1;
}
stock ToggleDealer(dealerid,toggle)
{
    switch(
toggle)
    {
        case 
0:
        {
            
#if USE_CP == true
                
DestroyDynamicCP(Dealers[dealerid][_pickupid]);
            
#else
                
DestroyDynamicPickup(Dealers[dealerid][_pickupid]);
            
#endif
            
DestroyDynamic3DTextLabel(Dealers[dealerid][_3dtextlabel]);
            
DestroyDynamicMapIcon(Dealers[dealerid][_mapicon]);
            
Dealers[dealerid][_active] = false;
        }
        case 
1:
        {
            
#if USE_CP == true
                
Dealers[dealerid][_pickupid] = CreateDynamicCP(Dealers[dealerid][_x],Dealers[dealerid][_y],Dealers[dealerid][_z],CP_SIZE);
            
#else
                
Dealers[dealerid][_pickupid] = CreateDynamicPickup(PICKUP_MODEL,23,Dealers[dealerid][_x],Dealers[dealerid][_y],Dealers[dealerid][_z]);
            
#endif
            
Dealers[dealerid][_3dtextlabel] = CreateDynamic3DTextLabel(Dealers[dealerid][_dealername],COLOR_YELLOW,Dealers[dealerid][_x],Dealers[dealerid][_y],Dealers[dealerid][_z] +1,STREAMER_DISTANCE);
            
Dealers[dealerid][_mapicon] = CreateDynamicMapIcon(Dealers[dealerid][_x],Dealers[dealerid][_y],Dealers[dealerid][_z],MAP_ICON,0);
            
Dealers[dealerid][_active] = true;
        }
    }
    return 
1;
}
stock ToggleDealerVehicle(dealerid,dealervehicleid,toggle)
{
    switch(
toggle)
    {
        case 
0:
        {
            
DealerVehicles[dealerid][dealervehicleid][_active] = false;
        }
        case 
1:
        {
            
DealerVehicles[dealerid][dealervehicleid][_active] = true;
        }
    }
    return 
1;
}
//Internal Functions
stock vdealer_init()
{
    
#if USE_MYSQL_DATABASE == true
        
yoursql_connect(SQL_SERVER,SQL_USER,SQL_TABLE,SQL_PASS);
    
#endif
    
SetTimer("stream",STREAMER_INTERVAL,true);
    
LoadVehicles();
}
stock vdealer_exit()
{
    for(new 
0;< (M_VEHICLES); i++)
    {
        
DestroyVehicle(PrivateVehicles[i][_vehicleid]);
    }
    for(new 
0;i<M_DEALERS;i++)
    {
        
DestroyDynamic3DTextLabel(Dealers[i][_3dtextlabel]);
        
#if USE_CP == true
            
DestroyDynamicCP(Dealers[i][_pickupid]);
        
#else
            
DestroyDynamicPickup(Dealers[i][_pickupid]);
        
#endif
    
}
}
stock CreatePrivateVehicle(playername[],modelid,Float:x,Float:y,Float:z,Float:rot,c1,c2,price)
{
    new 
id GenerateID();
    if(
id == -1)
    {
        
printf("vDealer: Error! Max ammount of private vehicles reached (%i)! could not create vehicle",M_VEHICLES);
        return 
1;
    }
    
format(PrivateVehicles[id][_owner],MAX_PLAYER_NAME,"%s",playername);
    
PrivateVehicles[id][_modelid] = modelid;
    
PrivateVehicles[id][_x] = x;
    
PrivateVehicles[id][_y] = y;
    
PrivateVehicles[id][_z] = z;
    
PrivateVehicles[id][_rot] = rot;
    
PrivateVehicles[id][_c1] = c1;
    
PrivateVehicles[id][_c2] = c2;
    
PrivateVehicles[id][_price] = price;
    
#if USE_MYSQL_DATABASE == true
        
yoursql_insert("vehicles","isiffffiii",id,playername,modelid,x,y,z,rot,c1,c2,price);
    
#else
        
new file[64];
        
format(file,sizeof file,VEHICLE_PATH,id);
        new 
INI:handler INI_Open(file);
        
INI_WriteString(handler,"_owner",playername);
        
INI_WriteInt(handler,"_modelid",modelid);
        
INI_WriteFloat(handler,"_x",x);
        
INI_WriteFloat(handler,"_y",y);
        
INI_WriteFloat(handler,"_z",z);
        
INI_WriteFloat(handler,"_rot",rot);
        
INI_WriteInt(handler,"_c1",c1);
        
INI_WriteInt(handler,"_c2",c2);
        
INI_WriteInt(handler,"_price",price);
        
INI_Close(handler);
    
#endif
    
PrivateVehicles[id][_vehicleid] = AddStaticVehicle(modelid,x,y,z,rot,c1,c2);
    
SetVehicleNumberPlate(PrivateVehicles[id][_vehicleid],PrivateVehicles[id][_owner]);
    
SetVehicleToRespawn(PrivateVehicles[id][_vehicleid]);
    return 
PrivateVehicles[id][_vehicleid];
}
stock SaveVehicle(vehicleid)
{
    new 
veh ConvertVID(vehicleid);
    
#if USE_MYSQL_DATABASE == true
        
new identifier[64];format(identifier,sizeof identifier,"`id` = %i",veh);
        new 
query[164];format(query,sizeof query,"`x` = %f, `y` = %f, `z` = %f, `rot` = %f, `c1` = %i, `c2` = %i",PrivateVehicles[veh][_x],PrivateVehicles[veh][_y],PrivateVehicles[veh][_z],PrivateVehicles[veh][_rot],PrivateVehicles[veh][_c1],PrivateVehicles[veh][_c2]);
        
yoursql_update("vehicles",query,identifier);
    
#else
        
new file[64];
        
format(file,sizeof file,VEHICLE_PATH,veh);
        new 
INI:handler INI_Open(file);
        
INI_WriteString(handler,"_owner",PrivateVehicles[veh][_owner]);
        
INI_WriteInt(handler,"_modelid",PrivateVehicles[veh][_modelid]);
        
INI_WriteFloat(handler,"_x",PrivateVehicles[veh][_x]);
        
INI_WriteFloat(handler,"_y",PrivateVehicles[veh][_y]);
        
INI_WriteFloat(handler,"_z",PrivateVehicles[veh][_z]);
        
INI_WriteFloat(handler,"_rot",PrivateVehicles[veh][_rot]);
        
INI_WriteInt(handler,"_c1",PrivateVehicles[veh][_c1]);
        
INI_WriteInt(handler,"_c2",PrivateVehicles[veh][_c2]);
        
INI_WriteInt(handler,"_price",PrivateVehicles[veh][_price]);
        
INI_Close(handler);
    
#endif
    
return 1;
}
stock LoadVehicles()
{
    
#if USE_MYSQL_DATABASE == true
        
new query[128],counter 0,0;
        
format(query,sizeof query,"SELECT `owner`,`modelid`,`x`,`y`,`z`,`rot`,`c1`,`c2`,`price` FROM vehicles WHERE `id` = 0");
        for(
0;yoursql_countrows(query) != 0;i++)
        {
            new 
buffer[1];format(buffer,sizeof buffer,"%s",yoursql_receive(query));
            
sscanf(query,"p<|>e<s[24]iffffiii>",PrivateVehicles[i]);
            
PrivateVehicles[i][_vehicleid] = AddStaticVehicle(PrivateVehicles[i][_modelid],PrivateVehicles[i][_x],PrivateVehicles[i][_y],PrivateVehicles[i][_z],PrivateVehicles[i][_rot],PrivateVehicles[i][_c1],PrivateVehicles[i][_c2]);
            
SetVehicleNumberPlate(PrivateVehicles[i][_vehicleid],PrivateVehicles[i][_owner]);
            
SetVehicleToRespawn(PrivateVehicles[i][_vehicleid]);
            
format(query,sizeof query,"SELECT `owner`,`modelid`,`x`,`y`,`z`,`rot`,`c1`,`c2`,`price` FROM vehicles WHERE `id` = %i", (+1));
            
counter++;
        }
    
#else
    
new counter 0;
    for(new 
0;i<M_VEHICLES;i++)
    {
        new 
file[64];format(file,sizeof file,VEHICLE_PATH,i);
        if(
fexist(file))
        {
            new 
INI:handler INI_Open(file);
            
INI_ParseFile(file,"LoadVehicle",.bExtra true, .extra i);
            
PrivateVehicles[i][_vehicleid] = AddStaticVehicle(PrivateVehicles[i][_modelid],PrivateVehicles[i][_x],PrivateVehicles[i][_y],PrivateVehicles[i][_z],PrivateVehicles[i][_rot],PrivateVehicles[i][_c1],PrivateVehicles[i][_c2]);
            
SetVehicleNumberPlate(PrivateVehicles[i][_vehicleid],PrivateVehicles[i][_owner]);
            
SetVehicleToRespawn(PrivateVehicles[i][_vehicleid]);
            
INI_Close(handler);
            
counter++;
        }
    }
    
#endif
    
printf("vDealer: %i vehicle(s) loaded.",counter);
}
#if USE_MYSQL_DATABASE == false
forward LoadVehicle(i,name[],value[]);
public 
LoadVehicle(i,name[],value[])
{
    if(!
strcmp(name,"_owner")){format(PrivateVehicles[i][_owner],MAX_PLAYER_NAME,"%s",value);}
    
INI_Int("_modelid",PrivateVehicles[i][_modelid]);
    
INI_Float("_x",PrivateVehicles[i][_x]);
    
INI_Float("_y",PrivateVehicles[i][_y]);
    
INI_Float("_z",PrivateVehicles[i][_z]);
    
INI_Float("_rot",PrivateVehicles[i][_rot]);
    
INI_Int("_c1",PrivateVehicles[i][_c1]);
    
INI_Int("_c2",PrivateVehicles[i][_c2]);
    
INI_Int("_price",PrivateVehicles[i][_price]);
    return 
1;
}
#endif
stock RemoveVehicle(vehicleid)
{
    new 
id ConvertVID(vehicleid);
    
format(PrivateVehicles[id][_owner],MAX_PLAYER_NAME,"");
    
PrivateVehicles[id][_x] = 0;
    
PrivateVehicles[id][_y] = 0;
    
PrivateVehicles[id][_z] = 0;
    
PrivateVehicles[id][_rot] = 0;
    
PrivateVehicles[id][_c1] = 0;
    
PrivateVehicles[id][_c2] = 0;
    
PrivateVehicles[id][_price] = 0;
    
DestroyVehicle(vehicleid);
    
#if USE_MYSQL_DATABASE == true
        
new identifier[64];
        
format(identifier,sizeof identifier,"'id' = %i",id);
        
yoursql_delete("vehicles",identifier);
    
#else
        
new file[64];
        
format(file,sizeof file,VEHICLE_PATH,id);
        
fremove(file);
    
#endif
    
return 1;
}
stock GenerateID(type 0,dealer 0)
{
    if(
type == 0)                       //vehicle ids
    
{
        for(new 
0M_VEHICLESi++)
        {
            
#if USE_MYSQL_DATABASE == true
                
new query[64];format(query,sizeof query,"SELECT * FROM vehicles");
                return 
yoursql_countrows(query);
            
#else
                
new file[64];format(file,sizeof file,VEHICLE_PATH,i);
                if(!
fexist(file)) return i;
            
#endif
        
}
    } else if (
type == 1) {             //dealer ids
        
for(new 0M_DEALERSi++)
        {
              if(
Dealers[i][_active] == false) return i;
        }
    } else if (
type == 2) {             //vehicle ids in dealermenu
        
for(new 0M_DEALER_VEHICLESi++)
        {
              if(
DealerVehicles[dealer][i][_active] == false) return i;
        }
    }
    return -
1;
}
stock ConvertVID(vehicleid)
{
    for(new 
0;< (M_VEHICLES); i++)
    {
        if(
PrivateVehicles[i][_vehicleid] == vehicleid)
        {
            return 
i;
        }
    }
    return -
1;
}
stock IsVehiclePrivate(vehicleid)
{
    for(new 
0;< (M_VEHICLES); i++)
    {
        if(
PrivateVehicles[i][_vehicleid] == vehicleid)
        {
            return 
1;
        }
    }
    return 
0;
}
stock GetClosestDealerForPlayer(playerid)
{
    new 
dealer = -1;
    new 
Float:distance STREAMER_DISTANCE;
    new 
Float:x,Float:y,Float:z;GetPlayerPos(playerid,x,y,z);
    for(new 
0;i<M_DEALERS;i++)
    {
        new 
Float:temp1Float:temp2;
        
temp1 x-Dealers[i][_x];temp2 y-Dealers[i][_y];
        if(
floatsqroot(temp1*temp1+temp2*temp2) < distance)
        {
            
distance floatsqroot(temp1*temp1+temp2*temp2);
            
dealer i;
        }
    }
    return 
dealer;
}
/*==============================================================================================================
                                                         Player commands
===============================================================================================================*/
COMMAND:park(playerid,params[])
{
    if(!
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"You are not in a vehicle!");
    new 
veh GetPlayerVehicleID(playerid),Float:x,Float:y,Float:z,Float:rot;
    if(!
IsVehiclePrivate(veh)) return SendClientMessage(playerid,COLOR_RED,"You are not in a private vehicle!");
    new 
pName[MAX_PLAYER_NAME];GetPlayerName(playerid,pName,sizeof pName);
    
GetVehiclePos(veh,x,y,z);GetVehicleZAngle(veh,rot);
    if(
strcmp(pName,PrivateVehicles[ConvertVID(veh)][_owner])) return SendClientMessage(playerid,COLOR_RED,"You are not the owner of this vehicle!");
    
veh ConvertVID(veh);
    
PrivateVehicles[veh][_x] = x;
    
PrivateVehicles[veh][_y] = y;
    
PrivateVehicles[veh][_z] = z;
    
PrivateVehicles[veh][_rot] = rot;
    
SaveVehicle(PrivateVehicles[veh][_vehicleid]);
    
SendClientMessage(playerid,COLOR_YELLOW,"You've succesfully parked your vehicle.");
    return 
1;
}
COMMAND:sellvehicle(playerid,params)
{
    if(!
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"You are not in a vehicle!");
    new 
veh GetPlayerVehicleID(playerid);
    if(!
IsVehiclePrivate(veh)) return SendClientMessage(playerid,COLOR_RED,"You are not in a private vehicle!");
    new 
pName[MAX_PLAYER_NAME];GetPlayerName(playerid,pName,sizeof pName);if(strcmp(pName,PrivateVehicles[ConvertVID(veh)][_owner])) return SendClientMessage(playerid,COLOR_RED,"You are not the owner of this vehicle!");
    new 
str[93];format(str,sizeof str,"{FFFF00}Are you sure you want to sell your vehicle ? You will receive {FFFFFF}$%i",(PrivateVehicles[ConvertVID(veh)][_price] / SELL_DIVIDE));
    
ShowPlayerDialog(playerid,DIALOG_SELL,0,"Selling your vehicle",str,"Yes","no");
    return 
1;
}
/*==============================================================================================================
                                             Non-vDealer related functions
===============================================================================================================*/
stock SendClientMessageEx(playerid,color,type[],{Float,_}:...)
{
    new 
string[128];
    for(new 
0;i<numargs() -2;i++)
    {
        switch(
type[i])
        {
            case 
's':
            {
                new 
result[128];
                for(new 
a0;getarg(+3,a) != 0;a++)
                {
                    
result[a] = getarg(+3,a);
                }
                if(!
strlen(string))
                {
                    
format(string,sizeof string,"%s",result);
                } else 
format(string,sizeof string,"%s%s",string,result);
            }
            case 
'i':
            {
                new 
result getarg(+3);
                if(!
strlen(string))
                {
                    
format(string,sizeof string,"%i",result);
                } else 
format(string,sizeof string,"%s%i",string,result);
            }
            case 
'f':
            {
                new 
Float:result Float:getarg(+3);
                if(!
strlen(string))
                {
                    
format(string,sizeof string,"%f",result);
                } else 
format(string,sizeof string,"%s%f",string,result);
            }
        }
    }
    
SendClientMessage(playerid,color,string);
    return 
1;

Reply


Messages In This Thread
[help] what wrong - by decastro96 - 24.06.2011, 12:07
Re: [help] what wrong - by Skaizo - 24.06.2011, 12:14
Re: [help] what wrong - by decastro96 - 24.06.2011, 12:19
Re: [help] what wrong - by Skaizo - 24.06.2011, 12:27
Re: [help] what wrong - by decastro96 - 24.06.2011, 12:34
Re: [help] what wrong - by Skaizo - 24.06.2011, 12:37
Respuesta: [help] what wrong - by RatHack - 24.06.2011, 12:40
Re: [help] what wrong - by decastro96 - 24.06.2011, 12:44

Forum Jump:


Users browsing this thread: 1 Guest(s)