Portal SAMP
Fixado: Códigos Úteis - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: Fixado: Códigos Úteis (/showthread.php?tid=73)

Páginas: 1 2 3 4 5 6


RE: Códigos Úteis - Lightz/Conta nova - 04/09/2021

Teleportar-se para um local marcando pelo mapa.

Código PHP:
public OnPlayerClickMap(playeridFloat:fXFloat:fYFloat:fZ)
{
    
SetPlayerPosFindZ(playeridfXfYfZ);
    return 
1;




Tag's Administrativas - Brvay - 13/12/2021

Tags administrativas no chat.

Troque as variaveis pelas suas criadas em sua gamemode.

Código PHP:
public OnPlayerText(playeridtext[])
{
    new 
str[90];

    if(
Player[playerid][Admin] > || Player[playerid][AdminTemp] > 0)
    {
        
format(str90"%s(%d) [%s{FFFFFF}]: %s"Nome(playerid), playeridNomeAdmin(Player[playerid][Admin] || Player[playerid][AdminTemp]), text);
        
SendClientMessageToAll(0xffffffffstr);
        return 
0;
    }
    else
    {
        
format(str90"%s(%d): %s"Nome(playerid), playeridtext);
        
SendClientMessageToAll(0xffffffffstr);
    }
    return 
0;

Código PHP:
NomeAdmin(niveladmin)
{
    new 
str[25];

    switch(
niveladmin)
    {
        case 
1format(str25"{6960EC}Ajudante");
        case 
2:    format(str25"{6960EC}Moderador");
        case 
3format(str25"{6960EC}Administrador");
        case 
4:    format(str25"{6960EC}Gerente");
        case 
5format(str25"{6960EC}Dono");
        default: 
format(str25"");
    }
    return 
str;




sistema de algemar e prender por id fixo - hey - 14/12/2021

Ola Eu Sei q é um Comando Simples Para Pessoas Mais Experientes no Samp Mas Pode Ser Util Para Iniciantes

Vc Pode Adaptar Do Jeito q Quiser

Como Ainda n Testei Este Codigo Pode Ser q Tenha Lacunas Mas Coisa Basica q um Novato pd Consertar
Código:
#include <Zcmd>
#include <sscanf2>
#include <streamer>
new gang[MAX_PLAYERS]; // pode colocar profissoes se quiser
#define policia 0

CMD:algemar(playerid, params[])
{
new ID, Motivo;
new Float:x, Float:y, Float:z;
GetPlayerPos(ID, x,y,z);
if(IsPlayerInRangeOfPoint(playerid, 2.0, x,y,z))
{
if(gang[playerid] == policia)
{
if(sscanf(params,"ds", ID, Motivo)) return SendClientMessage(playerid, 0xFF0000AA, "Modo de Uso: /algemar [ID] [Motivo]");
SetPlayerAttachedObject(ID, 4, 19418, 6, -0.031999, 0.024000, -0.024000, -7.900000, -32.000011, -72.299987, 1.115998, 1.322000, 1.406000);
SetPlayerSpecialAction(ID, 24);
TogglePlayerControllable(ID, 0);
}
}
GameTextForPlayer(ID, "~r~ ALGEMADO!", 5000, 5);
return 1;
}

Desalgemar

Código:
CMD:desalgemar(playerid, params[])
{
if(gang[playerid] == policia)
{
new Float:x, Float:y, Float:z;
new id;
GetPlayerPos(id, x,y,z);
if(IsPlayerInRangeOfPoint(playerid, 2.0, x,y,z))
{
new ID, Motivo[23];
if(sscanf(params,"ds", ID, Motivo)) return SendClientMessage(playerid, 0xFF0000AA, "Modo de Uso: /desalgemar [ID] [Motivo]");
ClearAnimations(ID);
RemovePlayerAttachedObject(ID,4);
SetPlayerSpecialAction(ID, SPECIAL_ACTION_NONE);
TogglePlayerControllable(ID, 1);
GameTextForPlayer(ID, "~g~ DESALGEMADO!", 5000, 5);
}
}
return 1;
}


agora o sistema de prender Eu optei Por n Colocar Timer pra o codigo n ficar extenso mas vc pode adaptar o sistema de colocar timer.
Código:
CMD:prender(playerid, params[])
{
new ID, Motivo[23];
new Float:x, Float:y, Float:z;
GetPlayerPos(ID, x,y,z);
if(IsPlayerInRangeOfPoint(playerid, 2.0, x,y,z))
{
new pname[MAX_PLAYER_NAME], string[22 + MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "O Policial %s Fez Uma Prisão.", pname);
SendClientMessageToAll(COR_POLICIA, string);

if(gang[playerid] == policia)
{
SetPlayerInterior(ID, 6);
SetPlayerPos(ID, 265.0008,77.6659,1001.0391);
GameTextForPlayer(ID, "~g~ PRESO!", 5000, 5);
TogglePlayerControllable(ID, 1);
SetPlayerHealth(ID, 54546546556484);
}
}

{
if(sscanf(params,"ds", ID, Motivo)) return SendClientMessage(playerid, 0xFF0000AA, "Modo de Uso: /prender [ID] [Motivo]");
}
return 1;
}



mensagem de comando invalido - hey - 14/12/2021

este é um comando q eu quando era iniciante sofri bastante pra criar mas tá ai vi q muita gente tem duvida sobre isso ate hoje então porq n ajudar neh

Código:
public OnPlayerCommandPerformed(playerid, cmdtext[], success) // esta callback n e padrao do samp entao crie no fim da gm
{
new string [124];
format(string,sizeof(string), "{FF0000}| ERRO | Este Comando Não Existe No Servidor!", cmdtext);
if(!success) return SendClientMessage(playerid, -1, string);
return true;
}
espero ter ajudado 
Smile


RE: Códigos Úteis - AztecaJr - 19/12/2021

Vejo que vários APKs não tem chatkill, ou então quando tem é invertido.

Pensando nisso, resolvi desenvolver esse sisteminha básico:




Código PHP:
//CHAT KILL PARA ANDROID
public OnPlayerDeath(playerid,killerid,reason)
{
new 
dm[200],nomek[MAX_PLAYER_NAME+1],nomem[MAX_PLAYER_NAME+1],weapon[78], arma GetWeaponName(reasonweaponsizeof weapon);
if(
IsPlayerConnected(killerid)) //verifica se o player não se suicidou
{
for(new 
iMAX_PLAYERSi++)
{
if(
IsPlayerConnected(i) && IsPlayerAndroid(i))
{

GetPlayerName(killeridnomeksizeof(nomek));
GetPlayerName(playeridnomemsizeof(nomem));
format(dm,200,"%s matou %s [%s]",nomek,nomem,arma); 
SendClientMessage(i,-1dm); 
}
}
}
return 
1




RE: Códigos Úteis - Sysner - 31/12/2021

Código:
// Essa função pesquisa os Nicks de jogador logado, retorna o ID do jogador se encontrar... senão acha retorna -1
stock findnomeplayer(nickplayer[]){

    new stringCmp[24], IntnameCmp = 0, MaxIntnameCmp = 0;
    new nameCmp[24];

    for(new i = 0; i < MAX_PLAYERS; i++){
        if(IsPlayerConnected(i)){
            //SendClientMessageToAll(0xEBEB00F6, nickplayer);

            format(nameCmp, 24, "%s", InfoPlayer[i][nome]);
            //SendClientMessageToAll( 0xEBEB00F6, nameCmp);

            if(strfind(nameCmp, nickplayer, true) != -1){
                IntnameCmp = strfind(nameCmp, nickplayer, true);
                //format(stringCmp, 24,"%i",IntnameCmp);
                //SendClientMessageToAll(0xEBEB00F6, stringCmp);

                MaxIntnameCmp = strlen(nickplayer);
                //format(stringCmp, 24,"%i",MaxIntnameCmp);
                //SendClientMessageToAll(0xEBEB00F6, stringCmp);

                strmid(stringCmp, nameCmp, IntnameCmp, MaxIntnameCmp);
                //SendClientMessageToAll(0xEBEB00F6, stringCmp);

                return i;
            }
        }
    }

    return -1;
}

// By Sysner

Útil para procurar um ID pelo Nick, sem ser necessário informar o Nick inteiro

Isso pode ser usado no seu comando /id por exemplo...


RE: Códigos Úteis - White_Blue - 25/03/2022

Vim trazer um código que nunca vi em nenhum lugar um código para pegar determinado dia da semana pode ser útil para um sistema de payday por exemplo a cada segunda você da o payday mas tá ai: stock GetWeekDay()
{
new WeekDay[20];
switch(((gettime()+334800)/86400-(gettime()+334800)/86400/7*7))
{
case 0: WeekDay = "Domingo";
case 1: WeekDay = "Segunda-Feira";
case 2: WeekDay = "Terça-Feira";
case 3: WeekDay = "Quarta-Feira";
case 4: WeekDay = "Quinta-Feira";
case 5: WeekDay = "Sexta-Feira";
case 6: WeekDay = "Sábado";
}
return WeekDay;
}


RE: Códigos Úteis - Carlos Victor - 26/03/2022

Função para remover uma arma específica de um jogador.

Código PHP:
RemovePlayerWeaponID(playeridweaponid)
{
    new weapons[13][2];

    for(new i13i++)
        GetPlayerWeaponData(playeridiweapons[i][0], weapons[i][1]);

    ResetPlayerWeapons(playerid);

    for(new i13i++)
        if(weapons[i][0] != && weapons[i][0] != weaponid)
            GivePlayerWeapon(playeridweapons[i][0], weapons[i][1]);
            
    
return 1;


Uso:
RemovePlayerWeaponID(playerid, 24) > Removerá a arma ID 24(Desert Eagle) do playerid.

by: nyft



SetPlayerVehiclePos - Rodrigo - 17/04/2022

Bom, fiz uma stock em que consiste você setar um jogador em um determinado veiculo, pelo seu ID. Recomendo utilizar em servidores como de exemplo um que seja no estilo DAYZ, pois você deverá colocar um ID de veiculo válido para ir até ele, é bom para usar em caso de perdas de veículos pelo mapa, ou algum tipo de hack.

Código:
stock SetPlayerVehiclePos(playerid, vehicleid)
{
    new Float:pos[3];
    if(!IsValidVehicle(vehicleid)) return SetPlayerPos(playerid, 0.0, 0.0, 0.0);
    GetVehiclePos(vehicleid, pos[0], pos[1], pos[2]);
    SetPlayerPos(playerid, pos[0], pos[1], pos[2]+1);
    SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(vehicleid));
    return 1;
}

Caso apareça algum erro dizendo que a função IsValidVehicle está indefinida, ponha a seguinte linha de código em sua gamemode:

Código:
#if !defined IsValidVehicle
    native IsValidVehicle(vehicleid);
#endif



RE: Códigos Úteis - White_Blue - 21/04/2022

função para admins teleportaram para a localização marcada no mapa

[quote pid="6078" dateline="1630762336"]

Código PHP:
public OnPlayerClickMap(playeridFloat:fXFloat:fYFloat:fZ)
{
    
SetPlayerPosFindZ(playeridfXfYfZ);
    return 
1;


[/quote]

Código:
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
if(!IsPlayerInAnyVehicle(playerid))
{
if(!IsPlayerAdmin(playerid)) return 1;
SetPlayerPos(playerid, fX, fY, fZ), SetPlayerInterior(playerid, 0);
} else
{
SendClientMessage(playerid, -1, "| ERRO | Saia do seu veículo para teleportar-se a localização marcada no mapa!");
}
return 1;
}

Funciona sem o bug do SetPlayerPosFindZ que o player atravessa o chão e 1 pouco melhorado com a função funcionando somente para admins logados na rcon e alguma melhoria ali

código para criar callbacks sem precisar dar o foward

Código PHP:
#define function%0(%1) forward %0(%1); public %0(%1) 


exemplo:
Código PHP:
public OnPlayerSpawn(playerid)
{
 
SetTimer("spawn"1000false);
 return 
1;
}

function 
spawn(playerid)
{
 
SpawnPlayer(playerid);
 
SendClientMessage(playerid, -1"Você spawnou :)");
 return 
1;