Originally Posted by LarzI aka. GloZzy
Ok, thanks for telling me, but I won't fix it, I cba XD
|
Originally Posted by Boylett
An exact copy of the function "rand" in PHP.
pawn Код:
|
#define rand(%1,%2) (random(%2 - %1 + 1) + %1)
stock IsAtPoint(Float:radi, whatis, id, Float:x, Float:y, Float:z)
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
if(whatis == playerid)
GetPlayerPos(id, oldposx, oldposy, oldposz);
else if(whatis == objectid
GetObjectPos(id, oldposx, oldposy, oldposz);
else if(whatis == vehicleid
GetVehiclePos(id, oldposx, oldposy, oldposz);
else
return false;
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
return 0;
}
Originally Posted by Seif_
You should have at least compiled it. This will give multiple errors.
|
enum IAPModes
{
iap_playerid,
iap_vehicleid,
iap_objectid
}
stock IsAtPoint(Float:radi, IAPModes:mode, id, Float:X, Float:Y, Float:Z)
{
new Float:Pos[3];
switch(mode)
{
case iap_playerid: GetPlayerPos(id, Pos[0], Pos[1], Pos[2]);
case iap_vehicleid: GetVehiclePos(id, Pos[0], Pos[1], Pos[2]);
case iap_objectid: GetObjectPos(id, Pos[0], Pos[1], Pos[2]);
}
if( -radi < floatsub(Pos[0], X) < radi &&
-radi < floatsub(Pos[1], Y) < radi &&
-radi < floatsub(Pos[2], Z) < radi ) return 1;
return 0;
}
Originally Posted by ssǝן‾ʎ
Quote:
pawn Код:
Код:
2, 3, 4, 5, 6, 7, 8, 9 pawn Код:
|
new FALSE = false;
#define PrintEx(%1,%2) do{ new strz[256]; valstr(strz, %2); format(strz, sizeof(strz), (%1),strz); print(strz); }while(FALSE)
#define SendRconCommandX(%1,%2) do{ new st[256]; format(st, sizeof(st), (%1), %2); SendRconCommand(st); }while(FALSE)
#define SendRconCommandEx(%1,%2) do{ new st[256]; valstr(st, (%2)); format(st, sizeof(st), (%1), st); SendRconCommand(st); }while(FALSE)
PrintEx(format[], {Float,_}:...);
SendRconCommandX(format[], {Float,_}:...);
SendRconCommandEX(format[], {Float,_}:...);
public OnPlayerConnect(playerid)
{
PrintEx("Player %s: Has joined the server!", GetName(playerid));
SendRconCommandX("banip %s", GetIp(playerid));
SendRconCommandEx("rcon_password %s", 123);
return 1;
}
Replace(string[128], find[128], replace[128])
{
new pos;
while((pos = strfind(string, find, true)) != -1)
{
strdel(string, pos, pos + strlen(find));
strins(string, replace, pos);
}
return string;
}
public UnderscoreToSpace(name[])
{
for(new i = 0; name[i] != 0; i++)
if(name[i] == '_') name[i] = ' ';
}
public UnderscoreToSpace(name[])
{
for(new i = 0; i<24; i++)
if(name[i] == '_') name[i] = ' ';
}
Originally Posted by non-l33t'pWnzor
Even better (maybe not faster though)
pawn Код:
|
UnderscoreToSpace(name[])
{
for(new i = 0; name[i] != 0; i++)
if(name[i] == '_') name[i] = ' ';
}
stock RangeBan(playerid) { new ip[20]; GetPlayerIp(playerid,ip,20); strdel(ip,strlen(ip)-2,strlen(ip)); format(ip,128,"%s**",ip); format(ip,128,"banip %s",ip); SendRconCommand(ip); } stock Slap(playerid) { new Float:X,Float:Y,Float:Z, Float:pHealth; GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z+7); GetPlayerHealth(playerid,pHealth); SetPlayerHealth(playerid,pHealth - 10); } stock Explode(playerid) { new Float:X,Float:Y,Float:Z; GetPlayerPos(playerid,X,Y,Z); CreateExplosion(X,Y,Z,13,25); Kill(playerid); } stock Crash(playerid) { new Float:X,Float:Y,Float:Z; GetPlayerPos(playerid,X,Y,Z); CreatePlayerObject(playerid,111111,X,Y,Z,0,0,0); } stock GiveCar(playerid,vehid) { new Float:X,Float:Y,Float:Z; GetPlayerPos(playerid,X,Y,Z); CreateVehicle(vehid,X,Y,Z,0,-1,-1,6000); } stock Freeze(playerid) { TogglePlayerControllable(playerid,false); } stock Unfreeze(playerid) { TogglePlayerControllable(playerid,true); } stock GivePlayerHealth(playerid,amount) { new Float:Health; GetPlayerHealth(playerid,Health); if(IsPlayerConnected(playerid)) { SetPlayerHealth(playerid,Health + amount); } return 1; } stock TakePlayerHealth(playerid,amount) { new Float:Health; GetPlayerHealth(playerid,Health); if(IsPlayerConnected(playerid)) { SetPlayerHealth(playerid,Health - amount); } return 1; } stock GivePlayerArmour(playerid,amount) { new Float:Armour; GetPlayerArmour(playerid,Armour); if(IsPlayerConnected(playerid)) { SetPlayerArmour(playerid,Armour + amount); } return 1; } stock TakePlayerArmour(playerid,amount) { new Float:Armour; GetPlayerArmour(playerid,Armour); if(IsPlayerConnected(playerid)) { SetPlayerArmour(playerid,Armour - amount); } return 1; } stock Kill(playerid) { SetPlayerHealth(playerid,0.0); return 1; }
stock bigstrtok(const string[], &idx)
{
new length = strlen(string);
while ((idx < length) && (string[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = string[idx];
idx++;
}
result[idx - offset] = EOS;
return result;
}
if(strcmp(cmd, "/kick", true) == 0)
{
new reason[128]; // 128 cells.
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /kick [playerid] [reason]");
new id = ReturnUser(tmp);
GetPlayerName(id, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
reason = bigstrtok(cmdtext, idx); // The reason becomes as a big strtok.
if(!strlen(reason)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /kick [playerid] [reason]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_GREY,"SERVER: Invalid Player ID");
format(string, sizeof(string), "Administrator %s has kicked %s, the reason: %s", sendername, giveplayer, reason); // Reason = big strtok.
SendClientMessageToAll(COLOR_GREY, string);
Kick(id);
return 1;
}