[Include] s_utils.inc - Adiзгo de novas func. para scripting
#1

Descriзгo:
- Uma include que adiciona novas funзхes para simplificar e ajudar na hora de escrever alguns cуdigos.

Caracterнsticas:
- Funзгo para verificar estados do jogador.
- Funзгo para remover arma especнfica (ou de um slot especнfico)
- Funзгo para verificar distвncia do jogador entre algum objeto/jogador.
- e outras...

Versгo:
Код:
1.0: Primeira versгo.
1.1: Documentaзгo do cуdigo, novas funзхes: GetVehicleDistanceFromVehicle(),
     RemovePlayerSlotWeapon(), GetVehicleDriver(), GetFreeVehicleSeat(),
     IsValidSkin(), IsAValidRPName(), GetPlayerRPName(playerid),
     IsPlayerSpectating() e IsPlayerPassenger(), correзхes e melhorias.
Funзхes:
pawn Код:
native SetPlayerPosEx(playerid, Float:x, Float:y, Float:z, Float:a);
native IsPlayerInRangeOfVehicle(playerid, vehicleid, Float: radius);
native GetVehicleDistanceFromVehicle(vehicleid, vtargetid);
native GetPlayerDistanceFromVehicle(playerid, vehicleid);
native GetPlayerDistanceFromPlayer(playerid, targetid);
native TeleportPlayerToVehicle(playerid, vehicleid);
native TeleportPlayerToPlayer(playerid, targetid);
native SendAdminMessage(color, const message[]);
native RemovePlayerSlotWeapon(playerid, slotid);
native SetVehicleInterior(vehicleid, interior);
native GivePlayerWantedLevel(playerid, level);
native RemovePlayerWeapon(playerid, weaponid);
native GetVehicleEngineStatus(vehicleid);
native SetPlayerMoney(playerid, money);
native GetPlayerFacingAnglef(playerid);
native GetFreeVehicleSeat(vehicleid);
native GetPlayerWeaponName(playerid);
native GetVehicleHealthf(vehicleid);
native GetVehicleZAnglef(vehicleid);
native FreezePlayer(playerid, time);
native IsVehicleOccupied(vehicleid);
native IsPlayerPassenger(playerid);
native ClearPlayerScreen(playerid);
native GetVehicleDriver(vehicleid);
native GetPlayerArmourf(playerid);
native GetPlayerHealthf(playerid);
native IsPlayerSwimming(playerid);
native IsVehicleLocked(vehicleid);
native GetVehicleName(vehicleid);
native GetPlayerRPName(playerid);
native UnlockVehicle(vehicleid);
native GetWeaponNamef(weaponid);
native GetPlayerNamef(playerid);
native IsPlayerDriver(playerid);
native GetPlayerIpf(playerid);
native LockVehicle(vehicleid);
native FlipVehicle(vehicleid);
native IsAValidRPName(name);
native IsValidSkin(skinid);
Info. Funзхes:
NomeFunзгoRetorna
SetPlayerPosExAdiciona parвmetros a funзгo SetPlayerPosEsta funзгo nгo retorna um valor especнfico
IsPlayerInRangeOfVehicleChecar se jogador estб prуximo a um veнculo (radius)1 caso sim, 0 caso nгo
GetVehicleDistanceFromVehicleObter a distвncia entre dois veнculosA distвncia entre os veнculos (float)
GetPlayerDistanceFromVehicleObter a distвncia entre um jogador e um veнculoA distвncia entre ambos (float)
GetPlayerDistanceFromPlayerObter a distвncia entre dois jogadoresA distвncia entre os jogadores (float)
TeleportPlayerToVehicleTeleporta um jogador p/ um veнculoEsta funзгo nгo retorna um valor especнfico
TeleportPlayerToPlayerTeleporta um jogador p/ outro jogador.Esta funзгo nгo retorna um valor especнfico
SendAdminMessageEnvia uma mensagem para admins RCONEsta funзгo nгo retorna um valor especнfico
RemovePlayerSlotWeaponRemove qualquer arma de um slot(0-12) do jogador0 caso jogador ou slot invбlido
SetVehicleInteriorRedefiniзгo de LinkVehicleToInteriorEsta funзгo nгo retorna um valor especнfico
GivePlayerWantedLevelAcrescenta nнvel de procurado a um jogadorEsta funзгo nгo retorna um valor especнfico
RemovePlayerWeaponRemove uma arma(0-46) especнfica de um jogador0 caso jogador ou arma invбlida
GetVehicleEngineStatusObter estado do motor do veнculo1 caso desligado, 0 caso desligado
SetPlayerMoneyDefine a quantia de dinheiro do jogadorEsta funзгo nгo retorna um valor especнfico
GetPlayerFacingAnglefObtйm o вngulo do jogador, sem uma var. intermediбriaO вngulo do jogador (float)
GetFreeVehicleSeatObter o prуximo assento livre de um veнculoO prуximo assento livre de um veнculo (int)
GetPlayerWeaponNameObter o nome da arma atual do jogadorO nome da arma do jogador (string)
GetVehicleHealthfObter a saъde de um veнculo, sem uma var. intermediбriaA saъde do veнculo (float)
GetVehicleZAnglefObter a вngulo de um veнculo, sem uma var. intermediбriaO вngulo do veнculo (float)
FreezePlayerCongelar um jogador por um determinado perнodo (em ms)Esta funзгo nгo retorna um valor especнfico
IsVehicleOccupiedVerificar se um veнculo estб ocupado com algum jogador1 caso sim, 0 caso nгo
IsPlayerPassengerVerificar se um jogador й passageiro de algum veнculo1 caso sim, 0 caso nгo
ClearPlayerScreenLimpar o chat de algum jogadorEsta funзгo nгo retorna um valor especнfico
GetVehicleDriverObter do id do motorista de algum veнculoO id do motorista, INVALID_PLAYER_ID caso nenhum
GetPlayerArmourfObter o colete de um jogador, sem uma var. intermediбriaO colete do jogador (float)
GetPlayerHealthfObter a saъde de um jogador, sem uma var. intermediбriaA saъde do jogador (float)
IsPlayerSwimmingVerificar se um jogador estб nadando (via anim)1 caso sim, 0 caso nгo
IsVehicleLockedVerificar se um veнculo estб trancado1 caso sim, 0 caso nгo
GetVehicleNameObter o nome de um veнculoO nome do veнculo (string)
GetPlayerRPNameVerificar se o nome do jogador й um nome RP vбlido1 caso sim. 0, 2, 3, 4, 5 caso nгo
UnlockVehicleDestrancar um veнculoEsta funзгo nгo retorna um valor especнfico
GetWeaponNamefObter o nome de uma arma, sem uma var. intermediбriaO nome da arma (string) 18,44,45 inclusos
GetPlayerNamefObter o nome de um jogador, sem uma var. intermediбriaO nome do jogador (string)
IsPlayerDriverVerificar se um jogador й um motorista1 caso sim, 0 caso nгo
GetPlayerIpfObter o IP de um jogador, sem uma var. intermediбriaO IP do jogador (string)
LockVehicleTrancar um veнculoEsta funзгo nгo retorna um valor especнfico
FlipVehicleDesvirar um veнculoEsta funзгo nгo retorna um valor especнfico
IsAValidRPNameVerifica se um nome й um nome RP vбlido1 caso sim. 0, 2, 3, 4, 5 caso nгo
IsValidSkinVerifica se uma skin й vбlida1 caso sim. 0 caso nгo
Mais informaзхes na documentaзгo do cуdigo, na prуpria include.
Exemplos:
pawn Код:
#include <s_utils>

public OnPlayerConnect( playerid )
{
    switch(GetPlayerRPName(playerid))
    {
        case 0: SendClientMessage(playerid, -1, "Seu nome nгo tem um underline!");
        case 1: SendClientMessage(playerid, -1, "Seu estб ok!");
        case 2: SendClientMessage(playerid, -1, "Seu nome contйm nъmeros!");
        case 3: SendClientMessage(playerid, -1, "Seu nome precisar iniciar com letra maiuscula!");
        case 4: SendClientMessage(playerid, -1, "Seu sobrenomenome precisar iniciar com letra maiuscula!");
        case 5: SendClientMessage(playerid, -1, "Apenas as inicias de seu nome devem ser maнuscula!");
    }
    return 1;
}

CMD:setskin(playerid, params[])
{
    if(!IsValidSkin(strval(params)))
        SendClientMessage(playerid, -1, "Skin invбlida!");
    SetPlayerSkin(playerid, strval(params));
    return 1;
}
Imagens:
- Nгo disponнvel.

Download:
Pastebin - Salve como s_utils.inc

Sugestхes:
- Sugestхes de novas funзхes sгo bem-vindas!
Reply
#2

Muito bom!
Reply
#3

ъtil
Reply
#4

Sу uma dica:

pawn Код:
stock IsPlayerSpectating(playerid) {
        return (GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) ? 1 : 0; }
 
