[מדריך]יצירת\הסבר MoveObject + דרכים נוספים. - משחקים Vgames - קהילות
 


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

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

מודל לחיקוי

הודעות: 2,539

חבר בקהילת: -

מנותק

מנותק

#1   פורסם: 22.10, 17:31

ברירת מחדל [מדריך]יצירת\הסבר MoveObject + דרכים נוספים.


המדריך יהיה על MoveOvject = הזזת אובייקטים.
תוכן:
חלק א' – הפונקציה והסבר על הפונקציה.
חלק ב' – הגדרת האובייקט הרצוי להזזה.
חלק ג' – יצירת הפקודה להזזת האובייקט.
חלק ד' מתקדמים – דרכים שונות ליצירת פקודה להזזרת אובייקט.



חלק א'
הפונקציה בה נשתמש:

MoveObject(objectidXYZSpeed); 
הסבר על הפונקציה:
Objected – האובייקט שאנחנו מגדירים.
X, Y, Z – הקודינציה שהאובייקט יזוז אליה.
Speed – מהירות הזזת האובייקט.



חלק ב'
הולכים למוד\פילטרסקריפט (איפה שהאובייקט הרצוי להזזה).
בוחרים את האובייקט שברצונכם להזיז. מגדירים אותו, על ידי הוספה לפני האובייקט שם כל שהוא. דוגמה:


זה האובייקט:

CreateObject(987, -1521.046021925.6793216.1875000.00000.0000270.0000); 


ברצוני להגדיר אותו כ – gate נגיד. אז אני יוסיף לו gate = אמור להיראות ככה:

[
gate CreateObject(987, -1521.046021925.6793216.1875000.00000.0000270.0000); 


הולכים למעלה במוד ומוסיפים new על השם של האובייקט שהגדרנו, דוגמה:

new gate


חלק ג'
אחרי שהגדרנו את האובייקט שאנחנו רוצים להזיז ניצור את הפקודה.

נלך לפאבליק הזה:


public OnPlayerCommandText(playeridcmdtext[])




נפתח בפקודה חדשה, נגיד הפקודה תיהיה og/. דוגמה:


if(strcmp(cmd"/og"true) == 0){
MoveObject(objectidXYZSpeed);
return 
1;



הסבר יצירת הפקודה:



ברגע שתעשה את הפקודה og/ הפקודה תזיז את האובייקט.



MoveObject – הפונקציה להזזת האובייקט.



Objected – מגדירים פה את השם שהגדרנו על האובייקט הרצוי.
X = צד א'
Y = צד ב'
Z = גובה
Speed – מהירות האובייקט שברצוננו להזיז.

דוגמה לפי האובייקט שבחרנו:

gate CreateObject(987, -1521.046021925.6793216.1875000.00000.0000270.0000); 
הפקודה תראה כך:

if(strcmp(cmd"/og"true) == 0){
MoveObject(gate, -1521.046021925.6793216.1875002.5);//X, Y, Z – הקורדינציה שברצונכם האובייקט יזוז אליו.
return 1;



אם ברצוני שהאובייקט יעלה למעלה ברגע שאני יעשה את הפקודה, בודקים את הקורדינציה של האובייקט שזז:
האובייקט:
gate CreateObject(987, -1521.046021925.6793216.1875000.00000.0000270.0000); 
הקורדינציה של האובייקט:
-1521.046021925.6793216.187500 
-1521.046021 = X = צד א'
925.679321 = Y = צד ב'
6.187500 = Z = גובה

אם אני רוצה שהאובייקט יעלה\ירד שאני יקליד את הפקודה אני מוסיף\מוריד ל Z .
הוספתי ל Z משהו כמו 6 יצא:
12.187500 = Z = גובה

-1521.046021925.67932112.187500 
עכשיו אני מכניס את הקורדינציה לפקודה.


if(strcmp(cmd"/og"true) == 0){
MoveObject(gate, -1521.046021925.67932112.1875002.5);
return 
1;} 

עכשיו ברגע שאני יקליד את הפקודה האובייקט יעלה.

עכשיו כדי שהאובייקט יחזור למקום יוצרים פקודה נוספת.
אותו הדבר רק הקורדינציה הרגילה של האובייקט.
זה הקורדינציה הרגילה:
-1521.046021925.6793216.187500 
פשוט יוצרים את הפקודה עם הקורדינציה הזאת. דוגמה:
**תיצרו פקודה שונה, אותה פקודה פעמיים עלולה ליגרום לפקודה אחרת לא לפעול.
if(strcmp(cmd"/cg"true) == 0){
MoveObject(gate, -1521.046021925.6793216.1875002.5);
return 
1;} 

ברגע שאני יקליד את הפקודה cg/ האובייקט ירד בחזרה למקום.

מקווה שהבנתם. בדרך הזאת כל פקודה לאובייקט בנפרד.


חלק ד' - מתקדמים
דרכים שונות\שימושיות\רציניות ליצירת MoveObject.

דרך מספר 1
כדי ליצור MoveObject שבפקודה מסויימת תוכלו להזיז אובייקט לפי רדיוס מסויים, שזה אומר כל אובייקט על פקודה אחת לפי איזה אובייקט אתה מתקרב לרדיוס שלו ומקליד את הפקודה.

הפונקציות בהן נשתמש:
IsPlayerInSphere(playeridxyzradius
MoveObject(objectidXYZSpeed); 
הסבר על הפונקצייה IsPlayerInSphere:
X,Y,Z - הקורדינציה בא תעמוד כדי שהשער יזוז.
radius - הרדיוס מהקורדינציה.

הסבר על הפונקצייה MoveObject :
MoveObject - הזזת אובייקט.
X,Y,Z - הקורדינציה בא תעמוד כדי שהשער יזוז.
Speed - מהירות הזזת האובייקט.

דבר ראשון את זה לשים בסוף המוד:
//==========================[IsPlayerInSphere]==================================
stock IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)
{
if(
GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){
return 
1;
}
return 
0;
}
//=====================[GetPlayerDistanceToPointEx]=============================
stock GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)
{
new 
Float:x1,Float:y1,Float:z1;
new 
Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z1);
tmpdis floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z1)),2));
return 
floatround(tmpdis);


