Can't understand Hooking.. -
Tittle says it all i can't understand how hooking works.
I want to seperate some dialogs of my DialogResponse callback and seperate for each functionality (account dialogs,vehicle dialogs, event dialogs, etc) how can i seperate it so all of them could be called for the same callback?
P.S: My DialogResponse is pretty huge right now thats why i want to module it..
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new Float:X,Float:Y,Float:Z,Float:Angle;
switch(dialogid)
{
case dlogin: //login dialog
{
if(!response) Kick(playerid);
new hpass[129];
new query[100];
WP_Hash(hpass, 129, inputtext);
if(!strcmp(hpass, pinfo[playerid][Password]))
{
mysql_format(mysql, query, sizeof(query), "SELECT * FROM `players` WHERE `Username` = '%e' LIMIT 1", Name[playerid]);
mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid);
}
else
{
ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_PASSWORD, "Login", "In order to play, you need to login\nWrong password!", "Login", "Quit");
}
}
case DIALOG_BIKES:
{
if(!response)
{
ShowPlayerCarShopMenu(playerid);
}
else
{
VehicleInfo[veh[playerid]][VehicleColor1] = random(250);
VehicleInfo[veh[playerid]][VehicleColor2] = random(250);
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 4500) return SendClientMessage(playerid, COLOR_RED," SERVER : You don't have so much money!");
GetPlayerPos(playerid, X,Y,Z);
veh[playerid] = CreateVehicle(462, X,Y,Z, Angle, VehicleInfo[veh[playerid]][VehicleColor1], VehicleInfo[veh[playerid]][VehicleColor2], -1);
PutPlayerInVehicle(playerid,veh[playerid],0);
SetPVarInt(playerid, #CreatedCar, 1);
GivePlayerMoney(playerid,-4500);
SendClientMessage(playerid,COLOR_ROYALBLUE,"CAR SHOP : You have bought a Faggio Cost: "COL_WHITE" $4,500");
}
case 1:
{
if(GetPlayerMoney(playerid) < 6000) return SendClientMessage(playerid, COLOR_RED," SERVER : You don't have so much money!");
GetPlayerPos(playerid, X,Y,Z);
veh[playerid] = CreateVehicle(581, X,Y,Z, Angle, VehicleInfo[veh[playerid]][VehicleColor1], VehicleInfo[veh[playerid]][VehicleColor2], -1);
PutPlayerInVehicle(playerid,veh[playerid],0);
SetPVarInt(playerid, #CreatedCar, 1);
GivePlayerMoney(playerid,-6000);
SendClientMessage(playerid,COLOR_ROYALBLUE,"CAR SHOP : You have bought a BF-400 Cost: "COL_WHITE" $6,000");
}
case 2:
{
if(GetPlayerMoney(playerid) < 8400) return SendClientMessage(playerid, COLOR_RED," SERVER : You don't have so much money!");
GetPlayerPos(playerid, X,Y,Z);
veh[playerid] = CreateVehicle(586, X,Y,Z, Angle, VehicleInfo[veh[playerid]][VehicleColor1], VehicleInfo[veh[playerid]][VehicleColor2], -1);
SetPVarInt(playerid, #CreatedCar, 1);
PutPlayerInVehicle(playerid,veh[playerid],0);
GivePlayerMoney(playerid,-8400);
SendClientMessage(playerid,COLOR_ROYALBLUE,"CAR SHOP : You have bought a Wayfarer Cost: "COL_WHITE" $8,400");
}
case 3:
{
if(GetPlayerMoney(playerid) < 12000) return SendClientMessage(playerid, COLOR_RED," SERVER : You don't have so much money!");
GetPlayerPos(playerid, X,Y,Z);
veh[playerid] = CreateVehicle(463, X,Y,Z, Angle, VehicleInfo[veh[playerid]][VehicleColor1], VehicleInfo[veh[playerid]][VehicleColor2], -1);
SetPVarInt(playerid, #CreatedCar, 1);
PutPlayerInVehicle(playerid,veh[playerid],0);
GivePlayerMoney(playerid,-12000);
SendClientMessage(playerid,COLOR_ROYALBLUE,"CAR SHOP : You have bought a Freeway Cost: "COL_WHITE" $12,000");
}
case 4:
{
if(GetPlayerMoney(playerid) < 17000) return SendClientMessage(playerid, COLOR_RED," SERVER : You don't have so much money!");
GetPlayerPos(playerid, X,Y,Z);
veh[playerid] = CreateVehicle(461, X,Y,Z, Angle, VehicleInfo[veh[playerid]][VehicleColor1], VehicleInfo[veh[playerid]][VehicleColor2], -1);
SetPVarInt(playerid, #CreatedCar, 1);
PutPlayerInVehicle(playerid,veh[playerid],0);
GivePlayerMoney(playerid,-17000);
SendClientMessage(playerid,COLOR_ROYALBLUE,"CAR SHOP : You have bought a PCJ-600 Cost: "COL_WHITE" $17,000");
}
case 5:
{
if(GetPlayerMoney(playerid) < 22500) return SendClientMessage(playerid, COLOR_RED," SERVER : You don't have so much money!");
GetPlayerPos(playerid, X,Y,Z);
veh[playerid] = CreateVehicle(521, X,Y,Z, Angle, VehicleInfo[veh[playerid]][VehicleColor1], VehicleInfo[veh[playerid]][VehicleColor2], -1);
SetPVarInt(playerid, #CreatedCar, 1);
PutPlayerInVehicle(playerid,veh[playerid],0);
GivePlayerMoney(playerid,-22500);
SendClientMessage(playerid,COLOR_ROYALBLUE,"CAR SHOP : You have bought a FCR-900 Cost: "COL_WHITE" $22,500");
}
//PlayerOwningVehicle(playerid);
}
}
}
I want to seperate these two but to be called in the same callback.. How? Can someone spend some time to explain me? It will be amazing
Re: Can't understand Hooking.. -