Can't understand Hooking..
#1

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..
example code:
Код:
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
Reply
#2

Look here: https://sampforum.blast.hk/showthread.php?tid=602886

Here the download Link: https://github.com/eider-i128/porgy/...easyDialog.inc

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)