SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Archive

 
 
Thread Tools Display Modes
Old 25/03/2012, 01:27 PM   #121
Toreno
Gangsta
 
Join Date: Nov 2010
Posts: 846
Reputation: 41
Default Re: פקודות ופונקציות יעילות.

עריכה:
זה חוזר למשתנה אבל זה לא ממש משנה כי זה עדין אותו מהירות...

Last edited by Toreno; 06/08/2012 at 03:12 PM.
Toreno is offline  
Old 30/06/2012, 09:28 PM   #122
Toreno
Gangsta
 
Join Date: Nov 2010
Posts: 846
Reputation: 41
Default Re: פקודות ופונקציות יעילות.

משהו שחשבתי עליו מהשעמום, מאוד פשוט.
pawn Code:
stock SetPlayerPosEx(playerid, Float:x, Float:y, Float:z)
{
    if((IsPlayerInAnyVehicle(playerid)) ? SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z) : SetPlayerPos(playerid, x, y, z)) {}
}
Toreno is offline  
Old 15/07/2012, 08:43 PM   #123
Toreno
Gangsta
 
Join Date: Nov 2010
Posts: 846
Reputation: 41
Default Re: פקודות ופונקציות יעילות.

לכל מי שעדין מעוניין בתיקון הג'יבריש, אז הפונקציה נמצאת פה, חפשו:
fwrite_uft8_hebrew
לפעם הבאה שתנסו לחפש ולא תמצאו איפה
pawn Code:
stock fwrite_utf8(File:handle, str[], bool:use_utf8)
{
    new x=0;
    if(!handle) return 0;
    while(str[x] != EOS)
    {
        fputchar(handle, str[x], use_utf8);
        x++;
    }
    return x;
}
Toreno is offline  
Old 16/07/2012, 05:30 PM   #124
_EviLTRicK_
Little Clucker
 
_EviLTRicK_'s Avatar
 
Join Date: Jul 2012
Location: Israel
Posts: 16
Reputation: 0
Default Re: פקודות ופונקציות יעילות

פונקציה שלוקחת את היום + השעה ז"א אתם בוחרים את השימוש שלכם איתה


