מדריך|יצירת הודעת כניסה ועזיבה . - משחקים Vgames - קהילות
 


נושא: מדריך|יצירת הודעת כניסה ועזיבה .
1
משתמשים פעילים הצופים בנושא זה: 1 (0 משתמשים רשומים ו- 1 אורחים)
 
מחבר הודעה

האווטר המגניב של The.Devils.Rejects

Most Wanted

הודעות: 2,824

חבר בקהילת: -

מנותק

מנותק

#1   פורסם: 23.04, 08:35

ברירת מחדל מדריך|יצירת הודעת כניסה ועזיבה .


-המדריך נכתב במקור ע"י SA-MP ותוגרם ע"י Milne.-

עריכה:ראיתי שעמית הכין מדריך דומה על הודעת כניסה והודעת יציאה,אממ לא שמתי לב לזה,אוקיי אני מאמין שלא יזיק עוד מדריך.

אוקיי,כמו שאתם יודעים בגרסאות האחרונות של SAMP הם השמיטו את ההודעות האלה,לכן המדריך הבא בא בשביל לעזור לכם להחזירם.
יצירת הודעת כניסה :


public OnPlayerConnect(playerid
[left]{
    new 
pName[MAX_PLAYER_NAME];
    new 
string[48];
    
GetPlayerName(playeridpNamesizeof(pName));
    
format(stringsizeof(string), "%s has joined the server."pName);
    
SendClientMessageToAll(0xAAAAAAAAstring);
    return 
1;
}
[/
left
ההודעה למעלה תראה הודעת הצטרפות בצ'אט,זה ממוקם ב OnPlayerConnect callback שמזהה כל פעם ששחקן מתחבר.


זה אומר שכאשר הקוד הזה יהיה מבוצע זה כאשר שחקן נכנס לסרבר.

תחילה,ערך pName חדש יהיה עם גודל של MAX_PLAYER_NAME (מוגדר בתור 24 בa_samp.inc)

לאחר מכן אנו נאכסן את שמות השחקנים בערך הזה.


לאחר מכן אנו מגדירים ערך חדש בשם string בערך הזה אנו נשמור את הודעת ההצטרפות,המידה היא 48 pName, 24 chars) וההודעה עצמה -
(" has joined the server.", 23 chars)
ויחידת מידע NUL בלתי נראת על מנת לגמור את ההתאמה של הstring לערך שלנו.

כעת,GetPlayerName
קודם כל,על מנת למצוא את שם השחקן-
public OnPlayerConnect(playerid


[left]{
    
//Get the name of the new player and inform the other players
    //about a new player
 
    
new name[MAX_PLAYER_NAME];
    
string[48];
    
GetPlayerName(playeridnamesizeof(name));
    
format(stringsizeof(string), "%s has joined the server."name );
    
SendClientMessageToAll(0xFFFF00AAstring);
 
    return 
1;
}[/
left

playerid-האידי של השחקן שאת שמו אתם רוצים לדעת.

const name[]-המשתנה לשמירת השם .
len- מספר התאים למשתנה שהוקצב.

מציאות שם של שחקן נקראה להשיג את שמו,זה יהיה מאוכסן בתוך הערך pName.(הפרמטר השני)
עם אורך מקסימלי של sizeof(pName) הממדים של pName (שהיה 24)

לאחר שאנחנו יודעים את שם השחקן עכשיו,אנחנו יכולים להסדיר ולערוך את הודעת הכניסה.
הפרמטר הראשון מאפשר לנו לפרט איפה אנחנו רוצים למקם את ה"מחרוזת" המפורמטת.
יצרנו את הערך של המחרוזת למטרה זו קודם לכן.
הפרמטר השני הוא האורך המקסימלי של המחרוזת המפורמטת.
זה בעצם יהיה המימדים של string.
ההפרמטר השלישי היא המחרוזת הממשית אותה אנחנו רוצים לפרמט.
%s הוא "שומר מקום" למחרוזת נוספת.בשימוש בפרמט הרביעי אנחנו מציינים שזה אמור להתחלף עם pName לכן יהיה לנו
"<player's name> has joined the server." במחרוזת של הערך.

יצירת הודעת עזיבה:
ונוסיף אם הם קיבלו קיק,קראש או יצאו לבד.

public OnPlayerDisconnect(playeridreason


[left]{
    new 
pName[MAX_PLAYER_NAME];
    new 
string[56];
    
GetPlayerName(playeridpNamesizeof(pName));
 
    switch(
reason)
    {
        case 
0format(stringsizeof(string), "%s has left the server. (Timeout)"pName);
        case 
1format(stringsizeof(string), "%s has left the server. (Leaving)"pName);
        case 
2format(stringsizeof(string), "%s has left the server. (Kicked)"pName);
    }
 
    
SendClientMessageToAll(0xAAAAAAAAstring);
    return 
1;
}[/
left



הקוד הוא די דומה לקוד ההצטרפות.



דוגמא ליצירת טקסט עם הסיבה של יציאת השחקן-
public OnPlayerDisconnect(playeridreason


[left] {
     new
         
string[64],
         
playernameMAX_PLAYER_NAME ],
         
reasontext[10];
     if(
reason == 1reasontext "Leaving";
     else if(
reason == 2reasontext "Kicked/Banned";
     else 
reasontext "Timed out";
     
GetPlayerName(playeridplayernamesizeof(playername));
     
format(stringsizeof(string), "** %s left the server (%s)"playernamereasontext);
     
SendClientMessageToAll(0xFFFFFFFFstring);
     return 
1;
 }
[/
left

playerid-האידי של המשתמש שעזב.


reason-האידי של הסיבה מדוע הוא עזב.


סיבות:

0-קראש (Timed out)

1-יציאה רגילה (q/ או פשוט דרך התפריט)


2.קיבל קיק או באן.


הפונקציה הזאת מופעלת בכל פעם כשמתמש עוזב בצורה כלשהי.

הצהרת המפנה מאפשרת לנו ליצור הודעה אחרת ביחס לסיבה.

(קראש,קיק/באן,התנתקות)


שימו לב שהערך המחרוזת קיים עם גודל של 56 תאים כרגע,על מנת להעניק לו את הגודל המרבי בהודעה (24 + 31 + 1)

במקרה הזה,הדעת הTimed Out היא הארוכה ביותר.

עד כאן,בהצלחה.






נערך לאחרונה על ידי The.Devils.Rejects, 23.04 בשעה 10:12.


D: חזרתי


חזרה לראש העמוד

האווטר המגניב של gigamer

אחראי קהילת TM

הודעות: 11,101

חבר בקהילת: -

מנותק

מנותק

#2   פורסם: 23.04, 10:15

תודה, אחלה של מדריך..

ואם אני רוצה לעשות ש - XXX has joined the server [ID:]


מנהל קהילת TM וצוות Extreme RP.




חזרה לראש העמוד

האווטר המגניב של $TrOy$

נינג'ה בלגי

הודעות: 1,074

חבר בקהילת: -

מנותק

מנותק

#3   פורסם: 23.04, 12:16

גיגמר אתה פשוט מוסיף עוד משתנה לפורמט:
format(stringsizeof(string), "%s has joined the server (ID:%d."pName,playerid); 
תהנה
נ.ב אחלה מדריך אחי




חזרה לראש העמוד

האווטר המגניב של Amit_B

 מתכנת שרת DeathMatch

הודעות: 2,575

חבר בקהילת: -

מנותק

מנותק

#4   פורסם: 23.04, 13:42

גם את המדריך הזה אני אוסיף כמדריך שני ללינקייה.
שים לב לפני שאתה כותב מדריך, שאין עוד כזה.


gmR Amit


חזרה לראש העמוד
1

 

 
משחקי מחשב, פלייסטיישן 1-2-3, נינטנדו ואקסבוקס קונים במונסטר
 

 

הגדרות נושא
אפשרויות הצגת נושא