PDA

View Full Version : [Ajuda] Dúvidas Curtas #1


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [25] 26 27 28 29 30 31 32 33 34 35 36

23/06/2014, 07:27 PM
Como é x1, você faz uma variavel globa, na OnPayerDeath que a coisa funciona. Veja:



new Ganhou[MAX_PLAYERS char];

//OnPlayerDeath;

if(Ganhou[playerid]){
if(Ganhou[killerid]) {
// O Cara que ganhou o evento;
}



Acho que isso, fiz pega box mesmo. Qualquer duvida pergunta!

Obrigado, como vou saber quem eo ganhador?

ProKillerpa
23/06/2014, 07:36 PM
Com esse código ai amigo.

killerid = Quem Matou
playerid = Quem Morreu

Aonde eu deixei o comentário é onde você coloca a mensagem para o ganhador, depois puxa um else e manda pra quem perdeu.

Ley
24/06/2014, 04:56 PM
Estou com uma pequena dúvida que provavelmente pode ser até banal...

Vou explicar: Eu criei uma variável na qual será armazenada no arquivo.ini do usuário, digamos que essa variável tem o nome de "ponto".

A minha dúvida: Eu quero retirar a quantia que tem nessa variável, lembrando que utilizo uma enum para o salvamento geral das variáveis dos usuários.
Exemplo:
enum diretorioplayer {
ponto
}

Digamos que eu sete a variável "ponto" com um valor de 10:
diretorioplayer[playerid][ponto] = 10;

Agora para retirar uma determinada quantia? Tentei utilizar:
diretorioplayer[playerid][ponto] - 10;

Tentei também: DOF2_SetInt(diretorioplayer , "Gp", diretorioplayer[playerid][ponto] - 10);
Porém ambos sem sucesso, alguém poderia me ajudar?

Dolby
24/06/2014, 05:02 PM
Agora para retirar uma determinada quantia? Tentei utilizar:
diretorioplayer[playerid][ponto] - 10;

Tentei também: DOF2_SetInt(diretorioplayer , "Gp", diretorioplayer[playerid][ponto] - 10);
Porém ambos sem sucesso, alguém poderia me ajudar?

A segura forma está correta.

Desde que essa variável seja "pertencente" aos números reais, para "retirar" uma quantia você pode utilizar

DiretorioPlayer[playerid][ponto] -= 10;



Operadores. Teórico & Prático! (http://forum.sa-mp.com/showthread.php?t=240266)


Abraços.

Ley
24/06/2014, 05:08 PM
A segura forma está correta.

Desde que essa variável seja "pertencente" aos números reais, para "retirar" uma quantia você pode utilizar

DiretorioPlayer[playerid][ponto] -= 10;



Operadores. Teórico & Prático! (http://forum.sa-mp.com/showthread.php?t=240266)


Abraços.

Deu certo, muito obrigado :)

#EDIT

Tem como retirar as mensagens de login e desconecte dos usuários? Exemplo, quando o usuário entra no servidor, aparece a printf no log: [join] lala connect ...
Tem como retirar essas mensagens?

PT
27/06/2014, 01:21 PM
Sao nativas, nao tem como retirar.

arakuta
01/07/2014, 12:55 AM
A primeira GangZone criada retorna 0 ou 1?

ViniBorn
01/07/2014, 10:30 AM
A maioria dos IDs se inicia em 0

arakuta
01/07/2014, 01:14 PM
A maioria dos IDs se inicia em 0

Já fiz o teste e começa com 0 :D

Veículos começam com 1 '-'

PT
01/07/2014, 02:37 PM
ate os players começam em 0... acho estranho isso dos veiculos.

darkxdll
05/07/2014, 02:19 AM
Já fiz o teste e começa com 0 :D

Veículos começam com 1 '-'

Veiculos e objetos também .


FONTE : http://wiki.sa-mp.com/wiki/Starting_IDs

05/07/2014, 10:31 PM
Queria uma dica de como faço pra setar uma enum quando os players tiver off usando uma public?

caoraivoso3
06/07/2014, 10:25 AM
Queria uma dica de como faço pra setar uma enum quando os players tiver off usando uma public?
metes dentro da funcao as variaveis que queres resetar por exemplo
enum fodase
{
posx,
posy,
posz,
new zak[MAX_PLAYERS][fodase];
}
forward resetenum(playerid);
public resetenum(playerid)
{
zak[playerid][posx] = 0; //etc
return 1;
}

fazes assim mas depende de como quiseres restar tu e que sabes os valores iniciais.

06/07/2014, 03:19 PM
metes dentro da funcao as variaveis que queres resetar por exemplo
enum fodase
{
posx,
posy,
posz,
new zak[MAX_PLAYERS][fodase];
}
forward resetenum(playerid);
public resetenum(playerid)
{
zak[playerid][posx] = 0; //etc
return 1;
}

fazes assim mas depende de como quiseres restar tu e que sabes os valores iniciais.

Acho que voce não intendeu minha dúvida eu quero que a public set a enum para todos os players offline, por favor use [pawn] [/pawn .

Dolby
06/07/2014, 03:22 PM
Acho que voce não intendeu minha dúvida eu quero que a public set a enum para todos os players offline.

Na verdade você quer alterar o valor de uma variável para todos os jogadores, inclusive off-line. Para fazer isto basta criar um arquivo contendo todos os nomes dos jogadores, e depois percorrer linha por linha abrindo essas contas e alterando a variável desejada.

Abraços.

06/07/2014, 03:41 PM
Na verdade você quer alterar o valor de uma variável para todos os jogadores, inclusive off-line. Para fazer isto basta criar um arquivo contendo todos os nomes dos jogadores, e depois percorrer linha por linha abrindo essas contas e alterando a variável desejada.

Abraços.

Era isso mesmo obrigado.

SukMathcuck
14/07/2014, 10:08 PM
Qual melhor include 'objetos', meu servidor tem bastante objetos e quero uma include suportável alguém sabe uma?

MultiKill
14/07/2014, 10:53 PM
@SukMathcuck use streamer. (http://forum.sa-mp.com/showthread.php?t=102865)

darkxdll
28/07/2014, 01:18 AM
Vejo o pessoal todo postando neste tal de github , oque ele é ?
Estive um tempo fora , então não sei muito sobre ele , se alguém me responder , serei grato .

#LocalCerto?No?,Sorry

RebeloX
28/07/2014, 02:01 AM
Vejo o pessoal todo postando neste tal de github , oque ele é ?
Estive um tempo fora , então não sei muito sobre ele , se alguém me responder , serei grato .

#LocalCerto?No?,Sorry

Segundo a Wiki, o GitHub é um Serviço de Web Hosting Compartilhado para projetos que usam o controle de versionamento Git.

Agora tu perguntas-me, o que é o Git?

Segundo a Wiki, o Git é um sistema de controle de versão distribuído e um sistema de gerenciamento de código fonte, com ênfase em velocidade. Cada diretório de trabalho do Git é um repositório com um histórico completo e habilidade total de acompanhamento das revisões, não dependente de acesso a uma rede ou a um servidor central.

Por curtas palavras, o GitHub serve para partilhar projetos open-source, facilitando assim a sua manutenção.

WillyWonkaXP
03/08/2014, 12:43 AM
Alguem tem a include VBan para 0.3z?

zSuYaNw
04/08/2014, 03:19 AM
Alguem tem a include VBan para 0.3z?

Acho que não existe para esta versão, e tambem não é necessário... Pois as funcionalidades dela funciona no 0.3z.

Nekos
06/08/2014, 01:28 AM
Pessoal, estou com uma simples dúvida.
Como faço para comando X ser executado em um veículo de modelo especifico?

Dolby
06/08/2014, 01:35 AM
Pessoal, estou com uma simples dúvida.
Como faço para comando X ser executado em um veículo de modelo especifico?

Você quer que ao player entrar no veículo ele executar o comando, ou apenas permitir o comando se ele estiver em certo veículo?


GetVehicleModel (http://wiki.sa-mp.com/wiki/GetVehicleModel)

darkxdll
06/08/2014, 03:50 AM
É possível dentro da linguagem pawn , criar uma variável que só aceite números naturais ?

(0,1,2,3,4,...)

zSuYaNw
06/08/2014, 04:10 AM
É possível dentro da linguagem pawn , criar uma variável que só aceite números naturais ?

(0,1,2,3,4,...)

Creio que não.. mas pode fazer uma validação:



if(num < 0) {
// ERR
}

darkxdll
06/08/2014, 04:31 AM
Ah sim Suy , até pensei , mais não seria oque eu quero rsrs'

Obrigado =)

Dolby
06/08/2014, 01:26 PM
É possível dentro da linguagem pawn , criar uma variável que só aceite números naturais ?

(0,1,2,3,4,...)

Pawn é uma linguagem dinâmica e suas declarações são typeless, suas variáveis são do tipo signed, então elas também podem assumir valores negativos, mas com o Suyan citou, você pode fazer uma verificação(coisa que também seria necessária caso suas variáveis fossem unsigned, o valor atribuído seria atribuído normalmente, apenas não iria utilizar o primeiro bit como MSB (http://pt.wikipedia.org/wiki/Complemento_para_dois), gerando um valor totalmente diferente).

Ah sim Suy , até pensei , mais não seria oque eu quero rsrs'

Diga o que deseja fazer, talvez possamos dar possíveis soluções.


Abraços.

Liba.Nakajima
09/08/2014, 02:01 PM
Qual o id do objeto que geralmente é utilizado em loops nos mapas de DM?

Twizted
09/08/2014, 04:57 PM
Qual o id do objeto que geralmente é utilizado em loops nos mapas de DM?

3458 (vgncarshade1).

WillyWonkaXP
13/08/2014, 06:24 PM
Carbon Host nao faz upload de arquivos em formato dll, como fazer o upload...

darkxdll
13/08/2014, 06:27 PM
Carbon Host nao faz upload de arquivos em formato dll, como fazer o upload...

Pode ser que seu plano seja Linux e não Windows , tente utilizar o .so

Nekos
14/08/2014, 01:11 AM
Estou uma uma dúvida bem "idiota". Não sei mas agora ele não quer pegar. Tudo funciona, mas na hora de abrir a MSGBOX para alguns das case nenhuma funciona.


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
//Acessando Menu
if(dialogid == duMenu)
{
if(response){ShowPlayerDialog(playerid, duInfo, DIALOG_STYLE_LIST, "Universidade de Blueberry - Menu","{D7D6D6}Fazer Matrícula\n{D7D6D6}Cancelar Matrícula\n{D7D6D6}Matérias\n{D7D6D6}Trancar Matéria\n{D7D6D6}Horários","Acessar","Cancelar");}
else{}
return 1;
}

//Acessando as guias do menu
if(dialogid == duInfo)
{
if(!response)
{
switch(listitem)
{
case 0: ShowPlayerDialog(playerid, duFazerMatricula, DIALOG_STYLE_MSGBOX,"Universidade de Blueberry - Fazer Matrícula","----","Prosseguir","Cancelar");
case 1: ShowPlayerDialog(playerid, duCancelarMatricula, DIALOG_STYLE_MSGBOX,"Universidade de Blueberry - Cancelar Matrícula","----","Prosseguir","Cancelar");
case 2: ShowPlayerDialog(playerid, duMatriculas, DIALOG_STYLE_MSGBOX,"Universidade de Blueberry - Matrículas","----","Prosseguir","Cancelar");
case 3: ShowPlayerDialog(playerid, duTrancarMatricula, DIALOG_STYLE_MSGBOX,"Universidade de Blueberry - Trancar Matrícula","----","Prosseguir","Cancelar");
case 4: ShowPlayerDialog(playerid, duHorarios, DIALOG_STYLE_MSGBOX,"Universidade de Blueberry - Horários","----","Prosseguir","Cancelar");
}
}
return 1;
}
return 1;
}

Dolby
14/08/2014, 01:14 AM
Estou uma uma dúvida bem "idiota". Não sei mas agora ele não quer pegar. Tudo funciona, mas na hora de abrir a MSGBOX para alguns das case nenhuma funciona.


Botão "Acessar" = response, ou seja, tem valor 1.
Botão "Cancelar" = !response, ou seja, tem valor 0.

Apenas retire o operador NOT.

Nekos
19/08/2014, 01:59 AM
Alguém sabe como posso criar/utilizar um Fader? (Tentei usar do Stewie, mas não estava pegando estava tudo correto)

PT
19/08/2014, 05:34 AM
Alguém sabe como posso criar/utilizar um Fader? (Tentei usar do Stewie, mas não estava pegando estava tudo correto)

Da uma olhada nesse: http://forum.sa-mp.com/showthread.php?t=124091

Schocc
19/08/2014, 03:52 PM
Alguém sabe como posso criar/utilizar um Fader? (Tentei usar do Stewie, mas não estava pegando estava tudo correto)

Como criar um Screen Fading
http://forum.sa-mp.com/showthread.php?t=389280

Outra include.
http://forum.sa-mp.com/showthread.php?t=124091

Pocahontas
20/08/2014, 09:40 PM
Há como criar pastas de destino com DOF2? se não, há como com funções da file.inc?

PT
20/08/2014, 09:44 PM
Há como criar pastas de destino com DOF2? se não, há como com funções da file.inc?

Nao tem como, mas tem plugins que fazem isso so procurar.

Nenzittow
21/08/2014, 07:07 PM
Como se coloca um vídeo do youtube aqui no fórum ?

Nekos
22/08/2014, 12:15 AM
Pessoal, como posso fazer um que ao player chegar em tal area aparece uma textdraw ao ele sair daquela area ela some? Agradeço desde já.

Bruno_Cyra
22/08/2014, 05:34 AM
Como se coloca um vídeo do youtube aqui no fórum ?

http://link_do_youtube

tipo:

http://www.youtube.com/watch?v=btPJPFnesV4 <-- sem o espaço

Pessoal, como posso fazer um que ao player chegar em tal area aparece uma textdraw ao ele sair daquela area ela some? Agradeço desde já.

você precisa verificar se o player esta dentro dela constantemente, por exemplo

se(player esta dentro da area)
se(ele NÃO estava dentro da area)
Mostrar textdraw
senão
se(ele ESTAVA dentro da area)
Ocultar textdraw
fim se
fim se

traduzindo em pawn seria algo assim

http://pastebin.com/iRTNXmra

Nenzittow
22/08/2014, 10:31 AM
Estou a falar de vídeo, não de url ...

Bruno_Cyra
22/08/2014, 01:39 PM
Estou a falar de vídeo, não de url ...

videos do youtube são anexados através da tag url

veja:

http://www.youtube.com/watch?v=btPJPFnesV4

http://www.youtube.com/watch?v=btPJPFnesV4

Nekos
23/08/2014, 06:13 PM
Alguém sabe porque não consigo utilizar OnDialogReponse no FS? Está tudo correto passei todo código para gamemode e pegou normalmente, mas preciso que ele funcione no Filterscript

Pocahontas
23/08/2014, 08:56 PM
Alguém sabe porque não consigo utilizar OnDialogReponse no FS? Está tudo correto passei todo código para gamemode e pegou normalmente, mas preciso que ele funcione no Filterscript

Pode ser conflito com alguma função, faça um debug para ver..

PT
24/08/2014, 11:28 PM
Alguém sabe porque não consigo utilizar OnDialogReponse no FS? Está tudo correto passei todo código para gamemode e pegou normalmente, mas preciso que ele funcione no Filterscript

Verifique se nao e conflito de ids das dialogs.

sofina
25/08/2014, 11:40 AM
Qual a diferença em criar variáveis destas duas formas?

new nome,
cidade,
estado
;

new nome;
new cidade;
new estado;

SeV_
25/08/2014, 12:08 PM
Qual a diferença em criar variáveis destas duas formas?

new nome,
cidade,
estado
;

new nome;
new cidade;
new estado;


Nenhuma.

Rodney Francalim
25/08/2014, 12:32 PM
Alguém sabe porque alguns objetos que ficam em interiores, não aparecem no meu SA-MP?

É estranho, porque no MTA eles aparecem normalmente, mas no SA-MP só aparece a 'casa' do interior. E alguns objetos pequenos.

É o caso da 24/7 (Interior: 6 | XYZ: -26.691598, -55.714897, 1003.54687)

@EDIT
E é bem bizarro, porque o interior onde os objetos carregavam, não carregam mais. E no que não carregavam, agora carregam.

@EDIT2
MeuDeus! Agora os 3 carregaram normalmente. Mas ainda assim, alguém sabe o porquê disso?

SkullFire
25/08/2014, 03:19 PM
Alguém sabe porque alguns objetos que ficam em interiores, não aparecem no meu SA-MP?

É estranho, porque no MTA eles aparecem normalmente, mas no SA-MP só aparece a 'casa' do interior. E alguns objetos pequenos.

É o caso da 24/7 (Interior: 6 | XYZ: -26.691598, -55.714897, 1003.54687)

@EDIT
E é bem bizarro, porque o interior onde os objetos carregavam, não carregam mais. E no que não carregavam, agora carregam.

@EDIT2
MeuDeus! Agora os 3 carregaram normalmente. Mas ainda assim, alguém sabe o porquê disso?

Objetos sendo criados em virtualworld diferente do interior ?Tenta ver isso.

Rodney Francalim
25/08/2014, 08:45 PM
Isso.

É por conta do meu sistema de empresas.

Cada ID de uma empresa representa um VW diferente.

sofina
27/08/2014, 11:08 PM
Estou a criar um gamemode em MySQL para salvamento. Vocês me recomendam quais outras includes para a criação de comandos, mapas, entre outros.

Bruno_Cyra
28/08/2014, 12:51 AM
eu atualmente uso o plugin mysql do BlueG
entra ai no tópico dele, é bem completo

http://forum.sa-mp.com/showthread.php?t=56564

Dayvison_
29/08/2014, 01:28 AM
Alguem ae sabe como eu paço para zcmd este comando?

if(strcmp(cmd, "/ereparar", true) == 0 && (Evento == 1) && PlayerInfo[playerid][pAdmin] >= 3)
{
for(new possiveis = 0; possiveis < MAX_PLAYERS; possiveis++) if(PlayerNoEvento[possiveis] == 1)
{
if(IsPlayerInAnyVehicle(possiveis))
{
RepairVehicle(GetPlayerVehicleID(possiveis));
}
}
GetPlayerName(playerid,admnick, 24);
format(streventu, 128, "[Evento] O administrador %s concertou todos os veiculos do evento.", admnick);
SendClientMessageToAll(COLOR_YELLOW, streventu);
return 1;
}

Rodney Francalim
29/08/2014, 01:41 AM
Alguem ae sabe como eu paço para zcmd este comando?

if(strcmp(cmd, "/ereparar", true) == 0 && (Evento == 1) && PlayerInfo[playerid][pAdmin] >= 3)
{
for(new possiveis = 0; possiveis < MAX_PLAYERS; possiveis++) if(PlayerNoEvento[possiveis] == 1)
{
if(IsPlayerInAnyVehicle(possiveis))
{
RepairVehicle(GetPlayerVehicleID(possiveis));
}
}
GetPlayerName(playerid,admnick, 24);
format(streventu, 128, "[Evento] O administrador %s concertou todos os veiculos do evento.", admnick);
SendClientMessageToAll(COLOR_YELLOW, streventu);
return 1;
}


//if(strcmp(cmd, "/ereparar", true) == 0 && (Evento == 1) && PlayerInfo[playerid][pAdmin] >= 3)
CMD:ereparar( playerid )
{
if( Evento != 1 || PlayerInfo[ playerid ][ pAdmin ] < 3 ) return 1;
for(new possiveis = 0; possiveis < MAX_PLAYERS; possiveis++)
{
if(PlayerNoEvento[possiveis] == 1)
{
if(IsPlayerInAnyVehicle(possiveis))
{
RepairVehicle(GetPlayerVehicleID(possiveis));
}
}
}
GetPlayerName(playerid,admnick, 24);
format(streventu, 128, "[Evento] O administrador %s concertou todos os veiculos do evento.", admnick);
SendClientMessageToAll(COLOR_YELLOW, streventu);
return 1;
}

Lucas_HenryK
30/08/2014, 01:03 AM
Sabem me dizer se é possivel usar algo assim:

format(STR, sizeof(STR), "{FFFFFF}1: {COR_GANSTER}Ganster: {FFFFFF}%s", GangInfo[1][Lideranca]);

Uma cor definida por

#define NOME_COR 0xA1B2C3FF

e usar

{NOME_COR}

em uma formatação. é possivel?

Rodney Francalim
30/08/2014, 01:10 AM
Sabem me dizer se é possivel usar algo assim:

format(STR, sizeof(STR), "{FFFFFF}1: {COR_GANSTER}Ganster: {FFFFFF}%s", GangInfo[1][Lideranca]);

Uma cor definida por

#define NOME_COR 0xA1B2C3FF

e usar

{NOME_COR}

em uma formatação. é possivel?

#define NOME_COR "{A1B2C3}"

// Exemplo...
SendClientMessage( playerid, -1, "Meu nome é "NOME_COR"Lucas_HenryK" );

sofina
30/08/2014, 12:58 PM
Qual o melhor método de criação de um servidor? Separar os sistemas em arquivos diferentes e rodá-los como Include ou simplesmente fazer como os normais(tudo junto)?

E meio que um pedido, né, vamos lá: Além de MySQL, poderiam me falar quais as outras includes que são consideradas velozes na programação?

Dolby
30/08/2014, 01:05 PM
Qual o melhor método de criação de um servidor? Separar os sistemas em arquivos diferentes e rodá-los como Include ou simplesmente fazer como os normais(tudo junto)?

E meio que um pedido, né, vamos lá: Além de MySQL, poderiam me falar quais as outras includes que são consideradas velozes na programação?

Isso vai de cada programador, faça do modo que achar melhor, do modo que vai te deixar mais ciente do que qualquer parte faz.

Quanto as includes, depende das funcionalidades que você deseja. Mas não priorize somente a velocidade.

sofina
30/08/2014, 01:11 PM
Isso vai de cada programador, faça do modo que achar melhor, do modo que vai te deixar mais ciente do que qualquer parte faz.

Quanto as includes, depende das funcionalidades que você deseja. Mas não priorize somente a velocidade.

Entendi, entendi.

E quanto as includes, digo aquelas que vocês recomendam. Exemplo: ZCMD para processador de comandos, SSCANF2, etc.

É que estou a criar alguns game-modes em MySQL para estudar melhor a linguagem.

Dolby
30/08/2014, 01:13 PM
Entendi, entendi.

E quanto as includes, digo aquelas que vocês recomendam. Exemplo: ZCMD para processador de comandos, SSCANF2, etc.

É que estou a criar alguns game-modes em MySQL para estudar melhor a linguagem.

Se quer um banco de dados remoto, use MySQL. Mas caso deseja apenas salvar algumas variáveis, use DOF2.

ZCMD e Sscanf já supre todas as necessidades.

sofina
30/08/2014, 01:15 PM
Se quer um banco de dados remoto, use MySQL. Mas caso deseja apenas salvar algumas variáveis, use DOF2.

ZCMD e Sscanf já supre todas as necessidades.

Entendi. Muito obrigado pela ajuda, Dolby!

Living
31/08/2014, 07:40 PM
Qual a função que pega a que um player ta mirando no outro? exemplo eu passo a mira da arma encima da skin de outro cara e ai vamos supor eu coloco p aparecer uma draw qnd mirar...

s4kuL
31/08/2014, 07:54 PM
Qual a função que pega a que um player ta mirando no outro? exemplo eu passo a mira da arma encima da skin de outro cara e ai vamos supor eu coloco p aparecer uma draw qnd mirar...

Talvez isso ajude:

http://wiki.sa-mp.com/wiki/GetPlayerTargetPlayer

Cor3y
31/08/2014, 07:58 PM
Tem o SQLite também, que é nativo.

s4kuL
31/08/2014, 09:37 PM
Alguém pode me dizer onde estou errando? quando da 1 minuto para acabar o round, o sistema não conta os segundos, já termina o round;;

new
RoundMinutos = 4,
RoundSegundos = 60
;

SetTimer("AcabarAD", RoundMinutos*RoundSegundos*1000, false);

public Atualizacao()
{
format(StringLucas, sizeof(StringLucas), "~r~Ataque ~w~%d-%d ~b~Defesa",AtaqueKills,DefesaKills);
TextDrawSetString(Text:Textdraw0, StringLucas);

format(StringLucas, sizeof(StringLucas), "~y~Tempo: ~w~%02d:%02d",RoundMinutos,RoundSegundos);
TextDrawSetString(Text:Textdraw1, StringLucas);

RoundSegundos --;

if(RoundSegundos == 0)
{
RoundMinutos -= 1;
RoundSegundos = 60;
}
}

Spectral
31/08/2014, 10:55 PM
Como faço para Salvar um AttachdObject em DOF2?
Sou meio leigo nisso e fiz assim:
//Aqui para criar o arquivo com o nick do player
public OnPlayerConnect(playerid)
{
new str[128], name[32];
GetPlayerName(playerid, name, sizeof(name));
format(str, sizeof(str), "brq/%s.ini", name);
if(!DOF2_FileExists(str))
{
DOF2_CreateFile(str);
DOF2_SetInt(str, "Objeto", 0);
}
return 1;
}
//Aqui para carregar quando ele spawnar
public OnPlayerSpawn(playerid)
{
new str[50], nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
format(str, sizeof(str), "brq/%s.txt", nome);
DOF2_GetInt(str, "Objeto");
return 1;
}
//Setando o objeto
SetPlayerAttachedObject(playerid, 0, 19330, 2, 0.166000, -0.038999, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000);
SetPlayerAttachedObject(playerid, 0, 19488, 2, 0.121999, 0.000000, -0.005999, -83.199966, 98.200027, -2.500000, 1.000000, 1.000000, 1.000000);
SalvarObjeto(playerid);

//Usando um Stock para salvar
stock SalvarObjeto(playerid)
{
new str[50], nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
format(str, sizeof(str), "brq/%s.txt", nome);
DOF2_SetInt(str, "Objeto", 0);
DOF2_SaveFile();
return 1;
}


Mas não salvou. Cria o arquivo com o nick, mas não cria nada dentro.
Onde estou errando?
Ps.: Eu não esqueci do DOF2_Exit, só não coloquei aqui.

Living
01/09/2014, 12:29 AM
Preciso do sound daquele sininho, " tím" kk obg +rep p qm me falar

Dayvison_
01/09/2014, 12:41 AM
Preciso do sound daquele sininho, " tím" kk obg +rep p qm me falar

17802

Nekos
02/09/2014, 04:23 AM
Olá pessoal, estou com um problema simples mas não consegui entrar o erro.
Eu inicio checkpoint tudo ok, mas ao cehgar no segundo checkpoint ele não delete ele e seta o terceiro e fica parado lá.

Code: Pastebin (http://pastebin.com/TSzMsy1E)

Dayvison_
02/09/2014, 02:58 PM
Duvida simples como faço para ter um numero que seriam random de 3000~5000 algm me explica?

Rodney Francalim
02/09/2014, 03:05 PM
Duvida simples como faço para ter um numero que seriam random de 3000~5000 algm me explica?

new
var
;

var = random(5000) + 3000; // Seria de 0 até 4999 + 3000
var = random(5000); // Seria de 0 até 4999
var = random(800); // Será de 0 até 799
var = random(1000) - 200; // Seria de 0 até 999 - 200

Dayvison_
02/09/2014, 03:20 PM
o pawno trava :/
Nome do Evento de Problema: APPCRASH
Estava antes assim:

#define GranaRoubo 1500

Se eu colocar em variavel trava o pawn, Então posso colocar assim:

#define GranaRoubo random(5000)

ViniBorn
02/09/2014, 03:20 PM
new
var
;

var = random(5000) + 3000; // Seria de 0 até 4999 + 3000
var = random(5000) // Seria de 0 até 4999
var = random(800) // Será de 0 até 799
var = random(1000) - 200 // Seria de 0 até 999 - 3000


Isso tá errado Rodney.


var = random(1000) - 200 // Seria de 0 até 999 - 3000


Quanto à pergunta : 3000+random(2001)

Dayvison_
02/09/2014, 03:24 PM
Isso tá errado Rodney.


var = random(1000) - 200 // Seria de 0 até 999 - 3000


Quanto à pergunta : 3000+random(2001)

Ja tentei de sua forma tbm vini mas tbm da erro

ViniBorn
02/09/2014, 03:31 PM
Como exatamente você colocou?

Fazendo assim não tem motivo pra dar problema

#define GranaRoubo 3000+random(2001)

Dayvison_
02/09/2014, 03:33 PM
Como exatamente você colocou?

Fazendo assim não tem motivo pra dar problema

#define GranaRoubo 3000+random(2001)

Desculpe, em define ele copila normal mas o valor saira random né?
em variavel o pawno.exe trava ao copilar
@edit consegui copilar como variavel tbm so mudar ela de globa para local :D

Rodney Francalim
02/09/2014, 04:22 PM
Isso tá errado Rodney.


var = random(1000) - 200 // Seria de 0 até 999 - 3000


Quanto à pergunta : 3000+random(2001)

Eu não fui muito bem alfabetizado. :p

Vou editar.

@EDIT
Até do ; eu esqueci.

Dayvison_
02/09/2014, 10:26 PM
Qual includes para salvamentos é a MELHOR: Y_INI, DOF2, MySQL, BINI ou BCINI? No forum pelo o que eu li são estas mas qual?(Se tiver outra posta ae tbm pliz)
Usar uma include para diminuir o tamanho da amx exemplo da betabits e aconselhavel?
Bom a dificuldade da include não importa eu to aqui para aprender.
So tenho certeza mesmo na include Y_CMD para processar comandos obg respondam ae pliz

ViniBorn
02/09/2014, 10:44 PM
Depende se você quer segurança, velocidade, facilidade.

Dayvison_
02/09/2014, 10:46 PM
Depende se você quer segurança, velocidade, facilidade.

Existe alguma com os 3 requisitos?
@EDIT tão falando cmg no skype q para ter este tipo de sign (http://gzs.skilledg.com/sign.php?sid=1&id=1) no servidor precisa ser em MySQL e verdade?

Rodney Francalim
03/09/2014, 12:29 AM
Qual includes para salvamentos é a MELHOR: Y_INI, DOF2, MySQL, BINI ou BCINI? No forum pelo o que eu li são estas mas qual?(Se tiver outra posta ae tbm pliz)
Usar uma include para diminuir o tamanho da amx exemplo da betabits e aconselhavel?
Bom a dificuldade da include não importa eu to aqui para aprender.
So tenho certeza mesmo na include Y_CMD para processar comandos obg respondam ae pliz

ZCMD é mais rápida que Y_CMD, não?

O próprio Y_Less fez os testes.

Dolby
03/09/2014, 12:35 AM
Eu não vejo necessidade de se importar tanto com o "mais rápido" nesse caso. O mais viável é escolher a praticidade, o que mais lhe agrada. Eu mesmo sempre que vou fazer algo, utilizo ZCMD, DOF2 e Sscanf.

Resumindo: Não vejo tanta necessidade de priorizar velocidade se tratando de SA-MP.

Dayvison_
03/09/2014, 12:53 AM
Mas e quanto a este tipo de sign (http://gzs.skilledg.com/sign.php?sid=1&id=1) e necessario MySQL para tela?

Kimossab
03/09/2014, 01:21 AM
Mas e quanto a este tipo de sign (http://gzs.skilledg.com/sign.php?sid=1&id=1) e necessario MySQL para tela?

Sim. Nao vale a pena aprofundar mais na matéria.

Para guardar informação usa o que gostares mais e que te sintas mais à vontado, o mesmo para o y_cmd ou zcmd. A diferenças de velocidade são minimas, na pratica nao sentes diferenças na velocidade.

Se quiseres "mais m para a lista": http://forum.sa-mp.com/showthread.php?t=187720

PT
03/09/2014, 01:46 AM
ZCMD é mais rápida que Y_CMD, não?

O próprio Y_Less fez os testes.

errado a YCMD mais recente e mais rapida que ZCMD

Dayvison_
03/09/2014, 02:55 PM
ZCMD é mais rápida que Y_CMD, não?

O próprio Y_Less fez os testes.

Eu não quer YCMD apenas para velocidade quero pelo seu parametro help gostei muito dele '-'
e o de renomear comandos

Nekos
05/09/2014, 04:56 PM
Pessoal, estou fazendo sistema de rotas para profissão de lixeiro. Fiz todas rotas, mas fiquei em duvida de como posso fazer o sistema random para cair rotas aleatorias na hora de executar o comando.

Eu não tenho minima ideia de como posso fazer o sistema random usando as variaveis para executar as rotas. Apenas sei usar random com aquelas coordenadas.

ViniBorn
05/09/2014, 05:27 PM
Se as rotas estão definidas em uma variável, é só colocar o random para definir o índice a ser usado.

Nekos
07/09/2014, 01:32 AM
Pessoal, estou trabalhando no sistema de coleta de lixo. Mas se tiver dois jogadores perto e estiverem na mesma rua coletando lixo. O único jogador que chegou na rua não consegue coletar nenhum. Mas pickup simplesmente passa e somem. E quem estava lá antes pega normalmente os lixo. Também a varíavel Empregado se um player é aceito, todos online também são aceitos mesmo se não usarem comando pra deixar curriculo.

Pastebin: http://pastebin.com/BXjhje6z

sofina
15/09/2014, 02:13 PM
#RESOLVIDO

WeepScripter
15/09/2014, 10:45 PM
Alguem me ajuda a ser um bom mapper ? sou um lixo e gostaria de ser um bom mapper skype WeepKalcon

PT
15/09/2014, 10:59 PM
Alguem me ajuda a ser um bom mapper ? sou um lixo e gostaria de ser um bom mapper skype WeepKalcon

Use o chat topic (http://forum.sa-mp.com/showthread.php?t=531296), ele está aí para isto. Vamos com calma pequeno gafanhoto, não há necessidade de se ofender dessa forma. O importante você tem, vontade de aprender, agora basta exercitar sua criatividade.
....

Kimossab
16/09/2014, 12:55 AM
Alguem me ajuda a ser um bom mapper ? sou um lixo e gostaria de ser um bom mapper skype WeepKalcon

A unica coisa que é precisa para ser um bom maper é paciencia. Sem ela não fazes nada de jeito. Tens de ter atenção aos promenores pois sao eles que definem um bom ou mau mapa. E tens de saber o que queres exatamente fazer.

Dayvison_
18/09/2014, 11:14 PM
Alguem poderia me explicar oq cada native da .inc C_Serial faz?
aki consegui resolver algumas:

/*
C-Serial

native SerialBanPlayer(playerid, BanPlayer=true); = Não sei oq faz :/
native RemoveSerialBan(serial[]); = Retira um serial da lista "Da um Desban nele"
native IsPlayerSerialBanned(playerid); = Verifica serial ta banido
native OnPlayerSerialBanned(playerid); = = Não sei oq faz :/
native AddSerialBan(serial[]); = Adiciona um serial na lista "Da um Ban nele"
*/

Kimossab
19/09/2014, 01:47 AM
Envia o link do include, ou seja do ficheiro .inc e talvez consiga descobrir

ZaturN
19/09/2014, 02:02 AM
Como faço para criar um sistema que dure por dias? por exemplo um de vip. Em strtok, strcmp

PT
19/09/2014, 03:13 PM
Como faço para criar um sistema que dure por dias? por exemplo um de vip. Em strtok, strcmp

obtem o tempo atual na hora que é dado, salva e depois compara o tempo atual com o tempo salvo, assim sabe quanto tempo passou....

Dayvison_
19/09/2014, 08:22 PM
Envia o link do include, ou seja do ficheiro .inc e talvez consiga descobrir


//=====================================
#define STORAGE_POSITION ("SerialBans.txt")
#define SERIAL_SIZE (25)
#define FILE_SIZE (516)
#define STR_SIZE (90)
//=====================================
native gpci ( playerid, serial [ ], maxlen );
//=====================================
forward OnPlayerSerialBanned(playerid);
//=====================================
static
File:SerialFile,
PlayerSerial[SERIAL_SIZE],
cserialstring[STR_SIZE],
Bans[FILE_SIZE]
;
//=====================================
stock AddSerialBan(serial[]) {
if(!fexist(STORAGE_POSITION)) return 0;
SerialFile = fopen(STORAGE_POSITION, io_append);
gpci(playerid, PlayerSerial, sizeof PlayerSerial);
format(cserialstring, sizeof cserialstring, "%s\r\n", PlayerSerial);

fwrite(SerialFile, cserialstring);
fclose(SerialFile);
}
stock SerialBanPlayer(playerid) {
if(!fexist(STORAGE_POSITION))
SerialFile = fopen(STORAGE_POSITION, io_write);
else
SerialFile = fopen(STORAGE_POSITION, io_append);

gpci(playerid, PlayerSerial, sizeof PlayerSerial);
format(cserialstring, sizeof cserialstring, "%s\r\n", PlayerSerial);

fwrite(SerialFile, cserialstring);
fclose(SerialFile);
OnPlayerSerialBanned(playerid);
return 1;
}
stock RemoveSerialBan(serial[]) {
if(!fexist(STORAGE_POSITION)) return 0;

SerialFile = fopen(STORAGE_POSITION, io_read);
fread(SerialFile, Bans);
fclose(SerialFile);

strdel(Bans, strfind(Bans, serial), strlen(serial));
fremove(STORAGE_POSITION);

SerialFile = fopen(STORAGE_POSITION, io_write);
fwrite(SerialFile, Bans);
fclose(SerialFile);
return 1;
}

stock IsPlayerSerialBanned(playerid) {
if(!fexist(STORAGE_POSITION)) return 0;

gpci(playerid, PlayerSerial, sizeof PlayerSerial);
SerialFile = fopen(STORAGE_POSITION, io_read);
fread(SerialFile, Bans);
fclose(SerialFile);

if(strfind(Bans, PlayerSerial, true) != -1) return 1;
return 0;
}

Dayvison_
21/09/2014, 12:44 AM
Alguem pode me ajudar a me falar oq cada função desta faz?

//=====================================
#define STORAGE_POSITION ("SerialBans.txt")
#define SERIAL_SIZE (25)
#define FILE_SIZE (516)
#define STR_SIZE (90)
//=====================================
native gpci ( playerid, serial [ ], maxlen );
//=====================================
forward OnPlayerSerialBanned(playerid);
//=====================================
static
File:SerialFile,
PlayerSerial[SERIAL_SIZE],
cserialstring[STR_SIZE],
Bans[FILE_SIZE]
;
//=====================================
stock AddSerialBan(serial[]) {
if(!fexist(STORAGE_POSITION)) return 0;
SerialFile = fopen(STORAGE_POSITION, io_append);
gpci(playerid, PlayerSerial, sizeof PlayerSerial);
format(cserialstring, sizeof cserialstring, "%s\r\n", PlayerSerial);

fwrite(SerialFile, cserialstring);
fclose(SerialFile);
}
stock SerialBanPlayer(playerid) {
if(!fexist(STORAGE_POSITION))
SerialFile = fopen(STORAGE_POSITION, io_write);
else
SerialFile = fopen(STORAGE_POSITION, io_append);

gpci(playerid, PlayerSerial, sizeof PlayerSerial);
format(cserialstring, sizeof cserialstring, "%s\r\n", PlayerSerial);

fwrite(SerialFile, cserialstring);
fclose(SerialFile);
OnPlayerSerialBanned(playerid);
return 1;
}
stock RemoveSerialBan(serial[]) {
if(!fexist(STORAGE_POSITION)) return 0;

SerialFile = fopen(STORAGE_POSITION, io_read);
fread(SerialFile, Bans);
fclose(SerialFile);

strdel(Bans, strfind(Bans, serial), strlen(serial));
fremove(STORAGE_POSITION);

SerialFile = fopen(STORAGE_POSITION, io_write);
fwrite(SerialFile, Bans);
fclose(SerialFile);
return 1;
}

stock IsPlayerSerialBanned(playerid) {
if(!fexist(STORAGE_POSITION)) return 0;

gpci(playerid, PlayerSerial, sizeof PlayerSerial);
SerialFile = fopen(STORAGE_POSITION, io_read);
fread(SerialFile, Bans);
fclose(SerialFile);

if(strfind(Bans, PlayerSerial, true) != -1) return 1;
return 0;
}

ZaturN
21/09/2014, 04:23 AM
obtem o tempo atual na hora que é dado, salva e depois compara o tempo atual com o tempo salvo, assim sabe quanto tempo passou....

Pra fazer isso do tempo é com SetTimer ? ou por aquele bagaça de gettime algo assim que é do relogio?

SatanMessenger
21/09/2014, 05:49 AM
Como deixo o Update3DTextLabelText Transparente?

F_Cinco
21/09/2014, 02:19 PM
Eae pessoal, blz?
Alguém pode me esclarecer pq o auto-complete no notepadd++ n está funcionando? Segui todos os parâmetros da postagem do Lós... Até consigo compilar numa boa, sem erros. Porém o auto-complete, nem as cores bem diferenciadas estão aparecendo.

Grato!

Rodney Francalim
21/09/2014, 05:15 PM
Como deixo o Update3DTextLabelText Transparente?

Update3DTextLabelText(label, 0xFFFFFF00, "Você não me vê. rsrsrsrsrsrsrsrsrsrsrs");

0xFFFFFFFF = Mais opaco.
0xFFFFFF88 = Mais opaco do que menos.
0xFFFFFF77 = Menos opaco do que mais.
0xFFFFFF00 = Invisível.

Sky™
22/09/2014, 11:56 AM
Alguém sabe se a função

CreatePlayerTextDraws (http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw)
e
TextDrawCreate (http://wiki.sa-mp.com/wiki/TextDrawCreate)

podem entrar em conflito usando ambas no mesmo gamemode ? ou se é possível haver conflitos fazendo a criação de textdraws por meio de uma include ?

Queria saber se alguém ja viu ou ouviu falar sobre algum bug na função CreatePlayerTextDraws (http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw) :D


Att, Sky™

PT
22/09/2014, 01:42 PM
Alguém sabe se a função

CreatePlayerTextDraws (http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw)
e
TextDrawCreate (http://wiki.sa-mp.com/wiki/TextDrawCreate)

podem entrar em conflito usando ambas no mesmo gamemode ? ou se é possível haver conflitos fazendo a criação de textdraws por meio de uma include ?

Queria saber se alguém ja viu ou ouviu falar sobre algum bug na função CreatePlayerTextDraws (http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw) :D


Att, Sky™

Uso ambas as funcoes e atraves de include e nunca tive problemas, que eu saiba ate é metodo de vc se organizar melhor pois o limite de criar textdraws por player e relativamente baixo.

RiqueP
29/09/2014, 07:44 PM
Dúvida, oque o plugin MapAndreas faz exatamente ? o tradutor deixo meio desorganizado e errado =/

zqkRazer
29/09/2014, 09:27 PM
Essa include pode bloquear tags tipo [CLAN] usando "[" e "]" ?


#include <dof2>

#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
/*cores*/
#define amarelo 0xFFFF00AA
#define verde 0x33FF33AA
#define vermelho 0xFF0000AA
#define vermelhoescuro 0xAA3333AA
#define branco 0xFFFFFFAA
#define rosa 0xCCFF00FFAA
#define azul 0x057ABDAA
#define cinza 0xC0C0C0AA
#define yellow 0xFFFF00AA
#define laranja 0xFFA500AA

stock HexToInt(string[])
{
new i = 0;
new cur = 1;
new res = 0;
for (i = strlen(string); i > 0; i--)
{
if (string[i-1] < 58) res = res + cur*(string[i-1] - 48); else res = res + cur*(string[i-1] - 65 + 10);
cur = cur*16;
}
return res;
}

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

stock GangF(gang[])
{
new file[128];
format(file,128,"gangs/%s",gang);
return file;
}

stock FormatGang(gang)
{
new file[128];
format(file,128,"gangs/%d.gang",gang);
return file;
}

stock FormatTerri(gang)
{
new file[128];
format(file,128,"gangs/%d.terri",gang);
return file;
}

stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return 1;
return 0;
}

Tipo tenho um fs de gangs e nao salva pra quem tem o nome com "[ ]"

Dayvison_
02/10/2014, 11:36 PM
3 pequenas duvidas:
1° usar muitas includes tip umas 7 atrapalha?
2° Alguem sabe um tuto da .inc fixes?
3° Quando a pessoa pula de um aviao ou cai de interior no samp e ela esta com paraquedas ela morre por queda antes de chegar no chao na verdade logo apos cair existe como concetar?

Lós
04/10/2014, 05:48 PM
3 pequenas duvidas:
1° usar muitas includes tip umas 7 atrapalha?
2° Alguem sabe um tuto da .inc fixes?
3° Quando a pessoa pula de um aviao ou cai de interior no samp e ela esta com paraquedas ela morre por queda antes de chegar no chao na verdade logo apos cair existe como concetar?

1º Não. Ah não ser que aconteça algum tipo de conflito entre elas.
2º A fixes não existe tutorial, basta adiciona-la após o a_samp.inc e a include está funcionando.
3º Sim, retire a pessoa do interior.

_Play_
07/10/2014, 06:53 PM
Qual o melhor processador de comandos entre DCMD e ZCMD?

Dolby
07/10/2014, 06:58 PM
Qual o melhor processador de comandos entre DCMD e ZCMD?

Definitivamente ZCMD.

_Play_
07/10/2014, 07:14 PM
Definitivamente ZCMD.

vlw quando puder tu dou +rep!

e me explica uma coisa antes eu usava DCMD ai na public OnPlayerCommandText tinha dcmd(comandos, cmdtext); não precisa colocar isso mais não?

Dolby
07/10/2014, 07:19 PM
vlw quando puder tu dou +rep!

e me explica uma coisa antes eu usava DCMD ai na public OnPlayerCommandText tinha dcmd(comandos, cmdtext); não precisa colocar isso mais não?

Não. ZCMD trabalha com callbacks, dessa forma você apenas precisa fazer desta forma:


CMD:comand(playerid, params[])
{
///
return 1;
}

connork
08/10/2014, 12:50 AM
Existe a possibilidade de alteração do nick no fórum?

Dolby
08/10/2014, 01:17 AM
Existe a possibilidade de alteração do nick no fórum?

Sim, a probabilidade é de 1/1000.

Teve uma época que propuseram abrir um tópico anualmente, no qual seria feito solicitações para a mudança, mas este ano não teve ainda, talvez possam abrir novamente. Você pode tentar pedir para algum moderador global, como dugi, mas as chances de ele atender seu pedido são próximas de 0.

_Play_
08/10/2014, 10:02 PM
Como sou novato ainda venho pedindo ajuda espero quem vcs entendam o Dolby está me ajudando com umas coisa via pm!

eu to estudando sscanf + ZCMD em comandos simple como /relatorio preciso colocar uma verificação se o player ta logado?

if(Player[playerid][pLogged] == false)
{
SendClientMessage(playerid, COR_ERRO, "Você não está logado!");
return 1;
}

Dolby
08/10/2014, 10:34 PM
eu to estudando sscanf + ZCMD em comandos simple como /relatorio preciso colocar uma verificação se o player ta logado?

if(Player[playerid][pLogged] == false)
{
SendClientMessage(playerid, COR_ERRO, "Você não está logado!");
return 1;
}


Se o jogador digita o comando, logicamente ele está conectado. É necessário fazer esta verificação apenas em comandos em que você digita o ID de algum jogador, para ocorrer algum evento. Exemplo: /pm [ID].

CLANdok
10/10/2014, 07:48 PM
Alguem pode me falar o Nome da animação de comer e beber ? procurei na lista:
http://wiki.sa-mp.com/wiki/Animations

e não achei :s , não sou muito bom em inglês.

SkullFire
10/10/2014, 08:47 PM
Alguem pode me falar o Nome da animação de comer e beber ? procurei na lista:
http://wiki.sa-mp.com/wiki/Animations

e não achei :s , não sou muito bom em inglês.

beber: dnk_stndM_loop
Exemplo: ApplyAnimation(playerid, "BAR", "dnk_stndM_loop",.....);

Comer: EAT_Burger
Exemplo: ApplyAnimation(playerid, "FOOD", "EAT_Burger",....);

Rodney Francalim
10/10/2014, 08:48 PM
Alguem pode me falar o Nome da animação de comer e beber ? procurei na lista:
http://wiki.sa-mp.com/wiki/Animations

e não achei :s , não sou muito bom em inglês.

beber: dnk_stndM_loop
Exemplo: ApplyAnimation(playerid, "BAR", "dnk_stndM_loop",.....);

Comer: EAT_Burger
Exemplo: ApplyAnimation(playerid, "FOOD", "EAT_Burger",....);

Complementando: lembre-se de sempre carregar a biblioteca antes de executar as animações.

ApplyAnimation(playerid, "FOOD", "null",....);

ingridcelles
11/10/2014, 10:03 PM
Ola tenho uma duvida de um erro que não encontro resposta
meu samp funciona normalmente com todas as skin e carros alterados
mas quando entro na seleção de skin aquela q da p visualar para escolhe o jogo fechar:(
é aquele Mseletor se nao me engano...mesmo quando tento no serve montado tb da erro
e ja tentei com os peds normais mais fechar quando abre a seleção
agradeço quem me ajuda .https://lh3.******usercontent.com/Cc4i_ZmdrpqgkeV_fVRUqtp5RYW9auoV17Cvum89QcA=s165-p-no

_Play_
12/10/2014, 12:07 AM
eu tenho uma dúvida no aqui no comando de dar helper.

se eu trocar aquele 1 por um 0 o comando poderá ser usado pra setar e remover o helper?


if(Level < 1) return SendClientMessage(playerid, 0xD8D8D8FF, "Level de Helper inválido!");

MultiKill
12/10/2014, 12:32 AM
eu tenho uma dúvida no aqui no comando de dar helper.

se eu trocar aquele 1 por um 0 o comando poderá ser usado pra setar e remover o helper?


if(Level < 1) return SendClientMessage(playerid, 0xD8D8D8FF, "Level de Helper inválido!");

Não, isso só verifica se o número que está armazenado na variável Level é menor do que 1, e se for menor do que 1 é executado uma forção que no caso é mandado uma mensagem para o jogador.

Se quiser fazer para remover faça o seguinte:

if(Level == 0)
{
// Função que remove o helper
}
else
{
//Caso não for igual a 0, for de 1 para cima
}

// Ou
if(Level == 0) return função_que_remove_vip
//caso não for igual a 0

_Play_
12/10/2014, 12:55 AM
Não, isso só verifica se o número que está armazenado na variável Level é menor do que 1, e se for menor do que 1 é executado uma forção que no caso é mandado uma mensagem para o jogador.

Se quiser fazer para remover faça o seguinte:

if(Level == 0)
{
// Função que remove o helper
}
else
{
//Caso não for igual a 0, for de 1 para cima
}

// Ou
if(Level == 0) return função_que_remove_vip
//caso não for igual a 0


quando o gta finalmente pego fui testar pego tanto pra adicionar quanto pra remover depois é só colocar as mensagens dizendo que foi setado agora vou partir pra outros comandos se eu tiver problemas no futuro eu uso como vc falou.

CLANdok
12/10/2014, 06:21 AM
beber: dnk_stndM_loop
Exemplo: ApplyAnimation(playerid, "BAR", "dnk_stndM_loop",.....);

Comer: EAT_Burger
Exemplo: ApplyAnimation(playerid, "FOOD", "EAT_Burger",....);

Complementando: lembre-se de sempre carregar a biblioteca antes de executar as animações.

ApplyAnimation(playerid, "FOOD", "null",....);

Obrigado Gente !! =D

Artista
12/10/2014, 04:43 PM
eu tenho uma dúvida no aqui no comando de dar helper.

se eu trocar aquele 1 por um 0 o comando poderá ser usado pra setar e remover o helper?
Vejo que ja resolveu sua dúvida... Mas reforçando: caso coloque 0 ou no lugar de 1 o comando terá sim a função de setar/zerar o level de helper :)


Aproveitando gostaria de tirar uma dúvida...
Se eu fizer:

for(new i; i < MAX_PLAYERS; i++)
{
if(i != playerid)
{
SetPlayerMarkerForPlayer(i, playerid,0xFFFFFF00);
}
}


1- Minha cor se tornaria invisível para todos que estão online, certo? E se alguém entrasse em seguida no servidor? Eu ficaria visível pra ele correto?

2- Pra voltar ao normal, bastaria usar o mesmo loop porém colocando FF no lugar de 00 no final?

3- Se eu fizer dessa forma: SetPlayerColor(playerid,0xFFFFFF00);
O efeito seria o mesmo?

Obs: Não posso testar para tirar minhas conclusões pois minha net é muito lenta e ainda estou construindo o servidor... :(

_Play_
12/10/2014, 05:09 PM
Vejo que ja resolveu sua dúvida... Mas reforçando: caso coloque 0 ou no lugar de 1 o comando terá sim a função de setar/zerar o level de helper :)


Aproveitando gostaria de tirar uma dúvida...
Se eu fizer:

for(new i; i < MAX_PLAYERS; i++)
{
if(i != playerid)
{
SetPlayerMarkerForPlayer(i, playerid,0xFFFFFF00);
}
}


1- Minha cor se tornaria invisível para todos que estão online, certo? E se alguém entrasse em seguida no servidor? Eu ficaria visível pra ele correto?

2- Pra voltar ao normal, bastaria usar o mesmo loop porém colocando FF no lugar de 00 no final?

3- Se eu fizer dessa forma: SetPlayerColor(playerid,0xFFFFFF00);
O efeito seria o mesmo?

Obs: Não posso testar para tirar minhas conclusões pois minha net é muito lenta e ainda estou construindo o servidor... :(

caso ninguem responder tua duvida me acc no skype que eu testo pra tu

Dolby
12/10/2014, 05:11 PM
1- Minha cor se tornaria invisível para todos que estão online, certo? E se alguém entrasse em seguida no servidor? Eu ficaria visível pra ele correto?

2- Pra voltar ao normal, bastaria usar o mesmo loop porém colocando FF no lugar de 00 no final?

3- Se eu fizer dessa forma: SetPlayerColor(playerid,0xFFFFFF00);
O efeito seria o mesmo?

Obs: Não posso testar para tirar minhas conclusões pois minha net é muito lenta e ainda estou construindo o servidor... :(

1 - Sim.

2 - Sim.

3 - Não entendi muito bem, você está se referindo ao alpha? Sim.

Artista
12/10/2014, 05:16 PM
Obrigado Dolby :)

deivid77
24/10/2014, 02:55 PM
Alguem podia me informa as posições X Y e Z
tipo
Z eu acho q e Altura ne
Y--
X---

Kimossab
24/10/2014, 03:02 PM
Nunca estudas-te geometria? X Y e Z são coordenadas do mapa. X e Y é na horizontal, 1 no eixo norte -sul e outro no eixo este-oeste. O Z é na vertical, ou seja a altura. Que queres saber mais?

deivid77
24/10/2014, 03:04 PM
Estudei nao mas vlw kkkk
X e Y qual vai pra frente e pra tras ?

Kimossab
25/10/2014, 01:28 AM
depende do que for para ti frente e tras...

Está precisamente como um plano. Norte-Sul = Y. Oeste-Este = X.
Y vai de Sul para Norte
X vai de Oeste para Este

não posso ser mais claro que isto...

PT
25/10/2014, 01:46 AM
depende do que for para ti frente e tras...

Está precisamente como um plano. Norte-Sul = Y. Oeste-Este = X.
Y vai de Sul para Norte
X vai de Oeste para Este

não posso ser mais claro que isto...

completando um pouco

http://i.stack.imgur.com/6Orjk.png

é o unico jeito que tens de saber onde o player esta exatamente, X e Y formam um plano 2D e o XYZ forma o plano 3D.

CLANdok
26/10/2014, 02:40 PM
Alguem pode me respmder uma duvida ? que se eu usar muitos timers no servidor pode ficar com lag ?

Estava criando um FS ai pedi para o meu amigo entrar no meu server: Vps/Windows - Ping[10].

Porém o Ping dele estava 48, o meu 12, e o do server 10, e quando ele entrou no carro ele disse que o carro estava teleportando para tras e para frente, oque poderia ser ?

ReyMysterio
26/10/2014, 03:54 PM
Alguem pode me respmder uma duvida ? que se eu usar muitos timers no servidor pode ficar com lag ?

Estava criando um FS ai pedi para o meu amigo entrar no meu server: Vps/Windows - Ping[10].

Porém o Ping dele estava 48, o meu 12, e o do server 10, e quando ele entrou no carro ele disse que o carro estava teleportando para tras e para frente, oque poderia ser ?

Sim pode dar lag. Timers são a grande causa do lag no servidores (minha opinião)

PT
26/10/2014, 04:18 PM
Nem sempre tudo pode ser lag do servidor

Os seus FPS tavam a quanto? e os dele?

CLANdok
26/10/2014, 05:38 PM
Obrigado ReyMysterio, e PT, Fps +100

PT
26/10/2014, 06:44 PM
Sua OnPlayerUpdate esta demasiado carregada? verifique.

CLANdok
26/10/2014, 06:58 PM
Não tem public OnPlayerUpdate no meu GM

PT
26/10/2014, 07:00 PM
Entao de mais informacoes sobre o seu GM, timers, Anti cheat, etc..

e tente explicar melhor o problema.

CLANdok
26/10/2014, 07:25 PM
Estou criando ele do zero, usando um sistema de Administração e Login do ph0ton, e o Velcimetro:
Aqui (http://pastebin.com/1cMX9mx5)

Além disso tenho:
1 Timer que fica funcionando para todos os player e é Quebrado(KillTimer) quando o Player se desconecta,
A Função dele é ficar verificando se o player entrou em algum CP:

TimerCP = SetTimerEx("CheckCP", 1500, true, "i", playerid);


2 Tenho os Timers ali do velocimetr do FernandoSS

3 Tenho o Timer PickUp que verifica se o player está em um pickup para parar o flood de mensagens, ele chama esta função:

public pPickups(playerid)
{
PlayerInfo[playerid][pPickup] = 0;
}

No caso, se for = 0 ele para de me enviar mensagens caso eu estiver dentro de um pickup.

Me desculpe por isto, sou iniciante e procuro sempre saber mais, e eu acho que a melhor forma de aprender é criando.

PT
26/10/2014, 08:06 PM
Veja as funções da streamer: http://forum.sa-mp.com/showthread.php?t=102865

usando ela pode reduzir sua quantidade de timers.

Ela nao serve so para objetos embora muitos pensam que sim.

CLANdok
26/10/2014, 08:54 PM
Posso sim, até uso mais, se eu usar um OnPlayerEnterDynamicCP e Dentro da public enviar mensagem para o player ela vai ficar floodando, para isso que uso meus timers :/ , tem outro método ? por exemplo, usando gettime().

PT
26/10/2014, 10:24 PM
Vou te dar uma pequena base, tente entender o codigo.



new MsgEnviada[MAX_PLAYERS];
new exemplo;

public OnGameModeInit()
{
exemplo = CreateDynamicCP(...);
return 1;
}

public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
if(checkpointid == exemplo)
{
if(MsgEnviada[playerid] == 0)
{
SendClientMessage(playerid, -1, "Ola!");
MsgEnviada[playerid] = 1;
}
}
return 1;
}

public OnPlayerLeaveDynamicCP(playerid, checkpointid)
{
MsgEnviada[playerid] = 0;
return 1;
}

ai tem simplesmente assim evitara o flood, tente entender.

CLANdok
27/10/2014, 04:02 AM
Obrigado, no caso do Pickup posso fazer:

public OnPlayerPickUpPickup(playerid, pickupid)
{
switch(pickupid){
case pk1: Msg(playerid, -1, "Tals");
case pk2: Msg(playerid, -1, "Tals");
default: Msg(playerid, -1, "Tals");
}
return 1;
}


ou assim não ira funcionar ou não será o modo certo ? li na Wiki que o "default" pega tudo que não se encaixa no paramêtro passado no switch

PT
27/10/2014, 08:18 AM
exato, claro que pode usar switch nas pickup.

CLANdok
27/10/2014, 03:39 PM
Obrigado =D, Deixa eu aproveitar e perguntar, em qual situação pode se ultilizar uma private ? no PHP Orientado a Objetos ultilizamos para criar classes de Login/Registro/Conexoes.

Sky™
28/10/2014, 06:19 PM
Alguém sabe me dizer o porque dos npcs sairem do servidor sozinhos ?
tipo compilei o gm na nova versão do samp a 0.3z R4 e os npc loga e sai sozinho :P
antes de eu passar pra essa versão que estava na 0.3z R1 eles entram normalmente é só nessa versão ... é bug do samp ? :P

PT
28/10/2014, 06:37 PM
Obrigado =D, Deixa eu aproveitar e perguntar, em qual situação pode se ultilizar uma private ? no PHP Orientado a Objetos ultilizamos para criar classes de Login/Registro/Conexoes.

Aqui temos public/forward.

Alguém sabe me dizer o porque dos npcs sairem do servidor sozinhos ?
tipo compilei o gm na nova versão do samp a 0.3z R4 e os npc loga e sai sozinho :P
antes de eu passar pra essa versão que estava na 0.3z R1 eles entram normalmente é só nessa versão ... é bug do samp ? :P

Tem sidos verificado esses problemas na versao 0.3z R4 quanto a NPC's eles deslogam do nada sem motivo.

Sky™
28/10/2014, 11:35 PM
Tem sidos verificado esses problemas na versao 0.3z R4 quanto a NPC's eles deslogam do nada sem motivo.

Pensei em algo do tipo, mas como estou meio que desligado do SA-MP decidi vim saber mais :D vlw tuga

Miineiro
30/10/2014, 11:41 PM
Linha muito grande, o que fazer ?

format(Query,sizeof(Query),"UPDATE `users` SET Level='%d',AdminLevel='%d',HelpLevel='%d',LevelVip ='%d',UpgradePoints='%d',ConnectedTime='%d',Sex='% d',Respeito='%d',Money='%d',Bank='%d',Crimes='%d', Kills='%d',Deaths='%d',Phonebook='%d',LottoNr='%d' ,Fishes='%d',BiggestFish='%d',Emprego='%d',Paychec k='%d',HeadValue='%d',Jailed='%d',JailTime='%d',Ma teriais='%d',Maconha='%d',Cocaina='%d',Crack='%d', Lider='%d',Member='%d',Ajustado='%d',Rank='%d',Cha r='%d',MV='%d' WHERE name='%s'",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pHelper],PlayerInfo[playerid][pVip],PlayerInfo[playerid][gPupgrade],PlayerInfo[playerid][pConnectTime],PlayerInfo[playerid][pSex],PlayerInfo[playerid][pExp],PlayerName(playerid));

Dolby
30/10/2014, 11:59 PM
Linha muito grande, o que fazer ?

format(Query,sizeof(Query),"UPDATE `users` SET Level='%d',AdminLevel='%d',HelpLevel='%d',LevelVip ='%d',UpgradePoints='%d',ConnectedTime='%d',Sex='% d',Respeito='%d',Money='%d',Bank='%d',Crimes='%d', Kills='%d',Deaths='%d',Phonebook='%d',LottoNr='%d' ,Fishes='%d',BiggestFish='%d',Emprego='%d',Paychec k='%d',HeadValue='%d',Jailed='%d',JailTime='%d',Ma teriais='%d',Maconha='%d',Cocaina='%d',Crack='%d', Lider='%d',Member='%d',Ajustado='%d',Rank='%d',Cha r='%d',MV='%d' WHERE name='%s'",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pHelper],PlayerInfo[playerid][pVip],PlayerInfo[playerid][gPupgrade],PlayerInfo[playerid][pConnectTime],PlayerInfo[playerid][pSex],PlayerInfo[playerid][pExp],PlayerName(playerid));

Use Strcat (wiki.sa-mp.com/wiki/Strcat).

Sky™
01/11/2014, 01:01 PM
Use Strcat (wiki.sa-mp.com/wiki/Strcat).

Ou não !

format(Query,sizeof(Query),
"UPDATE `users` SET Level='%d',AdminLevel='%d',HelpLevel='%d',LevelVip ='%d',\
UpgradePoints='%d',ConnectedTime='%d',Sex='%d',\
Respeito='%d',Money='%d',Bank='%d',Crimes='%d',Kil ls='%d',\
Deaths='%d',Phonebook='%d',LottoNr='%d',Fishes='%d ',BiggestFish='%d',\
Emprego='%d',Paycheck='%d',HeadValue='%d',Jailed=' %d',JailTime='%d',Materiais='%d',\
Maconha='%d',Cocaina='%d',Crack='%d',Lider='%d',Me mber='%d',Ajustado='%d',Rank='%d',\
Char='%d',MV='%d' WHERE name='%s'",
PlayerInfo[playerid][pLevel],
PlayerInfo[playerid][pAdmin],
PlayerInfo[playerid][pHelper],
PlayerInfo[playerid][pVip],
PlayerInfo[playerid][gPupgrade],
PlayerInfo[playerid][pConnectTime],
PlayerInfo[playerid][pSex],
PlayerInfo[playerid][pExp],
PlayerName(playerid));

Artista
02/11/2014, 05:01 PM
Bem, estou lendo sobre #emit e gostaria de saber se o uso do mesmo deixaria meus códigos mais otimizados.
Ex:

stock Somar(x, y)
{
#emit LOAD.S.PRI x
#emit LOAD.S.ALT y
#emit ADD
#emit RETN
return 1;
}

em vez de:

stock Somar(x, y)
{
return x+y;
}

PT
02/11/2014, 08:07 PM
Bem, estou lendo sobre #emit e gostaria de saber se o uso do mesmo deixaria meus códigos mais otimizados.
Ex:

stock Somar(x, y)
{
#emit LOAD.S.PRI x
#emit LOAD.S.ALT y
#emit ADD
#emit RETN
return 1;
}

em vez de:

stock Somar(x, y)
{
return x+y;
}


Se estas a falar de velocidade nesses casos e quase nula a diferença

fiz um teste de velocidade com a função com emit e sem emit


// fazer 3 somas

SomarComEmit
Media = 194.00ns

SomarSemEmit
Media = 200.00ns


claro que a aumentar o numero de somas os resultados serão diferentes....

Artista
02/11/2014, 08:36 PM
Muito obrigado PT, era isso mesmo que eu queria saber.

Dayvison_
04/11/2014, 09:02 PM
Olá alguem poderia me explicar por que este comando:

{
if(Player[playerid][pAdmin] <= 0) return SendClientMessage(playerid, COR_VERMELHO, "[ERRO]"BRANCO"Comando apenas para admins");
if(isnull(params)) return SendClientMessage(playerid,-1,"{FFFFFF}[USO]: {0099FF}/tapa [Player ID]");

new sid = strval(params);
if(!IsPlayerConnected(sid)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {0099FF}Jogador não conectado.");
new Float:Pos[3];
GetPlayerPos(sid,Pos[0],Pos[1],Pos[2]);
SetPlayerPos(sid,Pos[0],Pos[1],Pos[2]+10);

new String[128];
format(String,128,"{FFFFFF}%s {0099FF}deu um tapa em {FFFFFF}%s",Player[playerid][Nome],Player[sid][Nome]);
SendClientMessageToAll(-1,String);
return 1;
}

Esta apresentando os seguintes erros:

1.Quando digita /tapa [qualquer simbolo] ele vai e da tapa no playerid = 0?
2. e porque a mensagen não aparece aparece apenas uma linha vazia sem nada esrito?

PT
05/11/2014, 04:03 PM
Olá alguem poderia me explicar por que este comando:

{
if(Player[playerid][pAdmin] <= 0) return SendClientMessage(playerid, COR_VERMELHO, "[ERRO]"BRANCO"Comando apenas para admins");
if(isnull(params)) return SendClientMessage(playerid,-1,"{FFFFFF}[USO]: {0099FF}/tapa [Player ID]");

new sid = strval(params);
if(!IsPlayerConnected(sid)) return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {0099FF}Jogador não conectado.");
new Float:Pos[3];
GetPlayerPos(sid,Pos[0],Pos[1],Pos[2]);
SetPlayerPos(sid,Pos[0],Pos[1],Pos[2]+10);

new String[128];
format(String,128,"{FFFFFF}%s {0099FF}deu um tapa em {FFFFFF}%s",Player[playerid][Nome],Player[sid][Nome]);
SendClientMessageToAll(-1,String);
return 1;
}

Esta apresentando os seguintes erros:

1.Quando digita /tapa [qualquer simbolo] ele vai e da tapa no playerid = 0?
2. e porque a mensagen não aparece aparece apenas uma linha vazia sem nada esrito?


CMD:tapa(playerid, arg[])
{
if(Player[playerid][pAdmin] <= 0)
return SendClientMessage(playerid, COR_VERMELHO, "[ERRO]"BRANCO"Comando apenas para admins");
if(isnull(arg))
return SendClientMessage(playerid,-1,"{FFFFFF}[USO]: {0099FF}/tapa [Player ID]");
if(!IsPlayerConnected(arg))
return SendClientMessage(playerid,-1,"{FF0000}[ERRO]: {0099FF}Jogador não conectado.");

new Float:Pos[3];
GetPlayerPos(arg,Pos[0],Pos[1],Pos[2]);
SetPlayerPos(arg,Pos[0],Pos[1],Pos[2]+10);

new loL[128];
format(loL, sizeof(loL), "{FFFFFF}%s {0099FF}deu um tapa em {FFFFFF}%s", Player[playerid][Nome], Player[arg][Nome]);
SendClientMessageToAll(-1, loL);
return 1;
}

CLANdok
07/11/2014, 08:53 AM
1 Dudida, estou criando um GM do zero, estudando e criando, e queria saber se ele compilando em
[Finished in 1.0s]
Com 4674, Sendo ele já com sistema de salvamento, 5 Profissôes, vêlocimetro, Sistema de Prisão, e outras coisas, estou há mais de 3 Meses criando do zero então eu acho que estou indo bem, mais isto não vem ao caso, Obrigado desde já.

Kimossab
07/11/2014, 08:50 PM
O tempo de compilação nada tem a ver com o código ser eficiente ou não (pelo menos muito). O maior fator para o tempo de compilação é o te proprio computador.

CLANdok
07/11/2014, 08:53 PM
O tempo de compilação nada tem a ver com o código ser eficiente ou não (pelo menos muito). O maior fator para o tempo de compilação é o te proprio computador.

Então como posso ver se meu GM está com erros, travamento, mal-desempenho.

Skiinner
07/11/2014, 09:09 PM
Para a criação de UCP e mysql é melhor eu alugar o host em linux ou windows?

CLANdok
07/11/2014, 09:11 PM
Para a criação de UCP e mysql é melhor eu alugar o host em linux ou windows?

+Segurança = Linux, Acessibilidade = Windows, pelo menos este é o meu "ver".

Kimossab
07/11/2014, 10:47 PM
Então como posso ver se meu GM está com erros, travamento, mal-desempenho.

Testando. O compilador procura erros de sintaxe. No entanto erros lógico só podem ser vistos por testes. Por isso é que existem a versões beta e as versões estáveis, equipas de teste e tudo mais. Pões o GM a correr e depois vais testar no samp.

Artista
10/11/2014, 02:27 AM
Tenho uma pequena dúvida em relação a otimização.
strins é mais rápido que format?
Por exemplo, se eu fizer algo como:

new Arquivo[35]="Dados/.ini";
strins(Arquivo, pNome(playerid), 6, 25);

em vez de:

new Arquivo[35];
format(Arquivo, sizeof(Arquivo), "Dados/%s.ini", pNome(playerid));

O código ficaria mais otimizado?

Skiinner
11/11/2014, 07:23 AM
Eu preciso usar o dof2_savefile quando uso GetString ou getint, ou apenas quando altero um valor?

CLANdok
11/11/2014, 07:49 AM
Eu preciso usar o dof2_savefile quando uso GetString ou getint, ou apenas quando altero um valor?

Apenas quando você usa SetString, SetFloat, SetBool, etc...

ProKillerpa
11/11/2014, 05:13 PM
Eu preciso usar o dof2_savefile quando uso GetString ou getint, ou apenas quando altero um valor?

A Resposta para sua pergunta é não. Se você relembrasse o conteúdo sobre variáveis, você se lembraria.
Quando é atribuido um valor á uma variável, aquela variável automaticamente possui o valor definido, podemos dizer que ela ' salva automaticamente '.

PT
11/11/2014, 08:15 PM
Tenho uma pequena dúvida em relação a otimização.
strins é mais rápido que format?
Por exemplo, se eu fizer algo como:

new Arquivo[35]="Dados/.ini";
strins(Arquivo, pNome(playerid), 6, 25);

em vez de:

new Arquivo[35];
format(Arquivo, sizeof(Arquivo), "Dados/%s.ini", pNome(playerid));

O código ficaria mais otimizado?

Format maior parte das vezes é mais rapido, contudo nesse seu caso especifico, só fazendo testes de velocidade para lhe poder dizer com toda a certeza.

Skiinner
12/11/2014, 10:01 AM
Como eu posso habilitar dois comandos do zcmd com a mesma função?
CMD:comando1(playerid,params[]) || comando2
?

BWCALLEf
12/11/2014, 01:08 PM
se você quer criar 2 cmd em 1 cmd
use switch (http://wiki.sa-mp.com/wiki/Control_Structures#switch_2)


switch (a)
{
case comando1:
{
//FUNÇÃO DO COMANDO
}
case comando2:
{
//FUNÇÃO DO COMANDO
}

}




COMMAND:exec(playerid, params[])
{
return cmd_exemplo(playerid, params);
}

COMMAND:exemplo(playerid, params[])
{
// lalalalal
return 1;
}

Skiinner
12/11/2014, 06:24 PM
valeu allef

Artista
12/11/2014, 06:57 PM
Format maior parte das vezes é mais rapido, contudo nesse seu caso especifico, só fazendo testes de velocidade para lhe poder dizer com toda a certeza.

Mais uma vez obrigado PT. Fiz testes de velocidade e o método com strins demonstrou ser mais otimizado.

[17:46:34] Resultados para: teste strins

Números de execução a cada milissegundo: 0.33300
Tempo mínimo: 0ms Tempo máximo: 1ms e Tempo médio: 0ms
Tempo Final: 52 milissegundos


[17:46:34] Resultados para: teste format

Números de execução a cada milissegundo: 0.33300
Tempo mínimo: 0ms Tempo máximo: 1ms e Tempo médio: 0ms
Tempo Final: 84 milissegundos

rjjj
12/11/2014, 08:40 PM
Na verdade, a função format é considerada lenta em comparação com as outras funções de manipulação de strings, como a função strins :mrgreen:.



É por essa razão que se costuma definir a função strcpy, que serve para copiar uma string para uma array especificada, utilizando strcat em vez de format:



stock strcpy(destino[], origem[], limite = sizeof(destino))
{
destino[0] = EOS;
strcat(destino, origem, limite);
return true;
}



Exemplo de uso:



new STR[] = "ABC"; //Declara uma variável array contendo a string "ABC".
strcpy(STR, "123"); //Copiaria a string "123" para a array declarada.
print(STR); //Mostraria o conteúdo da array STR, que seria a string "123", não mais a string "ABC".




Espero ter ajudado :p.

Dayvison_
12/11/2014, 08:41 PM
Ajudem me respondam pq isso n ta cunfionando do geito certo ele n da os avisos eu queria assim que desse 10 avisos antes de kikar porem o aviso so fik em 0

public CheckLimits(playerid)
{
// Tambem tentei um loop aki '-' acontece o msm abaixo
new WarnPing[MAX_PLAYERS], MSG[128];
if(GetPlayerPing(playerid) > Config[MaxPing]) {
// Tentei colocar um Loop aki para ir adicionando avisos SIM ele deu certo, porem voce e kikado em 1 segundos pq a velocidade dele e mto rapida
format(MSG,128,"[AVISO: %i] Ping excedendo o limite (%i/%i)",WarnPing[playerid],GetPlayerPing(playerid),Config[MaxPing]);
SendClientMessage(playerid, -1, MSG);
WarnPing[playerid]++;// Aqui seria a função para adicionar outro valor ao Avisod e Ping alto porem nao esta dando certo... Tentei tambem da forma: WarnPing[playerid]+= 1
}
if(WarnPing[playerid] == 10)// Aki verifica se os avisos chegam a 10 se chegar kika esta parte esta funcionando corretamente.
{

PT
12/11/2014, 08:50 PM
stock strcpy(destino[], origem[], limite = sizeof(destino))
{
destino[0] = EOS;
strcat(destino, origem, limite);
return true;
}




Estive procurando essa funcao ontem nem achava ela kkkk.

A porra do inverno aqui em Portugal deixou-me muito constipado este mes ainda por cima breve faço anos -.- muita sorte mesmo.

anyways lembro-me de uma vez fazer uns testes em um codigo e o resultado foi o format mais rapido talvez tivesse algum erro ja foi a muito xD.

Artista
12/11/2014, 09:00 PM
stock strcpy(destino[], origem[], limite = sizeof(destino))
{
destino[0] = EOS;
strcat(destino, origem, limite);
return true;
}



Isto é bem útil, obrigado :p

Dayvison_
12/11/2014, 10:53 PM
Ajudem me respondam pq isso n ta cunfionando do geito certo ele n da os avisos eu queria assim que desse 10 avisos antes de kikar porem o aviso so fik em 0

public CheckLimits(playerid)
{
// Tambem tentei um loop aki '-' acontece o msm abaixo
new WarnPing[MAX_PLAYERS], MSG[128];
if(GetPlayerPing(playerid) > Config[MaxPing]) {
// Tentei colocar um Loop aki para ir adicionando avisos SIM ele deu certo, porem voce e kikado em 1 segundos pq a velocidade dele e mto rapida
format(MSG,128,"[AVISO: %i] Ping excedendo o limite (%i/%i)",WarnPing[playerid],GetPlayerPing(playerid),Config[MaxPing]);
SendClientMessage(playerid, -1, MSG);
WarnPing[playerid]++;// Aqui seria a função para adicionar outro valor ao Avisod e Ping alto porem nao esta dando certo... Tentei tambem da forma: WarnPing[playerid]+= 1
}
if(WarnPing[playerid] == 10)// Aki verifica se os avisos chegam a 10 se chegar kika esta parte esta funcionando corretamente.
{

Algm?

Kimossab
13/11/2014, 07:46 AM
Claro que fica em 0. Cada vez que chamas a função o warning écriado de novo e depois eliminado no fim da função...

O WarningPing tem de ser uma variável global e não local.

Skiinner
14/11/2014, 12:59 AM
Qual é melhor, criar uma playertextdraw ou uma global e apenas mostrá-la ao player?

_Play_
14/11/2014, 01:12 AM
To usando sscanf2 e zcmd, uso um comando sem parametros pega normal quando eu vou usar um com parametros da Unknown command ai qualquer comando que eu venha a usar depois da Unknown command. oque pode ser?

PedexM
14/11/2014, 01:25 AM
O Parâmetros pode está errado por exemplo:

//Errado
CMD:test(playerid, params[])
{
new ID, LeveldoID;
if(sscanf(params, "dd" ID, LeveldoID)) return SendClientMessage("Vai dá erro");
}
//Certo
CMD:test(playerid, params[])
{
new ID, LeveldoId;
if(sscanf(params, "ui", ID, LeveldoID)) return SendClientMessage(playerid, -1, "/test [id][level]");
return 1;
}

Também pode ser que você esteja os usando os comandos de forma incorreta exemplo: Quero dar líder para alguem de uma Organização "X", X não pode ser nomes, a não ser que tenham definidos, então tendem a usar número(não tenho certeza,sempre funcionou comigo antes).

PT
14/11/2014, 08:30 AM
Qual é melhor, criar uma playertextdraw ou uma global e apenas mostrá-la ao player?

se é apenas para isso global.

Skiinner
15/11/2014, 03:35 AM
Eu estava dando uma olhada em um sistema de câmera em primeira pessoa no veículo, só que tem o problema de que ao virar o veículo a camera permanece, tendo que virar o mouse. É possivel alterar isso para ficar fixo?

ZeZin
15/11/2014, 11:18 AM
Player[playerid][Score] = GetPlayerScore(playerid);
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);

Esses erros?

(211) : error 017: undefined symbol "Player"
(211) : warning 215: expression has no effect
(211) : error 001: expected token: ";", but found "]"
(211) : error 029: invalid expression, assumed zero
(211) : fatal error 107: too many error messages on one line

Skiinner
15/11/2014, 12:06 PM
se você fez um enum tem que criar uma new Player[MAX_PLAYERS][NOME_ENUM]; lá no topo

_Play_
15/11/2014, 12:49 PM
Gente eu queria saber se alguém já teve o mesmo problema. a primeira linha que se refere a TextDraw na a OnGameModeInit ela apareçe quando eu conecto no server mesmo colocando pra apareçer na OnPlayerSpawn.

CLANdok
15/11/2014, 02:53 PM
Gente eu queria saber se alguém já teve o mesmo problema. a primeira linha que se refere a TextDraw na a OnGameModeInit ela apareçe quando eu conecto no server mesmo colocando pra apareçer na OnPlayerSpawn.

Tenta criar ela antes de da um 'Show' na mesma.
na mesma public.

se não der certo use um

#undef MAX_PLAYERS
#define MAX_PLAYERS(/*Numero de players no seu server*/) // Tem um tutorial do PT que explica isto, pode evitar lags
for(new i; i < MAX_PLAYERS; i++){
//Código da text, Ex:
/*
TextDrawShowForPlayer(i, TextDraw);
*/
}

Bruno_Furious
15/11/2014, 07:57 PM
preciso de ajuda e não sei postar pedido de ajuda no forum
a duvida é curta e é essas aqui

essa e a fs que ta com esse erro
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : error 028: invalid subscript (not an array or too many subscripts): "arg0"
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : warning 215: expression has no effect
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : error 001: expected token: ";", but found "]"
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : error 029: invalid expression, assumed zero
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

/////////////////////////////////////////////////////////////////////////////////////////////////
essa é a linha da fs error

Float:functionB0(Float:arg0,Float:arg1,arg2)
{
new Float:var0[4];
for(new var1 = 0; var1 < 3; var1++)
{
arg0[var1] = arg1[var1] - arg1[var1]; //linha com erro
var0[var1] = var0[var1] * var0[var1];
}
var0[3] = var0[0] + var0[1] + var0[2];
return (arg2 ? floatsqroot(var0[3]) : var0[3]);
}


>:(

PT
15/11/2014, 08:13 PM
preciso de ajuda e não sei postar pedido de ajuda no forum
a duvida é curta e é essas aqui

essa e a fs que ta com esse erro
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : error 028: invalid subscript (not an array or too many subscripts): "arg0"
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : warning 215: expression has no effect
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : error 001: expected token: ";", but found "]"
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : error 029: invalid expression, assumed zero
C:\Users\Bruno\Desktop\BMG ROLE PLAY\filterscripts\1234.pwn(11) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

/////////////////////////////////////////////////////////////////////////////////////////////////
essa é a linha da fs error

Float:functionB0(Float:arg0,Float:arg1,arg2)
{
new Float:var0[4];
for(new var1 = 0; var1 < 3; var1++)
{
arg0[var1] = arg1[var1] - arg1[var1]; //linha com erro
var0[var1] = var0[var1] * var0[var1];
}
var0[3] = var0[0] + var0[1] + var0[2];
return (arg2 ? floatsqroot(var0[3]) : var0[3]);
}


>:(

Esse é o resultado de andar a decompilar scripts, nunca vale apena.......

Bruno_Furious
15/11/2014, 08:15 PM
pode cre eu vo usa a original mesmo em amx então

Skiinner
18/11/2014, 02:49 PM
é possível detectar se o carro está virado para baixo?

CLANdok
18/11/2014, 03:03 PM
é possível detectar se o carro está virado para baixo?

Se sim apenas com as posiçoes, mais sla... talvez não pode ser possivel...

Acho que pode te ajudar em algo: http://forum.sa-mp.com/showthread.php?t=266484

PT
18/11/2014, 04:07 PM
é possível detectar se o carro está virado para baixo?

usa http://wiki.sa-mp.com/wiki/GetPlayerFacingAngle

vulgo
19/11/2014, 06:08 PM
Boa tarde, Como faço para remover do meu GameMode os comandos /quit e o /q ?

http://wiki.sa-mp.com/wiki/Client_Commands

/ Quit e / q , Este comando fala por si, ele sai do jogo. Você também pode usar / q , uma vez que o mesmo comando, apenas menor.

CLANdok
19/11/2014, 06:25 PM
Boa tarde, Como faço para remover do meu GameMode os comandos /quit e o /q ?

http://wiki.sa-mp.com/wiki/Client_Commands

/ Quit e / q , Este comando fala por si, ele sai do jogo. Você também pode usar / q , uma vez que o mesmo comando, apenas menor.

Não é possivel, /q /quit são comandos nativos do SA-MP, não é possivel altera-los e nem remove-los

vulgo
19/11/2014, 07:16 PM
Não é possivel, /q /quit são comandos nativos do SA-MP, não é possivel altera-los e nem remove-los

Tem como criar um code para quando o player usar /quit ou /q adicionar 10 deaths na conta?

CLANdok
19/11/2014, 07:41 PM
Tem como criar um code para quando o player usar /quit ou /q adicionar 10 deaths na conta?

Creio que não, não tem como saber quando o player usa este comando.

PT
19/11/2014, 09:32 PM
Tem como criar um code para quando o player usar /quit ou /q adicionar 10 deaths na conta?

public OnPlayerDisconnect(playerid, reason)
{
PlayerInfo[playerid][deaths] += 10;
return 1;
}

mas pra que isso?

( e apenas uma base, se copiar e colar tera erros. )

Skiinner
21/11/2014, 01:17 AM
Mudei pra widhost linux e o crash detect não funciona...
Loading plugin: crashdetect.so
[00:02:09] Failed (/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by plugins/crashdetect.so))

CLANdok
21/11/2014, 01:33 AM
Mudei pra widhost linux e o crash detect não funciona...
Loading plugin: crashdetect.so
[00:02:09] Failed (/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by plugins/crashdetect.so))


Baixe o CrashDetect.so: http://forum.sa-mp.com/showthread.php?t=262796

Em seguida você tem que mover o crashdetect.so para a pasta plugins, lógo depois você vai no seu server.cfg e coloca ele na linha plugins, desta maneira:

plugins crashdetect.so


Reinicia o servidor e testa.

Skiinner
21/11/2014, 01:35 AM
Cara, eu sempre usei ele, só no novo host que não funciona ._.
Ele requer uma livraria do linux no host, e não que eu puis no lugar errado LOL

rm0203
21/11/2014, 10:05 AM
Cara, eu sempre usei ele, só no novo host que não funciona ._.
Ele requer uma livraria do linux no host, e não que eu puis no lugar errado LOL

Qual a distribuicao que voce esta utilizando?

Skiinner
21/11/2014, 08:09 PM
Não sei a versão, mas o dono da widhost não consegue resolver meu problema.

rm0203
21/11/2014, 11:01 PM
Não sei a versão, mas o dono da widhost não consegue resolver meu problema.
Isso é falta de vontade, sério.
http://stackoverflow.com/questions/19386651/how-to-fix-usr-lib-libstdc-so-6-version-glibcxx-3-4-15-not-found

Skiinner
23/11/2014, 02:55 PM
Será que usando uma função do samp que pega o vetor do tiro, é possivel eu aumentar o range da arma fazendo alguma verificação se tinha um player nessa rota?

PT
23/11/2014, 03:36 PM
Será que usando uma função do samp que pega o vetor do tiro, é possivel eu aumentar o range da arma fazendo alguma verificação se tinha um player nessa rota?

ajudara imenso

http://wiki.sa-mp.com/wiki/OnPlayerWeaponShot

para aumentar o range so criar uma funcao para ver se tinha alguem nesse area.

Skiinner
23/11/2014, 05:36 PM
valeu mano, vou dar uma olhada c:

ReehSouza
25/11/2014, 09:28 PM
Resolvido!

_Play_
28/11/2014, 02:38 AM
>= 1 singifica maior ou igual a 1?

eu uso assim abaixo, e me retorna o seguinte ERRO: Você não tem permissão para usar este comando!

if(Player[playerid][pBOPE] >= 1 || Player[playerid][pPMRJ] >= 1 || Player[playerid][pCORE] >= 1)
return SendClientMessage(playerid, Vermelho, "ERRO: Você não tem permissão para usar este comando!");

rm0203
28/11/2014, 02:42 AM
E o que são as variáveis e o que você está tentando fazer?

PT
28/11/2014, 12:05 PM
>= 1 singifica maior ou igual a 1?

eu uso assim abaixo, e me retorna o seguinte ERRO: Você não tem permissão para usar este comando!

if(Player[playerid][pBOPE] >= 1 || Player[playerid][pPMRJ] >= 1 || Player[playerid][pCORE] >= 1)
return SendClientMessage(playerid, Vermelho, "ERRO: Você não tem permissão para usar este comando!");

if(!Player[playerid][pBOPE] >= 1 && !Player[playerid][pPMRJ] >= 1 && !Player[playerid][pCORE] >= 1)
return SendClientMessage(playerid, Vermelho, "ERRO: Você não tem permissão para usar este comando!");

_Play_
28/11/2014, 06:49 PM
Se eu tirar o ! da ruim não pega direito, se eu deixa da warnings.

(3104) : warning 213: tag mismatch
(3104) : warning 213: tag mismatch
(3104) : warning 213: tag mismatch

if(!Player[playerid][pBOPE] >= 1 && !Player[playerid][pPMRJ] >= 1 && !Player[playerid][pCORE] >= 1) //3104

Kimossab
28/11/2014, 06:55 PM
o ! é negação portnato basta fazeres isto:

if(Player[playerid][pBOPE] < 1 && Player[playerid][pPMRJ] < 1 && Player[playerid][pCORE] < 1)

OU

if(!(Player[playerid][pBOPE] >= 1) && !(Player[playerid][pPMRJ] >= 1) && !(Player[playerid][pCORE] >= 1))

_Play_
29/11/2014, 01:28 AM
Oque é isso que apareçe nos logs, no server o comando pega normal.

sscanf warning: Format specifier does not match parameter count.

Kimossab
29/11/2014, 02:02 AM
"sscanf warning: Format specifier does not match parameter count. "

tradução:

"aviso sscanf: O formato especificado nao corresponde à contagem dos parametros."

ou seja os parametros que colocaste lá nao correspondem ao formato, por exemplo

sscanf(x,"ii",a);
ou entao sscanf(x,"i",a,b);

_Play_
30/11/2014, 06:04 PM
Isso aqui funcionaria certo? vi as pessoas falar que tem que colocar de comando em comando eu testei mais eu vim aqui perguntar so pra confirmar.
public OnPlayerCommandPerformed( playerid, cmdtext[ ], success )
{
if(!success)
{
SendClientMessage(playerid, -1, "O Comando Não Existe!");
return 1;
}
return true;
}

new Floood[MAX_PLAYERS];
public OnPlayerCommandReceived(playerid, cmdtext[])
{
if(Floood[playerid] > GetTickCount())
return SendClientMessage(playerid, -1, "Proibido flood de comandos."), 0;

Floood[playerid] = GetTickCount() + 1000;
return true;
}

Don_Speed
30/11/2014, 06:38 PM
Isso aqui funcionaria certo? vi as pessoas falar que tem que colocar de comando em comando eu testei mais eu vim aqui perguntar so pra confirmar.
public OnPlayerCommandPerformed( playerid, cmdtext[ ], success )
{
if(!success)
{
SendClientMessage(playerid, -1, "O Comando Não Existe!");
return 1;
}
return true;
}

new Floood[MAX_PLAYERS];
public OnPlayerCommandReceived(playerid, cmdtext[])
{
if(Floood[playerid] > GetTickCount())
return SendClientMessage(playerid, -1, "Proibido flood de comandos."), 0;

Floood[playerid] = GetTickCount() + 1000;
return true;
}


Se funcionou ta valendo :D kkkkkk

Dayvison_
05/12/2014, 08:46 PM
Com este Plugin (http://forum.sa-mp.com/showthread.php?t=428066) eu consigo fazer com que o NPC controle um hydra e tente abater outro hydra Controlado por outro player?
Se sim me de dicas '-

Kimossab
05/12/2014, 09:15 PM
atravez do "FCNPC_AimAt" dá para por um bot a apontar e disparar para 1 posição se fizeres um timer ou no onplayerupdate atualizas a posição apara onde ele aponta, nao sei se funciona dentro de um veiculo, mas é testar

JackStenzel
06/12/2014, 09:13 PM
Existe algum problema de colocar varios && numa sentença? Como problema quero dizer uso alto de memória.

ex.:
if (IsPlayerInAnyVehicle(i) && distancia <= 11 && dirigindo == PLAYER_STATE_DRIVER && playerid != i ){

CLANdok
06/12/2014, 09:15 PM
Existe algum problema de colocar varios && numa sentença? Como problema quero dizer uso alto de memória.

ex.:
if (IsPlayerInAnyVehicle(i) && distancia <= 11 && dirigindo == PLAYER_STATE_DRIVER && playerid != i ){

Não.

Dolby
06/12/2014, 09:39 PM
Existe algum problema de colocar varios && numa sentença? Como problema quero dizer uso alto de memória.

ex.:
if (IsPlayerInAnyVehicle(i) && distancia <= 11 && dirigindo == PLAYER_STATE_DRIVER && playerid != i ){

Sua dúvida é referente a velocidade de execução, e não de memoria.

Mas como foi dito, não. Mas vale ressaltar que

if(iSentenca == 1)
{
if(nSentenca == 2) { }
}


É mais rápido que

if(iSentenca == 1 && nSentenca == 2)


No entanto, nem sempre olhe apenas o quesito velocidade de execução. O código fica mais extenso e dependendo da quantidade de verificações utilizadas pode ficar algo realmente chato de se trabalhar, devido a quantidade de brackets(o maior problema de todo iniciante).

Abraços.

JackStenzel
07/12/2014, 11:03 AM
Pawno não mostra erro ou sucesso de compilação.
http://i.imgur.com/mSUUQFi.png
@edit simplesmente voltou ao normal do nada +_+ , srry.

PT
07/12/2014, 12:14 PM
as vezes acontecia cmg quando faltava demasiadas chaves { ou }

[BOPE]Seu._.Madruga
07/12/2014, 05:54 PM
Pawno não mostra erro ou sucesso de compilação.
http://i.imgur.com/mSUUQFi.png
@edit simplesmente voltou ao normal do nada +_+ , srry.

Por que não usa pawn infernus, ou outros tipos de programadores?
Abaixo está dois programadores que eu conheço e utilizo!

1° Pawn infernus (https://ipeapp.******code.com/files/IPEApp.exe)
2° Sublime Text 2 (http://www.sublimetext.com/2)

Atualmente eu utilizo mais o Sublime Text.

MatheusFaria
08/12/2014, 03:35 PM
Sou meio nob em pawn e estou com uma duvida como criar empresas tipo a do ammu so q tem em ls e quero colocar em lv sf e fc alguem me ajuda?

WLSF
09/12/2014, 12:09 AM
Cara, se você tá se referindo ao espaço físico, basta criar um evento pra quando o jogador apertar um botão, e verificar se ele está na pos da entrada da loja ou na pos de saída, então você inverte as pos...

Quanta a empresa em si, você precisa escolher os interiores, enfeitar eles e apropriar para interação com o usuário, existe alguns tutoriais que explicam isso aqui na board, você pode procurar através do search.

Abraços

_Play_
11/12/2014, 03:52 PM
alguem pode me dizer como fica essa linha em sscanf if(strcmp(tmp2, "somar", true)==0)

JonathanFeitosa
11/12/2014, 04:06 PM
CMD:somar(playerid, params[])

_Play_
11/12/2014, 04:09 PM
CMD:somar(playerid, params[])

tipo eu uso desse geito so que é dentro do comando que tem if(strcmp(tmp2, "somar", true)==0) ai eu posso colocar de boa outro CMD:somar(playerid, params[]) ja dentro de um comando?

MultiKill
11/12/2014, 04:34 PM
CMD:exemplo(playerid, params[])
{
new op[50];
if(sscanf(params, "s[50]", op)) return SendClientMessage(playerid, -1, "/exemplo [somar/dividir]");
if(strcmp(op, "somar", true) == 0)
{
}
else if(strcmp(op, "dividir", true) == 0)
{
}
return 1;
}

_Play_
11/12/2014, 04:46 PM
vlw MultiKill quando eu puder eu te dou +rep

MultiKill
11/12/2014, 05:13 PM
vlw MultiKill quando eu puder eu te dou +rep
Não precisa, não ajudo por causa de reputação.

Sky™
12/12/2014, 12:52 PM
Alguém ja teve a experiencia de usar

InterpolateCameraLookAt
SetPlayerCameraPos

com

SelectTextDraw

sabe se o efeito do interpolate acaba quando usamos a outra função ?

PT
12/12/2014, 01:57 PM
Alguém ja teve a experiencia de usar

InterpolateCameraLookAt
SetPlayerCameraPos

com

SelectTextDraw

sabe se o efeito do interpolate acaba quando usamos a outra função ?

Nunca tive qualquer problema em usar-las juntas...

HAMMMMMMMMER
16/12/2014, 12:45 AM
@CORRIGIDO!

Bruno13
17/12/2014, 10:04 AM
Alguém ja teve a experiencia de usar

InterpolateCameraLookAt
SetPlayerCameraPos

com

SelectTextDraw

sabe se o efeito do interpolate acaba quando usamos a outra função ?

Creio que não, pois SelectTextDraw nada mais faz que setar um cursor com seleção colorida. Ele bloqueia sim teclas e movimento da câmera entre outros, mas nada que poderia afetar as funções que sitou. Posso estar errado mas creio não haver interferências.

JackStenzel
20/12/2014, 06:40 PM
Estou criando uma tela de login com textdraws, é melhor criar textdraw global ou player textdraws?

HAMMMMMMMMER
20/12/2014, 07:47 PM
Pessoal estou com uma duvida, estou fazendo sistema de lixeiro. Ele reconhe os lixos nas casas e coloca no caminhão. Mais queria sabe como posso fazer que o comando execute apenas quando ele tiver na traseira do Trashmaster
Imagem (http://i.imgur.com/j09tijE.jpg)

Jorge-IN
23/12/2014, 07:28 PM
Olá galera, estou recentemente pretendendo voltar a codar... Antes de parar estava usando o ZCMD/DOF2+sscanf, minha duvida é o seguinte, o melhor continua sendo esse ? há algo inovador ? Valeu !

JackStenzel
23/12/2014, 07:51 PM
Olá galera, estou recentemente pretendendo voltar a codar... Antes de parar estava usando o ZCMD/DOF2+sscanf, minha duvida é o seguinte, o melhor continua sendo esse ? há algo inovador ? Valeu !

YCMD+sscanf para processador de comandos e o DOF2 continua no topo por conta de sua facilidade de manipulação, porém o mais rápido salvamento é y_ini e mysql

MultiKill
24/12/2014, 04:07 PM
YCMD+sscanf para processador de comandos e o DOF2 continua no topo por conta de sua facilidade de manipulação, porém o mais rápido salvamento é y_ini e mysql
E também tem o SQLite.

WLSF
26/12/2014, 12:20 AM
Como vocês costumam fazer o /criarcarro e o /dararma através de nomes ?

por exemplo, /criarcarro infernus

Se alguém puder deixar um exemplo, ficaria grato.

Adejair_Junior
26/12/2014, 12:35 AM
Como vocês costumam fazer o /criarcarro e o /dararma através de nomes ?

por exemplo, /criarcarro infernus

Se alguém puder deixar um exemplo, ficaria grato.


Costumo botar em uma array depois só uso zcmd,strcmp,e sscanf , dar arma da mesma forma:p


new WilliamCar[ ][ ] = {
{"Infernus"},
{"Sultan"}
........


};

CMD:carro(playerid,params[]){

new
s_Q[128],
carname[20]
;
for(new index; index < sizeof WilliamCar; index++){
if(sscanf(params,"s[20]",carname)){
SendClientMessage(playerid, -1, "/carro [nome]")
format(s_Q,128,"%s",WilliamCar[index][0]);
SendClientMessage(playerid, -1, s_Q);
}
}

if(!strcmp(carname, WilliamCar[index][0])){
Create blá blá blá
}else{
SendClientMessage(playerid, -1, "não tem esse carro fera.");
}

return true;
}

WLSF
26/12/2014, 12:39 AM
Costumo botar em uma array depois só uso zcmd,strcmp,e sscanf , dar arma da mesma forma:p

Você conhece mais alguém que tem esse costume de usar arrays ? Tava querendo saber se isso é uma maneira geral de se usar... Ou seja, boa parte dos 'scripters' fazem desta maneira ?

Adejair_Junior
26/12/2014, 12:43 AM
Você conhece mais alguém que tem esse costume de usar arrays ? Tava querendo saber se isso é uma maneira geral de se usar... Ou seja, boa parte dos 'scripters' fazem desta maneira ?

Praticamente é uma maneira geral , quase todos usam , eu costumava botar em enums ou até mesmo em uma tabela no MySQL e por lá ler más era mais trabalhoso , mais vá de cada um.