Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Author: Carlo. | Autorius: Carlo.
- * Include: c_Dialogs
- * Copyright 2013 c_library,
- * (email: samp.carlo@gmail.com)
- */
- /*
- * CreateDialog() funkcija naudojama OnGameModeInit() callback'e
- * ShowDialogForPlayer() funkciją galite naudoti visur kur yra playerid parametras
- * ShowDialogForAll() funckiją galite naudoti visur
- * ChangeDialog() funkciją galite naudoti visur
- * HideDialogsForAll() funkciją galite naudoti visur
- * HideDialogsForPlayer() funkciją galite naudoti tik kur yra playerid parametras
- * ShowNextDialog() funkciją galite naudoti tik kur yra playerid parametras
- * ShowPrevDialog() funkciją galite naudoti tik kur yra playerid parametras
- v0.1b:
- - Pataisyta klaida su ChangeDialog, dabar nustos rodyti pakeistą dialog'ą ir jį parodys atsinaujinusį.
- - Padaryta taip, kad jeigu sukuriant dialog'ą su CreateDialog() toks id jau naudojamas išmestų klaidą ir nesukurtų dialog'o
- - Padaryta, kad default button2 būtų lygus "" ir jo rašyti nereikėtų ( Thanks Yiin )
- */
- #if !defined _samp_included
- #tryinclude <a_samp>
- #if !defined _samp_included
- #error could not locate a_samp.inc file, please check your server includes
- #endif
- #endif
- #tryinclude <foreach>
- #define MAX_DIALOGS 10000
- #define function::%0(%1) stock %0(%1)
- enum d_info
- {
- ID,
- dialog_id,
- style,
- header[400],
- content[500],
- button1[20],
- button2[20]
- }
- static dInfo[MAX_DIALOGS][d_info];
- /* Function to Create a dialog | Funkcija kuri sukuria dialog'ą */
- function::CreateDialog(id,d_id,d_style,d_header[],d_content[],d_button1[],d_button2[] = "")
- {
- if(DialogExist(id))
- {
- printf("c_Dialogs: klaida su dialog id %i, šis dialogo id jau naudojamas!",id);
- return 1;
- }
- dInfo[id][ID]=id;
- dInfo[id][dialog_id]=d_id;
- dInfo[id][style]=d_style;
- format(dInfo[id][header],40,"%s",d_header);
- format(dInfo[id][content],400,"%s",d_content);
- format(dInfo[id][button1],20,"%s",d_button1);
- format(dInfo[id][button2],20,"%s",d_button2);
- return 1;
- }
- /* Function to Show a Dialog by id for a one player | Funkcija kuri parodo dialog'ą pagal jo id vienam žaidėjui */
- function::ShowDialogForPlayer(playerid,d_id)
- {
- ShowPlayerDialog(playerid,dInfo[d_id][dialog_id],dInfo[d_id][style],dInfo[d_id][header],dInfo[d_id][content],dInfo[d_id][button1],dInfo[d_id][button2]);
- SetPVarInt(playerid,"currentDialog",d_id);
- return 1;
- }
- /* Function to Show a Dialog by id for a all players | Funkcija kuri parodo dialog'ą pagal jo id visiems žaidėjams */
- function::ShowDialogForAll(d_id)
- {
- foreach(Player,i)
- {
- ShowPlayerDialog(i,dInfo[d_id][dialog_id],dInfo[d_id][style],dInfo[d_id][header],dInfo[d_id][content],dInfo[d_id][button1],dInfo[d_id][button2]);
- SetPVarInt(i,"currentDialog",d_id);
- }
- return 1;
- }
- /* Function to Change a Dialog parametres | Funkcija su kuria pakeisite esančio dialog'o parametrus */
- function::ChangeDialog(id,d_style,d_header[],d_content[],d_button1[],d_button2[])
- {
- dInfo[id][style]=d_style;
- format(dInfo[id][header],40,"%s",d_header);
- format(dInfo[id][content],400,"%s",d_content);
- format(dInfo[id][button1],20,"%s",d_button1);
- format(dInfo[id][button2],20,"%s",d_button2);
- foreach(Player,i)
- {
- if(GetPVarInt(i,"currentDialog")==id)
- {
- HideDialogsForPlayer(i);
- ShowDialogForPlayer(i,id);
- }
- }
- return 1;
- }
- /* Function to Hide all dialogs for all | Funkcija kuri paslėpia visus atidarytus dialog'us visiems */
- function::HideDialogsForAll()
- {
- foreach(Player,i)
- {
- ShowPlayerDialog(i, -1, 0, NULL, NULL, NULL, NULL);
- }
- return 1;
- }
- /* Function to Hide all dialogs for player | Funkcija kuri paslėpia visus atidarytus dialog'us konkrečiam žaidėjui */
- function::HideDialogsForPlayer(playerid)
- {
- ShowPlayerDialog(playerid, -1, 0, NULL, NULL, NULL, NULL);
- return 1;
- }
- /* Function to show dialog next by id ( smth like 1,2,3, and etc. )| Funkcija kuri parodo sekantį dialogą, tarkim 1 tai rodys dialogą su id 2 */
- function::ShowNextDialog(playerid,d_id)
- {
- if(GetPVarInt(playerid,"currentDialog")==0)
- {
- print("c_Dialogs: klaida ShowNextDialog funkcijoje, zaidejas neturi pasirinkto dialog'o!");
- return 1;
- }
- HideDialogsForPlayer(playerid);
- ShowDialog(playerid,GetPVarInt(playerid,"currentDialog")+1);
- return 1;
- }
- /* Function to show dialog prev by id ( smth like 3,2,1 and etc. )| Funkcija kuri parodo sekantį dialogą, tarkim 2 tai rodys dialogą su id 1 */
- function::ShowPrevDialog(playerid,d_id)
- {
- if(GetPVarInt(playerid,"currentDialog")==0)
- {
- print("c_Dialogs: klaida ShowPrevDialog funkcijoje, zaidejas neturi pasirinkto dialog'o!");
- return 1;
- }
- HideDialogsForPlayer(playerid);
- ShowDialog(playerid,GetPVarInt(playerid,"currentDialog")-1);
- return 1;
- }
- /* Function to check if dialog exist or not | Funkcija kuri patikrina ar egzistuoja dialog'as */
- function::DialogExist(d_id)
- {
- for(new d; d<MAX_DIALOGS; d++)
- {
- if(dInfo[d][ID] == d_id)
- return true;
- else
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement