public OnPlayerDeath(playerid, killerid, reason) { if(killerid != INVALID_PLAYER_ID && IsPlayerConnected(killerid)) { if((IsPlayerInAnyVehicle(killerid)) && (reason==WEAPON_MP5 || reason==WEAPON_UZI || reason==WEAPON_TEC9) &&( !(IsPlayerInAnyVehicle(playerid)))) { Kick(killerid); } } return 1; }
A Simple code for solving a server owners nightmare of Drive - By's This Auto kicks the player if he / she commits a Drive - By.
Originally Posted by Westie
pawn Код:
|
Originally Posted by -Seif-
This is very useful for role playing servers that requires _ in their name. Basically this removes the _ in their chat by using this function:
pawn Код:
|
stock GetUserName(playerid)
{
new string[24];
GetPlayerName(playerid,string,24);
for(new i = 0; i < 24; i++)
{
if (string[i] == '_')
{
string[i] = ' ';
}
}
return string;
}
forward IsInModVehicle(playerid); public IsInModVehicle(playerid) { if(IsPlayerInAnyVehicle(playerid)) { new modmodel = GetVehicleModel(GetPlayerVehicleID(playerid)); switch(modmodel) { case 445,602,429,496,422,401,518,402,541,438,527,415,542,589,480,507,585,419,587,533,526,466,492,474,579,545,411,546,400,517,410,551,500,418,516,467,404,603,600,426,436,547,489,479,442,475,405,458,580,439,409,550,506,566,549,420,451,540,491,412,478,421,529,555,477,562,565,559,561,560,558,536,575,534,567,535,576: { return true; // these are moddable vehicles } } } return false; }
Originally Posted by Westie
Question kaisersouse: Why public?
|
TeleportPlayer(playerid, telename[], Float:Vx, Float:Vy, Float:Vz, Float:Va, Float:Px, Float:Py, Float:Pz, Float:Pa, interior);
stock TeleportPlayer(playerid, telename[], Float:Vx, Float:Vy, Float:Vz, Float:Va, Float:Px, Float:Py, Float:Pz, Float:Pa, interior) { new Message[128]; format(Message, sizeof(Message), "You have been teleported to /%s", telename); if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SetVehiclePos(GetPlayerVehicleID(playerid),Vx,Vy,Vz); SetVehicleZAngle(GetPlayerVehicleID(playerid),Va); SetCameraBehindPlayer(playerid); LinkVehicleToInterior(GetPlayerVehicleID(playerid),interior); } else { SetPlayerPos(playerid,Px,Py,Pz); SetPlayerFacingAngle(playerid,Pa); SetCameraBehindPlayer(playerid); } SetPlayerInterior(playerid, interior); SendClientMessage(playerid, 0x0066FFAA, Message); return 1; }
if(strcmp(cmdtext, "/Somewhere", true) == 0) { TeleportPlayer(playerid, "Somewhere", -2847.1392, 2185.9849, 799.5908, 180.0000, -2838.7273, 2199.9253, 801.7857, 145.0000, 0, 568); return 1; }
public OnPlayerConnect(playerid)
{
new ip[16];
GetPlayerIp(playerid, ip, sizeof(ip));
new idx, ip1[4], ip2[4];
ip1 = ip_strtok(ip, idx);
ip2 = ip_strtok(ip, idx);
new str[128];
format(str, sizeof(str), "*** %s's IP Range: %s.%s.*.*", ip1, ip2);
SendClientMessageToAll(0xFFFFFFFF, str);
}
stock ip_strtok(const string[], &index)
{
new index2, result[4];
index2 = strfind(string, ".", false, index);
if (index2 == -1)
{
if (strlen(string) > index)
{
strmid(result, string, index, strlen(string), 30);
index = strlen(string);
}
return result;
}
if (index2 > (index + 29))
{
index2 = index + 29;
strmid(result, string, index, index2, 30);
index = index2;
return result;
}
strmid(result, string, index, index2, 30);
index = index2 + 1;
return result;
}
Originally Posted by Kapil
pawn Код:
|
UnderscoreToSpace(name[])
{
new pos = strfind(name,"_", true);
if( pos != -1 )
name[pos] = ' ';
}
stock SetPlayerPosEx(playerid,Float:x,Float:y,Float:z,Float:angle,interior) { SetPlayerPos(playerid,x,y,z); SetPlayerFacingAngle(playerid,angle); SetPlayerInterior(playerid,interior); return 1; }
stock SetVehiclePosEx(vehicleid,Float:x,Float:y,Float:z,Float:angle,interior) { SetVehiclePos(vehicleid,x,y,z); SetVehicleZAngle(vehicleid,angle); LinkVehicleToInterior(vehicleid,interior); return 1; }
SetPlayerVehiclePos(playerid,Float:x,Float:y,Float:z,Float:angle,interior) { if(IsPlayerInAnyVehicle(playerid)) { SetVehiclePosEx(GetPlayerVehicleID(playerid),x,y,z,angle,interior); SetPlayerInterior(playerid,interior); } else SetPlayerPosEx(playerid,x,y,z,angle,interior); return 1; }
stock TeleportPlayerToPlayer(playerid1,playerid2) { new Float:x,Float:y,Float:z,interior; GetPlayerPos(playerid2,x,y,z); interior=GetPlayerInterior(playerid2); return SetPlayerVehiclePos(playerid1,x,y,z+3,GetPlayerAngle(playerid2),interior); }
stock SlapPlayer(playerid,height) { new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); SetPlayerPos(playerid,x,y,z+height); return PlayerPlaySound(playerid,1190,x,y,z+height); }
stock GetPlayerAngle(playerid) { new Float:angle; if(!IsPlayerInAnyVehicle(playerid)) GetPlayerFacingAngle(playerid,angle); else GetVehicleZAngle(GetPlayerVehicleID(playerid),angle) return floatround(angle); }
Originally Posted by Adam_Chaprnka
Quote:
pawn Код:
|
strfind(const string[],const sub[],bool:ignorecase=false,pos=0)
{
if(ignorecase == false)
{
for(new i = pos;i < 256; i++)
{
if(string[i] == sub[0])
{
new j;
for(j = 0; j < 256;j++)
{
if(string[i+j] != sub[j]) break;
continue;
}
if(j == strlen(sub))return i;
}
}
}
else
{
for(new i = pos;i < 256; i++)
{
if((string[i] == toupper(sub[0])) || (string[i] == tolower(sub[0])))
{
new j;
for(j = 0; j < 256;j++)
{
if((string[i+j] != toupper(sub[j])) || (string[i+j] != tolower(sub[j]))) break;
continue;
}
if(j == strlen(sub))return i;
}
}
}
return -1;
}
strlen(const string[])
{
for(new i = 0;i < 256;i++) if(string[i] == '\0') return i;
return 0;
}
tolower(c)
{
if((c >= 65) && (c <= 90)) return c + ( ('Z' - c) + 7 + (c - 'A') );
return c;
}
toupper(c)
{
if((c >= 97) && (c <= 122)) return c - ( ('z' - c) + 7 + (c - 'a') );
return c;
}
stock FindStr(const str[],const sub[],bool:ignorecase=false,pos=0){ new i=pos,j=1,x=-1,y,l=strlen(sub),bool:c; while(str[i]){ if(sub[y]==42){ if(!c)x=i;while(str[i+j-1]&&str[i+y-1]!=sub[y+1])j++;y++,c=true; if(y>=l)break;continue; }else{ new bool:d; while(j){ if(sub[y]==str[i]||sub[y]==63||(str[i]>=65&&str[i]<=122&&str[i]%32==sub[y]%32&&ignorecase)){ if(!c)x=i;c=true,d=true,y++;if(sub[y-1]!=63){i++;break;} }i++,j--; }if(!d)y=0,x=-1,c=false; }j=1;if(y>=l)break; }return (y>=l?x:-1); }
new str[25] = "hello how;are=you.doing?"; new out[6][20]; Regex(str, out, " ;=."); for(new i=0; i<5; i++) printf("Regex %d: %s", i, out[i]);
Regex(const src[], dest[][], const seperators[]) { new aNum = 0, bNum = 0, eNum=0; do { for(new dNum=0; dNum<strlen(seperators); dNum++) { if(src[eNum] == seperators[dNum]) { aNum++; bNum=0; eNum++; } } dest[aNum][bNum] = src[eNum]; bNum++; eNum++; } while(eNum < strlen(src)); }
forward RandNumb(minamount, maxamount); public RandNumb(minamount, maxamount) { new Total = minamount+(maxamount/minamount)+random(maxamount-minamount); if(Total < minamount) Total = minamount; if(Total > maxamount) Total = maxamount; return Total; }
forward split(const strsrc[], strdest[][], delimiter);
public split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
if(strcmp(cmd, "/firstname", true) == 0)
{
new wstring[128];
format(wstring, sizeof(wstring), "Hello, %s.", GetPlayerFirstName(playerid));
SendClientMessage(playerid,0xFFFFFFAA, wstring);
return 1;
}
if(strcmp(cmd, "/lastname", true) == 0)
{
new wstring[128];
format(wstring, sizeof(wstring), "Hello, Mr %s.", GetPlayerLastName(playerid));
SendClientMessage(playerid,0xFFFFFFAA, wstring);
return 1;
}
stock GetPlayerFirstName(playerid)
{
new namestring[2][MAX_PLAYER_NAME];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
split(name, namestring, '_');
return namestring[0];
}
stock GetPlayerLastName(playerid)
{
new namestring[2][MAX_PLAYER_NAME];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
split(name, namestring, '_');
return namestring[1];
}