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];
}