23.07.2011, 20:50
(
Последний раз редактировалось Lyra; 23.07.2011 в 22:26.
)
Bom OBRIGADO Pela A Ajuda Rjjj
/*
* DUtils functions 1.10
* © Copyright 2006-2007 by DracoBlue
*
* @author : DracoBlue (http://dracoblue.com)
* @date : 8th April 2006
* @update : 12th July 2007
*
* This file is provided as is (no warranties).
*
*/
#if defined _dutils_included
#endinput
#endif
#define _dutils_included
#pragma library dutils
#define MAX_TEXTSTR 255
new PRIVATE_Last_Money[MAX_PLAYERS];
/*
* First version released by mike, this one created by DracoBlue
* Has also a fix to use "-" and "+" in the beginning of the number.
*/
stock isNumeric(const textstr[]) {
new length=strlen(textstr);
if (length==0) return false;
for (new i = 0; i < length; i++) {
if (
(textstr[i] > '9' || textstr[i] < '0' && textstr[i]!='-' && textstr[i]!='+') // Not a number,'+' or '-'
|| (textstr[i]=='-' && i!=0) // A '-' but not at first.
|| (textstr[i]=='+' && i!=0) // A '+' but not at first.
) return false;
}
if (length==1 && (textstr[0]=='-' || textstr[0]=='+')) return false;
return true;
}
/*
* Originally created by mabako, tuned by DracoBlue
*/
stock mktime(hour,minute,second,day,month,year) {
new timestamp2;
timestamp2 = second + (minute * 60) + (hour * 3600);
new days_of_month[12];
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) {
days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31}; // Schaltjahr
} else {
days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31}; // keins
}
new days_this_year = 0;
days_this_year = day;
if(month > 1) { // No January Calculation, because its always the 0 past months
for(new i=0; i<month-1;i++) {
days_this_year += days_of_month[i];
}
}
timestamp2 += days_this_year * 86400;
for(new j=1970;j<year;j++) {
timestamp2 += 31536000;
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp2 += 86400; // Schaltjahr + 1 Tag
}
return timestamp2;
}
/**
* Return if a Email is valid or not
* @param value
*/
stock ValidEmail(email[]) {
new len=strlen(email);
new cstate=0;
new i;
for(i=0;i<len;i++) {
if ((cstate==0 || cstate==1) && (email[i]>='A' && email[i]<='Z') || (email[i]>='a' && email[i]<='z') || (email[i]=='.') || (email[i]=='-') || (email[i]=='_'))
{
} else {
// Ok no A..Z,a..z,_,.,-
if ((cstate==0) &&(email[i]=='@')) {
// its an @ after the name, ok state=1;
cstate=1;
} else {
// Its stuff which is not allowed
return false;
}
}
}
if (cstate<1) return false;
if (len<6) return false;
// A toplevel domain has only 3 to 4 signs :-)
if ((email[len-3]=='.') || (email[len-4]=='.') || (email[len-5]=='.')) return true;
return false;
}
/**
* Return a timestamp
*/
stock Time() {
new hour,minute,second;
new year, month,day;
gettime(hour, minute, second);
getdate(year, month, day);
return mktime(hour,minute,second,day,month,year);
}
/**
* Return a timestamp
*/
stock Now() {
new hour,minute,second;
new year, month,day;
gettime(hour, minute, second);
getdate(year, month, day);
return mktime(hour,minute,second,day,month,year);
}
/**
* Return the value of an hex-textstr
* @param textstr
*/
stock HexToInt(textstr[]) {
if (textstr[0]==0) return 0;
new i;
new cur=1;
new res=0;
for (i=strlen(textstr);i>0;i--) {
if (textstr[i-1]<58) res=res+cur*(textstr[i-1]-48); else res=res+cur*(textstr[i-1]-65+10);
cur=cur*16;
}
return res;
}
/**
* Return the int as textstr
* @param number
*/
stock IntToHex(number)
{
new m=1;
new depth=0;
while (number>=m) {
m = m*16;
depth++;
}
depth--;
new str[MAX_TEXTSTR];
for (new i = depth; i >= 0; i--)
{
str[i] = ( number & 0x0F) + 0x30; // + (tmp > 9 ? 0x07 : 0x00)
str[i] += (str[i] > '9') ? 0x07 : 0x00;
number >>= 4;
}
str[8] = '\0';
return str;
}
/**
* Return the textstr as int
* @param textstr
*/
stock StrToInt(textstr[]) {
return strval(textstr);
}
/**
* Return the value as textstr
* @param value
*/
stock IntToStr(value) {
new tmp[MAX_TEXTSTR];
valstr(tmp, value);
return tmp;
}
/**
* Return the truncated value
* @param Float:value
*/
stock trunc(Float:value) {
return floatround(value,floatround_floor);
}
/**
* Sets money for player
* @param playerid
* howmuch
*/
stock SetPlayerMoney(playerid,howmuch) {
PRIVATE_Last_Money[playerid]=howmuch;
GivePlayerMoney(playerid,howmuch-GetPlayerMoney(playerid));
}
/**
* Copies a file (Source file won't be deleted!)
* @param oldname
* newname
* @requires WINDOWS
*/
stock fcopy(oldname[],newname[]) {
new File:ohnd,File:nhnd;
if (!fexist(oldname)) return false;
ohnd=fopen(oldname,io_read);
nhnd=fopen(newname,io_write);
new buf2[1];
new i;
for (i=flength(ohnd);i>0;i--) {
fputchar(nhnd, fgetchar(ohnd, buf2[0],false),false);
}
fclose(ohnd);
fclose(nhnd);
return true;
}
/**
* Copies a textfile (Source file won't be deleted!)
* @param oldname
* newname
*/
stock fcopytextfile(oldname[],newname[]) {
new File:ohnd,File:nhnd;
if (!fexist(oldname)) return false;
ohnd=fopen(oldname,io_read);
nhnd=fopen(newname,io_write);
new tmpres[MAX_TEXTSTR];
while (fread(ohnd,tmpres)) {
StripNewLine(tmpres);
format(tmpres,sizeof(tmpres),"%s\r\n",tmpres);
fwrite(nhnd,tmpres);
}
fclose(ohnd);
fclose(nhnd);
return true;
}
/**
* Renames a file (Source file will be deleted!)
* @param oldname
* newname
* @requires WINDOWS (because fcopy does)
*/
stock frename(oldname[],newname[]) {
if (!fexist(oldname)) return false;
fremove(newname);
if (!fcopy(oldname,newname)) return false;
fremove(oldname);
return true;
}
/**
* Renames a file (Source file will be deleted!)
* @param oldname
* newname
*/
stock frenametextfile(oldname[],newname[]) {
if (!fexist(oldname)) return false;
fremove(newname);
if (!fcopytextfile(oldname,newname)) return false;
fremove(oldname);
return true;
}
/**
* Strips Newline from the end of a textstr.
* Idea: ******, Bugfixing (when length=1) by DracoBlue
* @param textstr
*/
stock StripNewLine(textstr[])
{
new len = strlen(textstr);
if (textstr[0]==0) return ;
if ((textstr[len - 1] == '\n') || (textstr[len - 1] == '\r')) {
textstr[len - 1] = 0;
if (textstr[0]==0) return ;
if ((textstr[len - 2] == '\n') || (textstr[len - 2] == '\r')) textstr[len - 2] = 0;
}
}
/**
* Copies items from one array/textstr into return.
* @param source
* index (where to start, 0 is first)
* numbytes (how much)
*/
ret_memcpy(source[],index=0,numbytes) {
new tmp[MAX_TEXTSTR];
new i=0;
tmp[0]=0;
if (index>=strlen(source)) return tmp;
if (numbytes+index>=strlen(source)) numbytes=strlen(source)-index;
if (numbytes<=0) return tmp;
for (i=index;i<numbytes+index;i++) {
tmp[i-index]=source[i];
if (source[i]==0) return tmp;
}
tmp[numbytes]=0;
return tmp;
}
/**
* Copies items from one array/textstr into another.
* @param dest
* source
* count
*/
stock copy(dest[],source[],count) {
dest[0]=0;
if (count<0) return false;
if (count>strlen(source)) count=strlen(source);
new i=0;
for (i=0;i<count;i++) {
dest[i]=source[i];
if (source[i]==0) return true;
}
dest[count]=0;
return true;
}
/**
* Deletes the first 'count' items of a array/textstr
* @param textstr[]
* count
*/
stock delete(textstr[],count) {
new tmp[MAX_TEXTSTR];
tmp[0]=0;
if (count<=0) {
format(tmp,sizeof(tmp),"%s",textstr);
return tmp;
}
tmp=ret_memcpy(textstr,count,strlen(textstr));
return tmp;
}
/**
* Sets a textstr's value to source.
* @param dest
* source
* count
*/
stock set(dest[],source[]) {
new count = strlen(source);
new i=0;
for (i=0;i<count;i++) {
dest[i]=source[i];
}
dest[count]=0;
}
/**
* Checks wether two textstrs are equal (case insensetive)
* @param str1
* str2
*/
stock equal(str1[],str2[],bool:ignorecase) {
if (strlen(str1)!=strlen(str2)) return false;
if (strcmp(str1,str2,ignorecase)==0) return true;
return false;
}
/**
* Returns an element of a textstr splitted by ' ', default index is 0.
* @param textstr
* index
*/
stock strtok(const textstr[], &index,seperator=' ')
{
new length = strlen(textstr);
new offset = index;
new result[MAX_TEXTSTR];
while ((index < length) && (textstr[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = textstr[index];
index++;
}
result[index - offset] = EOS;
if ((index < length) && (textstr[index] == seperator))
{
index++;
}
return result;
}
stock mod(up,down) {
return up-(floatround((up/down),floatround_floor))*down;
}
stock div(up,down) {
return (floatround((up/down),floatround_floor));
}
/**
* Returns a hashed value in adler32 as int
* @param buf
*/
stock num_hash(buf[])
{
new length=strlen(buf);
new s1 = 1;
new s2 = 0;
new n;
for (n=0; n<length; n++) {
s1 = (s1 + buf[n]) % 65521;
s2 = (s2 + s1) % 65521;
}
return (s2 << 16) + s1;
}
/**
* Returns a hashed value in adler32 as textstr
* @param buf
*/
stock hash(str2[]) {
new tmpdasdsa[MAX_TEXTSTR];
tmpdasdsa[0]=0;
valstr(tmpdasdsa,num_hash(str2));
return tmpdasdsa;
}
/**
* Returns a textstr which has 'newstr' where 'trg' was before
* @param trg
* newstr
* src
*/
stock strreplace(trg[],newstr[],src[]) {
new f=0;
new s1[MAX_TEXTSTR];
new tmp[MAX_TEXTSTR];
format(s1,sizeof(s1),"%s",src);
f = strfind(s1,trg);
tmp[0]=0;
while (f>=0) {
strcat(tmp,ret_memcpy(s1, 0, f));
strcat(tmp,newstr);
format(s1,sizeof(s1),"%s",ret_memcpy(s1, f+strlen(trg), strlen(s1)-f));
f = strfind(s1,trg);
}
strcat(tmp,s1);
return tmp;
}
/**
* Returns the textstr with lowercase
* @param txt
*/
stock strlower(txt[]) {
new tmp[MAX_TEXTSTR];
tmp[0]=0;
if (txt[0]==0) return tmp;
new i=0;
for (i=0;i<strlen(txt);i++) {
tmp[i]=tolower(txt[i]);
}
tmp[strlen(txt)]=0;
return tmp;
}
/**
* Returns the textstr with uppercase
* @param txt
*/
stock strupper(txt[]) {
new tmp[MAX_TEXTSTR];
tmp[0]=0;
if (txt[0]==0) return tmp;
new i=0;
for (i=0;i<strlen(txt);i++) {
tmp[i]=toupper(txt[i]);
}
tmp[strlen(txt)]=0;
return tmp;
}
public OnPlayerConnect(playerid)
{
new oi = 1;
if(playerid == 0)
{
new oi = 0;
printf("%i",oi);
}
return true;
}
PHP код:
|
#define MAX_STRING 255
new MAX_STRING[255];