תוכן עיניינים -
-מה זה PWN?
-אז, איך אני כותב PWN בכלל?
-איפה אני יכול ללמוד PWN?
-איך אני עורך מוד קיים?
-זהו זה, כתבתי סקריפט. מה עכשיו?
-פונקציות בסיסיות
-שאלות ותשובות
-סיכום
מה זה PWN?
PWN, או PAWNO היא שפה לתכנות ובניית מודים לSA:MP.
כל מוד שראיתם בכל שרת מתוכנת בPWN
אז, איך אני כותב PWN בכלל?
נורא פשוט, אבל אני אכתוב את זה בשלבים כדי שזה יהיה ברור.
שלב א': יש להוריד את הערכה להקמת שרת בSA:MP מהלינק הזה:
http://www.sa-mp.com/files/samp-serv....1r2-win32.zip
שלב ב': יש לחלץ את התיקיה מהZIP ולהיכנס אליה
שלב ג': לך אל התיקיה PAWNO ומשם כנס אל התוכנה עצמה. (pawno.exe)
שלב ד': לחץ על האייקון של דף הנייר בצד שמאל של התוכנה
שלב ה': סיום.
איפה אני יכול ללמוד PWN?
יש שלושה מקורות עיקריים,
http://stephantom2.st.funpic.de/expe...samp-inc.html- הסבר על a_samp.inc (בקיצור, פונקציות בPWN) מפי Y_Less האדיב.
http://wiki.sa-mp.com/wiki/Main_Page - וויקיסאמפ, הוויקיפדיה של SA:MP.
וכמובן, forum.sa-mp.com - הפורום של SA:MP (משם תלכו אל פורום scripting, יש שם כמה נושאים די חשובים)
חוץ מזה, אני אכתוב הסבר על כמה פונקציות בסיסיות.
איך אני עורך מוד קיים?
בSA:MP יש כמה מודים מוכנים.
לכו אל הערכה להקמת שרת ומשם אל התיקיה GameModes. יש שם כמה מודים שצוותSA:MP הכינו ותוכלו לערוך אותם ע''י כניסה אל הקובץ pwn שלהם.
זהו זה, כתבתי סקריפט. מה עכשיו?
אחרי שכתבת את הסקריפט שלך, צריך לקמפל אותו כדי שהשרת יוכל לקרוא אותו.
בלי להסתבך הרבה עם דברים טכניים, קובץ העריכה הוא .pwn והקובץ שיושב בשרת הוא .amx .
בכדי ליצור קובץ pwn, יש ללחוץ על האייקון של הדיסקט בצד שמאל של המסך,לבחור מיקום וללחוץ על save. ובכדי ליצור קובץ amx, יש ללחוץ על המשולשהכחול שבצד שמאל של המסך, ולעשות את אותו הדבר.
פונקציות בסיסיות
בטח שמתם לב שPWN מורכב מפונקציות. אז הינה הסבר על כמה פונקציות בסיסיות:
פונקציה: GivePlayerMoney
תיאור: נותנת לשחקן כסף.
דוגמה:
GivePlayerMoney(playerid,1);
יתן למשתמש 1$
פונקציה: GetPlayerMoney
תיאור: בודקת כמה כסף יש לשחקן.
דוגמה:
if (GetPlayerMoney(playerid)==0)
SetPlayerHealth(playerid,1);
}
הורגת שחקן עם 0$
פונקציה: SetPlayerHealth
תיאור: קובעת את החיים של השחקן.
דוגמה:
SetPlayerHealth(playerid,100);
תחזיר לשחקן 100 חיים.
*ניתן גם להרוג שחקן, ע''י כך ששמים לו 0 חיים. (או פחות, למעןהאמת)
פונקציה: GetPlayerHealth
תיאור: בודקת כמה חיים יש לשחקן.
דוגמה:
if (GetPlayerHealth(playerid)==1) {
SetPlayerHealth(playerid,100);
}
במידה ולשחקן יש 1חיים, הפונקציה תחזיר לו את מד החיים ל100.
פונקציה: Kick
תיאור: מעיפה שחקן.
דוגמה:
if (GetPlayerMoney(playerid)>100000000) {
Kick(playerid);
}
בודקת אם יש לשחקן יותר ממליון דולר. במידה וכן, מעיפה אותו ובמידה ולא משאירה אותו.
פונקציה: Ban
תיאור: נותנת לשחקן באן.
דוגמה:
if (GetPlayerMoney(playerid)>100000000) {
Ban(playerid);
}
בודקת אם יש לשחקן יותר ממליון דולר. במידה וכן, נותנת לו באן ובמידה ולא משאירה אותו.
פונקציה: SendClientMessageToAll
תיאור: שולחת הודעה שמוצגת לכל השחקנים. (בצ'אט)
דוגמה:
if (GetPlayerMoney(playerid)>100000000) {
SendClientMessageToAll(0xAA3333AA, "מישהו כאן עשיר :{");
}
במידה ולשחקן יש יותר ממליון, הפונקציה תכתוב הודעה לכולם "מישהו עשיר כאן!" (בע.)
פונקציה: SendClientMessage
תיאור: שולחת הודעה שמוצגת רק לשחקן.
דוגמה:
SendClientMessage(playerid,color,"bla");
בדיוק כמו הפונקציה הקודמת רק שצריך להוסיף playerid בהתחלה.
פונקציה: GameTextForAll
תיאור: כותבת בגדול על המסך
דוגמה:
GameTextForPlayer( "lololololo", 1000, 3);
יכתוב בגדול "lololololo".
פונקציה: GameTextForPlayer
תיאור: כותבת על המסך אך מציגה רק לשחקן אחד.
דוגמה:
GameTextForPlayer(playerid, "lololololo", 1000, 3);
וול פ:
טוב, זהו בנתיים פ:
מומלץ לבדוק את הפונקציות בצד. הם די ברורות.
שאלות ותשובות
אוקי, כמה שאלות ותשובות. אם יש לכם שאלות, תשאלו ואני אוסיף אותם לכאן עם תשובה :}
(BTW, מן הסתם ש' == שאלה ות' == תשובה פ
ש': אישתי בגדה בי, מה לעשות?
ת': SetPlayerHealth(playerid,0);
ש': איך אני כותב את שם השחקן?
ת': נסו להבין את הקוד הבא:
new name[MAX_PLAYER_NAME+1];
new string[256];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "*** %s died.", name);
SendClientMessageToAll(COLOR_RED, string);
הקוד יפלוט "*** bluz dead."
ש': ראיתי שיש אפשרות לצבעים בGameTextForAll/ForPlayer, איך?
ת': זה פשוט:
~w~ - לבן.
~r~ - אדום.
~g~ - ירוק.
~b~ - כחול.
~y~ - צהוב.
~p~ - ורוד.
~n~ - ירידת שורה.
השימוש בהם נעשה כך:
GameTextForPlayer(playerid, "~r~lololololo", 1000, 3);
ש': יש אפשרות לסטיילים אחרים בGameTextForAll, איך?
ת': פשוט מאוד משנים את ה3 לאחד מהמספרים הבאים:
- 1

Notes:Fades out automatically after 6 secs. If you have a time setting longerthan that, it will re-appear after fading out and repeat until the timeends. - 2

Notes: Doesn't disappear. - 3

- 4

- 5

Notes: Displays for 3 seconds, regardless of what time you set.
- 6

*לקוח מהפורום של SA:MP.
אין לי כרגע רעיונות לעוד, אשמח לרעיונות (:
סיכום
זהו ידידיי, הגענו לסוף הדיון. מקווה שהשכלתם קצת, כי לקח לי שעהומשהו לכתוב את זה. פ:
אז זהו, שאלות אפשר לשאול כאן ותשובות אפשר לקבל כאן.
יום טוב. פ:
קרדיט לMr.Bluz