/*----------------------------------------------------------------------------*\
        Funзгo:
                - Verificar se й uma skin vбlida.
 
        Params:
                - skin: ID da skin.
 
        Retorna:
                - 1 se a skin for vбlida.
                - 0 se a skin for invбlida.
\*----------------------------------------------------------------------------*/

stock IsValidSkin(skinid) {
        return  (skinid != 74) ? 1 : 0; }
Nгo era necessбria a operaзгo ternбria, bastava retornar a condicional. Enfim, й bem ъtil. Parabйns.
Reply
#5

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
Muito bom!
Quote:
Originally Posted by death1
Посмотреть сообщение
ъtil
Quote:
Originally Posted by Jason`
Посмотреть сообщение
Enfim, й bem ъtil. Parabйns.
Obrigado.

Quote:
Originally Posted by Jason`
Посмотреть сообщение
Sу uma dica:

pawn Код:
stock IsPlayerSpectating(playerid) {
        return (GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) ? 1 : 0; }
 
/*----------------------------------------------------------------------------*\
        Funзгo:
                - Verificar se й uma skin vбlida.
 
        Params:
                - skin: ID da skin.
 
        Retorna:
                - 1 se a skin for vбlida.
                - 0 se a skin for invбlida.
\*----------------------------------------------------------------------------*/

stock IsValidSkin(skinid) {
        return  (skinid != 74) ? 1 : 0; }
Nгo era necessбria a operaзгo ternбria, bastava retornar a condicional.
Verdade, eu estava usando operador ternбrio em outros cуdigos e acabei usando aн tambйm, bom saber que tem gente que presta atenзгo no cуdigo, valeu.
Reply
#6

Ъtil.
Bom trabalho!
Reply
#7

Essa sua ideia й Parecida com a minha FunctionEdit fora a parte em que na minha Include qualquer um pode participar, atй ai tudo bem, mais em certas funзхes suas encontrei alguns erros(conceituais), que poderia ser feitos de maneiras mais simples..

pawn Код:
if(!strfind(name[i], "_")) //Nгo precisava usar uma funзгo nesse caso.
if(name[i] == '_')


if(strfind(name, "0", true) != -1 ||
    strfind(name, "1", true) != -1 ||
    strfind(name, "2", true) != -1 ||
    strfind(name, "3", true) != -1 ||
    strfind(name, "4", true) != -1 ||
    strfind(name, "5", true) != -1 ||
    strfind(name, "6", true) != -1 ||
    strfind(name, "7", true) != -1 ||
    strfind(name, "8", true) != -1 ||
    strfind(name, "9", true) != -1)
{
    return 2;
} //Nгo precisava tudo isso para verificar se tinha nъmeros na String.
for(new p; p != strlen(name); ++p) if(name[p] < '0' || name[p] > '9') return 2;


name[++i]; // Para aumentar o valor que i, nгo й necessбrio usar name..

//Entre outros que resolvi nгo focar..
Mais mesmo assim, Bom Trabalho.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)