PHP Code:
stock GetDatimeEx(bool:Type)
{
    new 
a[3];
    if(
Type)gettime(a[0],a[1],a[2]),format(String,25,"%d:%d:%d",a[0],a[1],a[2]);
    else 
getdate(a[0],a[1],a[2]),format(String,25,"%d/%d/%d",a[2],a[1],a[0]);
    return 
String;


:למעלה במוד אתם צריכים להגדיר את זה


PHP Code:
#define GetDateEx() GetDatimeEx(false)
#define GetTimeEx() GetDatimeEx(true) 

:צורת השימוש עם הפונקציה


PHP Code:
printf("Date %s"GetDateEx());
printf("Time %s"GetTimeEx()); 
נבנה בפורום ככה שאם יש בעיה צטטו אותי
_EviLTRicK_ is offline  
Old 16/07/2012, 07:01 PM   #125
Amit_B
Gangsta
 
Amit_B's Avatar
 
Join Date: Nov 2007
Location: Israel
Posts: 681
Reputation: 53
Default Re: פקודות ופונקציות יעילות

EvilTrick
אתה מתקדם מהר מדי. אני משער שיש לך מקסימום שנה (אם לא מקסימום חצי שנה) בתכנות פאון.
לפי הקוד אתה מנסה לבנות כל מיני דברים מתקדמים ולהראות רמה תוך כדי שהתכנות שלך (שאגב, במקרה הזה, יביא ארורים על סטרינג שלא הוגדר)
אני מציע שקודם כל תלמד לתכנת את הבסיס במשך 3 חודשים מינימום ואז תלמד באמת תכנות מתקדם ותדע להשתמש בו, כי כרגע, הקוד נראה כקוד שבסך הכל מנסה להרשים אנשים
__________________
- Leading the Israeli SA-MP Community, SA-MP.co.il - SAMP-IL
- Currently working on the first anime project on SA-MP, Naruto Shippuden gamemode: Screenshots #1, Screenshots #2
Amit_B is offline  
Old 16/07/2012, 07:16 PM   #126
_EviLTRicK_
Little Clucker
 
_EviLTRicK_'s Avatar
 
Join Date: Jul 2012
Location: Israel
Posts: 16
Reputation: 0
Default Re: פקודות ופונקציות יעילות

Quote:
Originally Posted by Amit_B View Post
EvilTrick
אתה מתקדם מהר מדי. אני משער שיש לך מקסימום שנה (אם לא מקסימום חצי שנה) בתכנות פאון.
לפי הקוד אתה מנסה לבנות כל מיני דברים מתקדמים ולהראות רמה תוך כדי שהתכנות שלך (שאגב, במקרה הזה, יביא ארורים על סטרינג שלא הוגדר)
אני מציע שקודם כל תלמד לתכנת את הבסיס במשך 3 חודשים מינימום ואז תלמד באמת תכנות מתקדם ותדע להשתמש בו, כי כרגע, הקוד נראה כקוד שבסך הכל מנסה להרשים אנשים

יש לי חצי שנה כן
אתה צודק אני צריך לדעת בסיס כמו למשל פונקציות קשות יותר ודברים של מתקדמים
תכנות בסיסי ? איפה אני יכול למצוא חיכיתי לקורס שלך והוא הופסק מהסיבות פרישה שלך
אם יש לך איזה עזר או טיפים אשמח מאוד אתה לא מבין איך זה חשוב לי אני באמת מרגיש שאני לא מתקדם

תיקון תגדירו במשתנים למי שאין

PHP Code:
new String[256]; 
_EviLTRicK_ is offline  
Old 17/07/2012, 06:30 AM   #127
EviLpRo
Big Clucker
 
Join Date: Jun 2011
Posts: 142
Reputation: -12
Default Re: פקודות ופונקציות יעילות

DaysBetweenDates, בניה שלי.
רק טיפה יותר מהירה, יעילה, והבעיה של השנים המעוברות לא קיימת כאן.

PHP Code:
stock DaysBetweenDates(startDay,startMonth,startYear,endDay,endMonth,endYear)
{
    new 
Days,str[2][15],monthDays[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
    
format(str[0],15,"%i/%i/%i",startDay,startMonth,startYear);
    
format(str[1],15,"%i/%i/%i",endDay,endMonth,endYear);
    while(
strcmp(str[0],str[1],false))
    {
        
Days++;
        
endDay--;
        if(
endDay == 0)
        {
            
endMonth--;
            if(
endMonth == 0)
            {
                
endYear--;
                
endMonth 12;
            }
            if(
endMonth == 2endDay = ((endYear == 0) && (endYear 100 != 0)) || (endYear 400 == 0)?29:28;
            else 
endDay monthDays[endMonth-1];
        }
        
format(str[1],15,"%i/%i/%i",endDay,endMonth,endYear);
    }
    return 
Days;

צורת שימוש בפונקציה:

PHP Code:
printf("days: %i",DaysBetweenDates(25,6,2012,26,6,2012)); 
זה יחזיר את מספר הימים שבין 25.6.2012, ל26.6.2012.
הפונקציה עצמה עובדת מעולה, אם מישהו מצא איזה בעיה שיצטט אותי.
EviLpRo is offline  
Old 03/08/2012, 04:48 PM   #128
Snir_sofer
Big Clucker
 
Join Date: Jul 2010
Posts: 59
Reputation: 1
Post Re: פקודות ופונקציות יעילות

Quote:
Originally Posted by EviLpRo View Post
DaysBetweenDates, בניה שלי.
רק טיפה יותר מהירה, יעילה, והבעיה של השנים המעוברות לא קיימת כאן.

PHP Code:
stock DaysBetweenDates(startDay,startMonth,startYear,endDay,endMonth,endYear)
{
    new 
Days,str[2][15],monthDays[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
    
format(str[0],15,"%i/%i/%i",startDay,startMonth,startYear);
    
format(str[1],15,"%i/%i/%i",endDay,endMonth,endYear);
    while(
strcmp(str[0],str[1],false))
    {
        
Days++;
        
endDay--;
        if(
endDay == 0)
        {
            
endMonth--;
            if(
endMonth == 0)
            {
                
endYear--;
                
endMonth 12;
            }
            if(
endMonth == 2endDay = ((endYear == 0) && (endYear 100 != 0)) || (endYear 400 == 0)?29:28;
            else 
endDay monthDays[endMonth-1];
        }
        
format(str[1],15,"%i/%i/%i",endDay,endMonth,endYear);
    }
    return 
Days;

צורת שימוש בפונקציה:

PHP Code:
printf("days: %i",DaysBetweenDates(25,6,2012,26,6,2012)); 
זה יחזיר את מספר הימים שבין 25.6.2012, ל26.6.2012.
הפונקציה עצמה עובדת מעולה, אם מישהו מצא איזה בעיה שיצטט אותי.
חרא של צורת בנייה, עדיף כבר ככה:
PHP Code:
stock GetDays(y,m,d)
{
    
= (9) % 12;
    
m/10;
    return 
365*y/y/100 y/400 + (m*306 5)/10 + ( );

וכדי להחזיר את מספר הימים אתה עושה
GetDays(......) - GetDays(......)
כמובן שצריך לציין פרמטרים, אבל אני עצלן


Quote:
Originally Posted by _EviLTRicK_ View Post
פונקציה שלוקחת את היום + השעה ז"א אתם בוחרים את השימוש שלכם איתה


PHP Code:
stock GetDatimeEx(bool:Type)
{
    new 
a[3];
    if(
Type)gettime(a[0],a[1],a[2]),format(String,25,"%d:%d:%d",a[0],a[1],a[2]);
    else 
getdate(a[0],a[1],a[2]),format(String,25,"%d/%d/%d",a[2],a[1],a[0]);
    return 
String;


:למעלה במוד אתם צריכים להגדיר את זה


PHP Code:
#define GetDateEx() GetDatimeEx(false)
#define GetTimeEx() GetDatimeEx(true) 

:צורת השימוש עם הפונקציה


PHP Code:
printf("Date %s"GetDateEx());
printf("Time %s"GetTimeEx()); 
נבנה בפורום ככה שאם יש בעיה צטטו אותי
עדיף ככה לעשות:
PHP Code:
stock GetDatimeEx(bool:type)
{
    new 
str[12], td[3];
    if(!
typegettime(td[0],td[1],td[2]); else getdate(td[2],td[1],td[0]);
    
format(strsizeof(str), !type? ("%02d:%02d:%02d") : ("%02d/%02d/%d"), td[0], td[1], td[2]);
    return 
str;

Snir_sofer is offline  
Old 04/08/2012, 03:29 AM   #129
xkirill
High-roller
 
xkirill's Avatar
 
Join Date: May 2011
Location: In a box infront of your house stealing your WiFi
Posts: 2,493
Reputation: 287
Default Re: פקודות ופונקציות יעילות.

Quote:
Originally Posted by Snir_sofer View Post
אתה טועה, מכיוון שציינת כאן sizeof
מה שקורה כאן בעצם זה חוזר למשתנה PlayerName
ואז זה בודק את הערך שלו..


כך ש...
עדיף כבר ככה:

pawn Code:
stock GetPlayerNameEx(playerid) {
    new PlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
    return PlayerName;
}
לא ממש,כשאתה עושה ערך של שם כלשהו,אתה מוסיף את הכמות מקסימום של האותיות שהערך יכול לשמור,
אחר כך אתה שומר בתוך הערך את השם ומוסיף כמות מקסימלית של השם,הכמות המקסימלית של שם אמורה להיות שווה לכמות האותיות ששמרת בתוך הערך ולא כמות המקסימלית הכללית של שם,זאת אומרת שאתה סתם שומר עוד כמה מרחווים ריקים בתוך הערך,ככה שרצוי יותר לשים sizeof(name) ולא MAX_PLAYER_NAME.
אפילו בוויקי של SAMP אתה יכול לראות שהם משתמשים ב sizeof(name) ולא ב MAX_PLAYER_NAME,
אך,עדיין יש שגיאה,אתה אמור להוסיף +1 מקום בתוך הערך.

ואני מעדיף את הפונקציה הזאת ככה -(כי זו דרך הרבה יותר קלה וקצרה מהפונקציות שהוצגו לפני כן)
pawn Code:
stock GetName(playerid)
{
    new name[MAX_PLAYER_NAME+1];
    return GetPlayerName(playerid, name, sizeof(name));
}
ובפורמט,אתה לא צריך את ה-0 וחסר נקודות בכמה מהם -
pawn Code:
stock GetDatimeEx(bool:type)
{
    new str[12], td[3];
    if(!type) gettime(td[0],td[1],td[2]); else getdate(td[2],td[1],td[0]);
    format(str, sizeof(str), !type? ("%.2d:%.2d:%.2d") : ("%.2d/%.2d/%d"), td[0], td[1], td[2]);
    return str;
}
וגם,לא הבנתי ממש למה צריך את זה. :S
כאילו,אפ'פעם לא ראיתי משהו שקורה את התאריך משמאל לימין. (יום,חודש,שנה)
__________________
KrustyGames.com
Project SAMP Fast & Furious - Coming soon
"by rating your skills, you're limiting yourself." - Kaperstone

Last edited by xkirill; 06/08/2012 at 07:52 AM.
xkirill is online now  
Old 04/08/2012, 05:27 AM   #130
[T]he3DeVi[L]`
Little Clucker
 
Join Date: Jun 2012
Location: Israel
Posts: 8
Reputation: 0
Default Re: פקודות ופונקציות יעילות

Quote:
Originally Posted by Snir_sofer View Post
חרא של צורת בנייה, עדיף כבר ככה:
PHP Code:
stock GetDays(y,m,d)
{
    
= (9) % 12;
    
m/10;
    return 
365*y/y/100 y/400 + (m*306 5)/10 + ( );

וכדי להחזיר את מספר הימים אתה עושה
GetDays(......) - GetDays(......)
כמובן שצריך לציין פרמטרים, אבל אני עצלן




עדיף ככה לעשות:
PHP Code:
stock GetDatimeEx(bool:type)
{
    new 
str[12], td[3];
    if(!
typegettime(td[0],td[1],td[2]); else getdate(td[2],td[1],td[0]);
    
format(strsizeof(str), !type? ("%02d:%02d:%02d") : ("%02d/%02d/%d"), td[0], td[1], td[2]);
    return 
str;

אממ, לגבי GetDays תן קרדיט לדוד/DeadlyBoy, לפי מה שראיתי אצלכם בפורום, הוא יצר את זה.
בנוגע לGetDatimeEx, גם שלך לא עדיף, אתה בעצם לא עשית משהו מיוחד, ואגב לא הבנתי "למה עדיף", הקוד של דן יותר מהיר, רק שלא הבנתי למה הוא היה צריך 25 תאים.
חזרת על התנאי פעמים שיכולת לעשות את זה בתנאי אחד, לא מבין מה השאיפה שלכם לנסות לעשות קוד ברמה "גבוהה" שמבחינת יעילות הוא שואף ל0, פשוט תפתח בניין במקום לעשות את ההתחכמות הזו ;S
-
@xkirill: הקוד שלך לא יעבוד.
וסתם פונקציה..
PHP Code:
#define stock2%1(%0) forward %1(%0); stock %1(%0)
stock2 boolIsPlayerRangeOfVehicle(playeridFloat:radiusvehicleid) {
new 
vp[3];
GetVehiclePos(vehicleidvp[0], vp[1], vp[2]);
return 
IsPlayerInRangeOfPoint(playeridradiusvp[0], vp[1], vp[2])? true false;

נבנה בפורום..
[T]he3DeVi[L]` is offline  
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
חוות דעת על פקודה שמציגה רשימת קלאנים Snir_sofer Archive 3 18/05/2012 08:46 AM
עזרה | תיקון 3 פקודות arad55 Archive 4 15/09/2011 08:49 PM
בקשה| אני צריך עזרה להפוך 2 פקודות לדיאלוג itayizra Archive 0 11/03/2010 09:47 PM
?חוץ מפאון - מישהו יודע שפות נוספות _Gangster_ Archive 14 13/11/2009 08:59 PM


All times are GMT. The time now is 09:09 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.