כמה דברים שכדאי לדעת!
במדריך זה נלמד כמה דברים שימושיים אשר יעזרו לנו לבנות דברים בלי להסתבך כל כך.
Vehicle Loop
רוצים לבנות רייס בקלות? בלי להיכנס לרכב לעשות /save לצאת ולעשות שוב, יש דרך ממש קלה! אפשר לבצע לופ שימו לב
דבר ראשון, כנסו תעשו save למכונית בצד אחד סייב אחד. קחו את הפונקציה של הרכ.
הנה: Loop Vehicle
PHP Code:
new Float:X_of_race = X;
for(VLoop = 0; VLoop <= 50; VLoop++)
{
AddStaticVehicle(modelid,X_of_race,y,z,angle,color1,color2);
X_of_race -= 7.0;
}
X_of_race = הx לא לגעת.
קוד:
new Float:X_of_race = X
שימו לב פה, איפה שאתם רואים = X שימו במקום הX את הקורדינציות של הX של הרכב ששמרתם.
GetPlayerID
רוצים לחפש שם של מישהוא בשרת? לא לפי איידי?
הנה: GetPlayerID.
PHP Code:
stock GetPlayerID(const Name[])
{
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(i, pName, sizeof(pName));
if(strcmp(Name, pName, true)==0)
{
return i;
}
}
}
return -1;
}
שימוש בפונקציה הזאתי:
PHP Code:
new Bla = GetPlayerID("Mr_Joe");
SendClientMessage(Bla,color,"hey");
SendMsgToAllEx
פונקציה זאתי שולח הודעה לכולם חוץ מהשחקן:
PHP Code:
stock SendMsgToAllEx(outofid, color, const message[])
{
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && i != outofid)) SendClientMessage(i, color, message);
}
return true;
}
outofid = השחקן שלא ייקבל את ההודעה (האייידי שלו כמובן)
SendMessageToAdmin
פונקציה זאתי שולחת הודעה לאדמינים, אין כל כך מה להסביר..
PHP Code:
stock SendMessageToAdmins(color, text[])
{
for(new i = 0; i < GetMaxPlayers(); i++) if(IsPlayerConnected(i) && IsPlayerAdmin(playerid))
SendClientMessage(i,color,text);
return true;
}
text = מה שיישלח לאדמינים.
color = הצבע של ההודעה.
GetDistanceBetweenPlayers
פונקציה זאתי לוקחת מרחק בין 2 שחקנים.
PHP Code:
[right]stock Float:GetDistanceBetweenPlayers(p1,p2)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
{
return -1.00;
}
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
[/right]
p1 = האיידי של השחקן הראשון.
p2 = השחקן של האיידי השני.
PlayerToPoint
פונקציה זאתי בודקת עם השחקן קרוב לנקודה כל שהיא:
PHP Code:
stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return true;
}
}
return false;
}
x,y,z = הקרודינציות שבודק אם השחקן קרוב לשם.
radi = המרחק מהנקודה בצעדים.
playerid = האיידי של השחקן.
memcpy
פונקציה זאתי בנויה בSAMP, באינקלוד dutils.
פונקציה זאתי מעתיקה משתנה לתוך משתנה, דוגמה לשימוש:
PHP Code:
static string_text[128] = "*********!@!";
if (!strcmp(string_text,text,true))
{
SendClientMessage(playerid,red,"!אתה לא יכול לשלוח אותה הודעה ברצף");
return false;
}
memcpy(string_text,text,0,sizeof(string_text));
PlayerName
פונקציה זאתי לוקחת את השם מהשחקן בקלות בלי ליצור משתנה
ואז להשמש בפונקציה:
PHP Code:
stock PlayerName(playerid)
{
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid,Name,sizeof(Name));
return Name;
}
אותו דבר רק עם IP:
PHP Code:
stock GetIPFromPlayer(playerid)
{
new IP[16];
GetPlayerIp(playerid,IP,sizeof(IP));
return IP;
}
זהו, אין לי כח לכתוב עוד פונקציות.
המדריך נכתב ע"י, תהנו .