חלק א:
כמו שרובכם יודעים - IsPlayerInArea אינה פונקצייה מובנת בסאמפ!
זאת אומרת שיוצרי סאמפ לא בנו את הפונקצייה הזאת על הסאמפ - ולכן אנו צריכים להגדיר את הפונקצייה ו"להסביר" ל Pawno מה הפונקצייה אומרת:
יש שתי דרכים לעשות את זה (תבחרו אחת - אסור את שניהם!):
1.להגדיר את הפונקצייה במוד:
שימו הכי למטה במוד שלכם את השורות הבאות:
קוד PHP:
stock IsPlayerInArea(playerid,Float:min_x,Float:min_y,Float:max_x,Float:max_y)
{
new Float: p[3];
GetPlayerPos(playerid,p[0],p[1],p[2]);
return p[0] >= min_x && p[0] <= max_x && p[1] >= min_y && p[1] <= max_y? 1:0;
}
זהו stock לפונקצייה - מה ש"מסביר" לסאמפ מה אומרת הפונקצייה כדי שלא יעשה לכם ארורים כמו:
קוד PHP:
undifined symbol "IsPlayerInArea"
2.להגדיר את הפונקצייה באינקלוד a_samp (מומלץ):
אותו דבר - שימו הכי למטה באינקלוד a_samp את הקוד:
יאלה, סיימנו להגדיר את הפונקצייה!
חלק ב:
בחלק ב אני יסביר איך מישתמשים בפונקצייה:
אז ככה,
לכו לאזור שאתם רוצים לסמן ותעשו ככה:
אתם עושים את הפקודה Save/ בפינה אחת של האזור:
ואחרי זה בפינה השנייה אבל הנגדית! (חובה נגדית) ככה:
עכשיו לכו לקובץ savedpositions ויהיה לכם את שני המיקומים ששמרתם:
קוד PHP:
AddPlayerClass(254,396.8899,1766.9010,21.4998,51.6847,0,0,0,0,0,0);
[LEFT]AddPlayerClass(254,78.5293,2109.8271,17.8116,267.9536,0,0,0,0,0,0[/LEFT]
[LEFT]); [/LEFT]
אתם צריכים לקחת את המספרים X ו Y (המספר השני והשלישי):
AddPlayerClass(254,78.5293,2109.8271,17.8116,267.9536,0,0,0,0,0,0);
קחו את שני המספרים שסימנתי^
אתם צריכים לקחת את שני המספרים משני הקודים*
עכשיו יש לכם את המספרים האלה:
396.8899,1766.9010
78.5293,2109.8271
אדום זה X
ורוד זה Y
עכשיו אתם צריכים לחבר את המספרים לככה:
min_x,max_y,max_x,min_y
למי שלא מבין את זה^:
אתם לוקחים את ה X הקטן משני האיקסים שיש לנו:
יש לנו את ה X הזה: 78.5293
ואת ה X הזה: 396.8899
אנחנו צריכים לקחת קודם את האיקס הקטן מבין שניהם (min_x):
78.5293
עכשיו אנחנו צריכים את ה Y הכי גדול:
יש לנו את ה Y הזה: 1766.9010
ואת ה Y הזה: 2109.8271
ניקח את ההכי גדול (max_y):
2109.8271
ונחבר אותו לרצף המספרים min_x,max_y,max_x,min_y:
78.5293,2109.8271
השלב הבא ברצף המספרים אומר max_x אז ניקח את ה X הגדול מבין שניהם:
יש לנו את ה X הזה: 78.5293
ואת ה X הזה: 396.8899
ניקח את ההכי גדול (max_y):
396.8899
ונחבר אותו לרצף המספרים min_x,max_y,max_x,min_y:
78.5293,2109.8271,396.8899
השלב הבא ברצף המספרים אומר min_y:
יש לנו את ה Y הזה: 1766.9010
ואת ה Y הזה: 2109.8271
ניקח את ההכי קטן (min_y):
1766.9010
ונחבר אותו לרצף המספרים min_x,max_y,max_x,min_y:
78.5293,2109.8271,396.8899,1766.9010
ויצא לנו את רצף המספרים:
78.5293,2109.8271,396.8899,1766.9010
זה בעצם אומר את האזור שלנו (זה מסמן לנו את האזור).
עכשיו אני יתן לכם דוגמא לשימוש בקוד הזה:
סתם משהו שיש לי במוד:
קוד PHP:
if(IsPlayerInArea(playerid,1084.6677, -2080.3093, 1210.2527, -1993.6479))//min_x,max_y,max_x,min_y
[LEFT]{
if(!IsPlayerXAdmin(playerid))return SendClientMessage(playerid,COLOR_WHITE,"!àéðê àãîéï, æäå àæåø àãîéðéí"),SetPlayerHealth(playerid,0.0[/LEFT]
[LEFT]); [/LEFT]
}
השורה הראשונה בודקת אם השחקן באזור שלקחתם (min_x,max_y,max_x,min_y)
השורה השלישית בודקת אם השחקן אדמין, ואם הוא לא אז הוא יהרג.
תהנו
קרדיט לאתר אחר.