אקראיות ב NPC
אז בואו נתחיל !
כשאנחנו עושים NPC אקראי אנחנו משתמשים בשני פקודות עיקריות , נתחיל עם הפקודה :
הפקודה הזאת בעצם תגריל לכם מספר בין 1 ל 0 .
המספרים שיכולים לצאת הם כל דבר בין 1 ל 0 , דוגמאות :
0.02134122412
או
0.212131231312
או
0.3686745753737
או
0.667723245893
וכדומה !
טוב נראה לי שהבנתם
עכשיו נעבור לפקודה הזאת :
מה שהיא עושה זה בעצם לעגל את המספר .
מה הכוונה ?
נגיד והמספר שיצא הוא :
המספר קרוב יותר ל 0 או ל 1 ?
ל 1 כמובן .
ולכן זה יעגל את זה ל 1 !
מובן ? יופי
עכשיו אם תרשמו רק ככה :
קוד PHP:
Math.floor(Math.random()));
זה תמיד יצא 0 .
ובגלל זה צריך להכפיל את זה במספר כלשהו .
איך מבצעים את ההכפלה ?
ככה :
קוד PHP:
Math.floor(Math.random()*2));
ההכפלה ב 2 בעצם גורמת שיהיה 2 אופציות שזה יכול לצאת .
והם 1 ו 0 .
אם תכפילו ב 3 :
קוד PHP:
Math.floor(Math.random()*3));
זה יגרום שיכול לצאת או 0 או 1 או 2.
מובן ?
אחרי שהבנו את החלק הזה .
נעבור לחלק הבא , שבו עושים את מה שלמדנו !
בתוך NPC כמובן :
קוד PHP:
function start() {
cm.sendYesNo("Hello Step, \r\n Do you want to recive a random item ?");
}
function action(mode, type, selection) {
if (mode != 1) {
cm.sendOk("Ok, Cya later !");
cm.dispose();
} else {
if (Math.floor(Math.random()*2) === 0) {
cm.gainItem(4001126, 1);
cm.sendOk("You have recived #v4001126#.");
cm.dispose();
} else {
cm.gainItem(4001129, 1);
cm.sendOk("You have recived #v4001129#.");
cm.dispose();
}
}
}
עכשיו בואו ננתח את מה שה NPC עושה .
כשתלחצו על ה NPC תופיע לכם ההודעה הבא :
קוד PHP:
cm.sendYesNo("Hello Step, \r\n Do you want to recive a random item ?");
הוא יגיד לכם שלום , וישאל אותכם אם אתם רוצים לקבל אייטם רנדומלי .
אם תלחצו no תופיע לכם השורה הזאת :
קוד PHP:
cm.sendOk("Ok, Cya later !");
אוקיי , להתראות מאוחר יותר .
לעומת זאת אם תלחצו yes , יתחיל התהליך הבא :
קוד PHP:
if (Math.floor(Math.random()*2) === 0) {
cm.gainItem(4001126, 1);
cm.sendOk("You have recived #v4001126#.");
cm.dispose();
} else {
cm.gainItem(4001129, 1);
cm.sendOk("You have recived #v4001129#.");
cm.dispose();
}
}
}
בוא ננתח אותו קצת
השורה :
קוד PHP:
if (Math.floor(Math.random()*2) === 0) {
בעצם עושה דבר כזה :
היא מגרילה 2 מספרים ( כי כפלנו ב 2 ) .
שהם 1 ו 0 .
אם יצא 0 יופיע הדבר הבא :
קוד PHP:
cm.gainItem(4001126, 1);
cm.sendOk("You have recived #v4001126#.");
cm.dispose();
תקבלו maple leaf אחד ותופיע לכם הודעה שקבלתם אותו .
אם יצא 1 יופיע הדבר הבא :
קוד PHP:
cm.gainItem(4001129, 1);
cm.sendOk("You have recived #v4001129#.");
cm.dispose();
תקבלו maple coin אחד ותופיע לכם הודעה שקבלתם אותו .
זה בעצם מגריל את הפרס שלכם !
עכשיו בואו נחשוב רגע .
נגיד ואנחנו רוצים לעשות הגרלה של המון דברים נגיד 30 ומעלה ...
זה ייקח המון זמן ויתפוס הרבה מקום אם נעשה בדרך הזאת .
לכן נשתמש ב Arrays :
קוד PHP:
var items = Array(4001126, 4001129);
var rand = Math.floor(Math.random()*2);
function start() {
cm.sendYesNo("Hello Step, \r\n Do you want to recive a random item ?");
}
function action(mode, type, selection) {
if (mode != 1) {
cm.sendOk("Ok, Cya later !");
cm.dispose();
} else {
cm.gainItem(items[rand], 1);
cm.sendOk("Enjoy your item!");
cm.dispose();
}
}
}
עכשיו בואו נסביר את זה :
קוד PHP:
var items = Array(4001126, 4001129);
שימוש ב Arrays .
ה ID של החפצים שתרשמו פה הם החפצים שיוגרלו !
על מנת להוסיף חפץ תוסיפו אחרי 1002430 את הדבר הבא :
כאשר ID = ה ID של החפץ שאתם רוצים .
חשוב לזכור :
כל פעם שאתם מוסיפים חפץ אתם צריכים להכפיל את זה באחד יותר !
עכשיו נמשיך , אם תלחצו no יופיע לכם ההודעה הבא :
קוד PHP:
cm.sendOk("Ok, Cya later !");
אוקיי , להתראות מאוחר יותר .
אבל אם תלחצו yes יופיע לכם :
קוד PHP:
cm.gainItem(items[rand], 1);
cm.sendOk("Enjoy your item!");
cm.dispose();
בוא ננתח את זה קצת !
השורה :
קוד PHP:
cm.gainItem(items[rand], 1);
מסמלת שתקבלו אייטם אחד מתוך האופציות ששמתם למעלה .
את השורות האחרות אתם אמורים כבר להבין .
קרדיט לאתר אחר !