הפקודה:

if(strcmp(cmd"/go"true) == 0)
{
 if(
IsPlayerInSphere(playeridXYZradius))//הקורדינציה + הרדיוס
 
{
  
MoveObject(objectidXYZSpeed); //האובייקט שאמור לזוז
 
}else{
 
SendClientMessage(playerid0x808000AA"!אין כאן שער שביכולתך להזיז");
 }
return 
1;

הסבר:

IsPlayerInSphere - אם תעמוד בקורדינציה + הרדיוס שמסומן ותעשה את הפקודה האובייקט יזוז אם לא תעמוד ברדיוס ובקורדינציה זה יביא הודעה "!אין כאן שער שביכולתך להזיז".
X,Y,Z = קורדינציה של האובייקט או איפה שאתה בוחר שאם תעמוד האובייקט יזוז.
Radius = תעשו משהו כמו 5 בין ל 10 אם זה גדר..

MoveObject = הפונקצייה שמזיזה את האובייקט.
objectid - השם שאנחנו מגדירים לאובייקט לרשום בזה.
X,Y,Z = קורדינציה שתרצה שלשם האובייקט יזוז.
X = צד א'
Y = צד ב'
Z = גובה
Speed - המהירות תזוזה של האובייקט.

נגיד זה האובייקט:
CreateObject(980, -1487.0069581015.8321538.9608920.00000.00000.0000); 
אני מגדיר לו נגיד Obj אז עושה לפני האובייק = Obj ככה:
Obj CreateObject(980, -1487.0069581015.8321538.9608920.00000.00000.0000); 
ואז מה שהגדרתי לאובייקט אני מגדיר לפונקצייה של הMoveObject ובפונקציה של הרדיוס אני שם את הקורדיניה של האובייקט והרדיוס 10. נראה בערך ככה..
if(strcmp(cmd"/go"true) == 0)
{
 if(
IsPlayerInSphere(playerid, -1487.0069581015.8321538.96089210))//הקורדינציה + הרדיוס
 
{
  
MoveObject(Obj, -1487.0069581015.8321532.9608922.5); //האובייקט שאמור לזוז
 
}else{
 
SendClientMessage(playerid0x808000AA"!אין כאן שער שביכולתך להזיז");
 } 

הורדתי מה - Z מ - 8 ל- 2 כדי שהאובייקט ירד.. עכשיו ניצור פקודה שתחזיר את האובייקט למקום.

אותו דבר בול רק שמים לו את הקורדינציה הרגילה של האובייקט.
if(strcmp(cmd"/gc"true) == 0)
{
 if(
IsPlayerInSphere(playerid, -1487.0069581015.8321538.96089210))//הקורדינציה + הרדיוס
 
{
  
MoveObject(Obj, -1487.0069581015.8321538.9608922.5); //האובייקט שאמור לזוז
 
}else{
 
SendClientMessage(playerid0x808000AA"!אין כאן שער שביכולתך להזיז");
return 
1;


החזרתי מ 2 ל 8 ב- Z. ועשיתי שהפקודה תיהיה gc/.


עכשיו אם רוצים להוסיף עוד אובייקט להזזה על אותו פקודה. מוסיפים else שזה נראה ככה.


if(strcmp(cmd"/go"true) == 0){
 if(
IsPlayerInSphere(playeridXYZradius))//הקורדינציה + הרדיוס
 
{
 
MoveObject(objectidXYZSpeed); //האובייקט שאמור לזוז
 
}
 else if(
IsPlayerInSphere(playeridXYZradius))//הקורדינציה + הרדיוס
 
{
 
MoveObject(objectidXYZSpeed); //האובייקט שאמור לזוז
 
}
 else{
 
SendClientMessage(playerid0x808000AA"!אין כאן שער שביכולתך להזיז");
 }
return 
1;} 

מקווה שהבנתם...
הייתי מביא עוד רעיון שחשבתי עליו עכשיו אבל אין לי כוח.. אני גמור מת!!.. אני יערוך ויוסיף שיהיה לי כוח חחח.. בהצלחה למתכנתים!!..

נערך לאחרונה על ידי Mr_fire, 28.10 בשעה 16:50.


עברתי את ה-2500!!
IDF - Israel Defense Force
Admin Vgames 3 Death Match
מדריכים שלי:
:My FilterScripts


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

משתמש עצבני

הודעות: 157

חבר בקהילת: -

מנותק

מנותק

#2   פורסם: 22.10, 17:43

תודה אבל אתה בונה קודיםםםםם ארווך מאוד.


This Is Me Roy_Kiiler

הלינקייה הפרטית שלי:
מדריך שיגורים לפי רמות\כניסה לרכבים\פקוודת
מדריך ליצור MoveObject המדריך המפורט!
מדריך נשקים תמדיים אחרי gmx (איפוס)


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

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

מודל לחיקוי

הודעות: 2,539

חבר בקהילת: -

מנותק

מנותק

#3   פורסם: 22.10, 17:46

roy_killer
ציטוט:
צפה בהודעה
תודה אבל אתה בונה קודיםםםםם ארווך מאוד.
חחח מצטער.. זה מראה כמה רציני המדריך לא?..


עברתי את ה-2500!!
IDF - Israel Defense Force
Admin Vgames 3 Death Match
מדריכים שלי:
:My FilterScripts


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

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

Doctor CS

הודעות: 2,210

חבר בקהילת: -

מנותק

מנותק

#4   פורסם: 22.10, 17:44

בכור תמשיך ככה כל הכבוד


RP Extream

NickName - Armando Merlino
Hobby - sports cars
Job - Owner of the DMV
Admin In RP Extram server





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

האווטר המגניב של Tiz[e]R

משתמש רציני

הודעות: 428

חבר בקהילת: -

מנותק

מנותק

#5   פורסם: 22.10, 17:55

יפהה בכור אחי !
יאלה IDF


_VmX TizEr_
Level VG1: Semi-Pro - Kill 13'000
Level VG3: 14 - Kill 10'000



דיון הקלאן VmX:
בבקשה תגיבו


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

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

 מנהל פורום IV

הודעות: 2,132

חבר בקהילת: -

מחובר

מחובר

#6   פורסם: 22.10, 21:11

Tiz[e]R למה דאבל??

ובכור ואיי איזה מדריך סוס מושקע רצח!!!!! רק במקום לעשות new gate
ואז gate = create.... אפשר לעשות ככה:
new gate = create object....
זה חוסך בשורה ומאמצים.... אבל בכל מקרה מדריך סוס רצחחחח בכור כל-הכבוד אתה אחד הסוסים!




שחקן בקלאן Men In Black
לשעבר OmeRinG למי שלא יודע...
מנהל קהילת GTA IV


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

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

  מנהל קהילת DeathMatch

הודעות: 7,514

חבר בקהילת: -

מחובר

מחובר

#7   פורסם: 23.10, 08:08

ידוע אבל תודה


בברכה, מידן,
מנהל קהילת VGames DeathMatch , הנהלת ערוץ GTA
צוות הנהלת קהילת גינדיס
יצירת קשר - Meidan@VGames.co.il



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

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

משתמש ותיק

הודעות: 5,136

חבר בקהילת: -

מנותק

מנותק

#8   פורסם: 23.10, 16:09

המדריך הכי לא מושקע,והכי קצר שראיתי!(סתם סתם,אל תילחצו).
איחס!
נכנס ללינקייה חחחחחחחחחחחחחחחחח


תמונה אחת שווה אלף מילים:


תעתיקו לחתימה שלכם!


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

משתמש צעיר

הודעות: 25

חבר בקהילת: -

מנותק

מנותק

#9   פורסם: 08.11, 18:44

מדריך טוב אחי=D








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

משתמש צעיר

הודעות: 25

חבר בקהילת: -

מנותק

מנותק

#10   פורסם: 08.11, 18:44

מדריך טוב=D








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

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

שואף לשלמות

הודעות: 3,487

חבר בקהילת: -

מנותק

מנותק

#11   פורסם: 08.11, 20:19

יפה!!


-FaDe_C-
שחקן -ב- VGames 5-3
מתכנת שרת : Stunts And Races
Cmpat Arms Player
Clan:VGisreiL


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

 

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

 

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