אז ככה,עוד מעט אני אתחיל לפרסם הרבה מדריכים על סאמפ 0.3 לדוגמא להריץ שרת ביתי,מאוחסן ועוד...
עכשיו הנה מדריך על יצירת דיאלוג.
קרדיט לDeadlyBoy על המדריך...
בגרסא החדשה של 0.3 יצאה האפשרות ליצירת דיאלוג. במדריך הזה תלמדו איך ליצור אותו.
דיאלוג טקסט פשוט:
הפונקציה:
PHP Code:
ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Welcome","This Is The Text","OK","Cancel");
הסבר על תוכן הפונקציה:
playerid - האיידי של השחקן אליו נשלח את הדיאלוג.
0 - איידי הדיאלוג (ישמש אותנו עוד מעט, לכל דיאלוג תנו איידי אחר).
DIALOG_STYLE_MSGBOX - סגנון הדיאלוג, במקרה שלנו - תיבת טקסט.
"Welcome" - כותרת הדיאלוג.
"This Is The Text" - הטקסט שיופיע לשחקן.
"OK" - כפתור מס' 1.
"Cancel" - כפתור מס' 2.
תוצאה סופית:

דיאלוג טקסט מפורט:
הפונקציה:
PHP Code:
ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Welcome","This Is The Text\tThis Is The Left Text\nThis Is The Next Line Text","OK","Cancel");
הסבר על תוכן הפונקציה:
playerid - האיידי של השחקן אליו נשלח את הדיאלוג.
1 - איידי הדיאלוג.
DIALOG_STYLE_MSGBOX - סגנון הדיאלוג, במקרה שלנו - תיבת טקסט.
"Welcome" - כותרת הדיאלוג.
"This Is The Text\tThis Is The Left Text\nThis Is The Next Line Text" - הטקסט שיופיע לשחקן.
שימו לב לפרטים: t\ ישים את הטקסט שנכתוב בצד שמאל, n\ ישים את הטקסט בשורה הבאה.
"OK" - כפתור מס' 1.
"Cancel" - כפתור מס' 2.
תוצאה סופית:

דיאלוג טקסט עם מקום להכנסת טקסט:
הפונקציה:
PHP Code:
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Write Something","Write Here Something:","Enter","Cancel");
הסבר על תוכן הפונקציה:
playerid - איידי השחקן אליו נשלח את הדיאלוג.
2 - איידי הדיאלוג.
DIALOG_STYLE_INPUT - סגנון הדיאלוג, במקרה שלנו - תיבה עם מקום לכתיבת טקסט.
"Write Something" - כותרת הדיאלוג.
":Write Here Something" - הטקסט שיופיע לשחקן.
"Enter" - כפתור מס' 1.
"Cancel" - כפתור מס' 2.
תוצאה סופית:

דיאלוג עם בחירת אפשרויות:
הפונקציה:
PHP Code:
new listitems[] = "1\tDeagle\n2\tSawnoff\n3\tPistol\n4\tGrenade\n5\tParachute\n6\tLorikeet";
ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"List of weapons:",listitems,"Select","Cancel")
השתמשתי בהגדרה כדי ליצור רשימת פריטים. תוכלו לראות שההגדרה מתבססת על השיטה של הטקסט המפורט.
הסבר על תוכן הפונקציה:
playerid - איידי השחקן אליו נשלח את הדיאלוג.
3 - איידי הדיאלוג.
DIALOG_STYLE_LIST - סגנון הדיאלוג, במקרה שלנו -רשימה.
":List of weapons" - כותרת הדיאלוג.
listitems - המשתנה של רשימת הפריטים. את הרשימה הגדרנו כמו שראיתם.
"Select" - כפתור מס' 1.
"Cancel" - כפתור מס' 2.
תוצאה סופית:

שליטה בדיאלוג:
כדי לשלוט בדיאלוג במקום סתם לעשות שהוא יופיע, צוות Sa-Mp יצר לנו את הפאבליק:
PHP Code:
[COLOR=#007700]{[php]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
[/COLOR]
return 1;
} [/php]
כיצד משתמשים בפאבליק?
קודם כל, נבדוק מהו איידי הדיאלוג. נגיד שאני רוצה לבחור בדיאלוג מס' 2. אני בודק אם איידי הדיאלוג הוא אכן 2:
PHP Code:
if(dialogid == 2){
עכשיו נגדיר מה יקרה אם השחקן לחץ על כפתור האישור:
עכשיו אני רוצה לשלוח לשחקן את ההודעה שהוא כתב. נשתמש בפורמט:
PHP Code:
[COLOR=#007700]format(message, 256, "You replied: %s", inputtext); [php]new message[256+1];
[/COLOR]
[/php]
נגיד שכתבתי Hi, אז הגדרתי שההודעה תהיה You Replied: Hi. המשתנה inputtext הוא הטקסט שהכנסתי בתיבה.
עכשיו, בואו נחליט שנשלח אותו בהודעה לשחקן.
PHP Code:
SendClientMessage(playerid, 0xFFFFFFFF, message);
ועכשיו, בואו נחליט מה יקרה אם השחקן לא יגיב. כמו רוב המקרים שבהם משתמשים ב - if, נשתמש ב - else:
אם השחקן לחץ על כפתור הביטול, אני רוצה לשלוח לו הודעה שהוא בחר בכפתור הביטול:
PHP Code:
SendClientMessage(playerid, 0xFFFFFFFF, "You selected Cancel");
וכעת, הנה הקוד השלם:
PHP Code:
[COLOR=#007700]if(response){[php]if(dialogid == 2){
[/COLOR]
new message[256+1];
format(message, 256, "You replied: %s", inputtext);
SendClientMessage(playerid, 0xFFFFFFFF, message);
} else {
SendClientMessage(playerid, 0xFFFFFFFF, "You selected Cancel");}} [/php]
את כל הקוד הזה כמובן שמים בפאבליק OnDialogResponse.
במקרה שהדיאלוג הוא דיאלוג עם אפשרויות בחירה, נשתמש בזה:
PHP Code:
if(listitem == 0){
עכשיו בדקנו האם בחרו את הפריט הראשון ברשימה. אתם יכולים לעשות את זה עם כל פריט שתבחרו.
תהנו!,כל שאר המדריכים הבאים יהיו שלי.. שלא תחשבו שאני לוקח הכל