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

Gii
30/12/2013, 03:00 AM
Eu quero saber se essa identação é:

Excelente
Ótima
Boa
Ruim
Péssima


public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/armasgratis", true) == 0){
{
SetPlayerHealth(playerid, 100);
SetPlayerArmor(playerid, 100);
GivePlayerWeapon(playerid, 31);
GivePlayerWeapon(playerid, 26);
GivePlayerWeapon(playerid, 4);
GivePlayerWeapon(playerid, 18);
GivePlayerWeapon(playerid, 24);
GivePlayerWeapon(playerid, 34);
return 1;
}

Olhando assim eu diria que não esta indentado. :D

E a propósito o código esta errado :o.

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

ZaturN
30/12/2013, 03:41 AM
Não está errado, porque no meu gm é isto, eu coloco e da certinho

Gii
30/12/2013, 04:17 AM
Não está errado, porque no meu gm é isto, eu coloco e da certinho

Se você diz quem é a Wiki para contrariar ...

http://wiki.sa-mp.com/wiki/Function:GivePlayerWeapon

ZaturN
30/12/2013, 04:39 AM
:/ é só esqueci das balas

Don_Speed
31/12/2013, 10:11 PM
#Edit Demoro muito ja achei :D

GabrielRibeiro
11/01/2014, 05:48 PM
Eu quero saber se essa identação é:

Excelente
Ótima
Boa
Ruim
Péssima


public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/armasgratis", true) == 0){
{
SetPlayerHealth(playerid, 100);
SetPlayerArmor(playerid, 100);
GivePlayerWeapon(playerid, 31);
GivePlayerWeapon(playerid, 26);
GivePlayerWeapon(playerid, 4);
GivePlayerWeapon(playerid, 18);
GivePlayerWeapon(playerid, 24);
GivePlayerWeapon(playerid, 34);
return 1;
}





Meu amigo... Eu acho que você não soube indenta e lendo seu código percebi que estava mal posicionada suas chaves...


public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/armasgratis", true) == 0)
{
{
SetPlayerHealth(playerid, 100);
SetPlayerArmor(playerid, 100);
GivePlayerWeapon(playerid, 31, 100);
GivePlayerWeapon(playerid, 261, 100);
GivePlayerWeapon(playerid, 4, 100);
GivePlayerWeapon(playerid, 18, 100);
GivePlayerWeapon(playerid, 24, 100);
GivePlayerWeapon(playerid, 34, 100);
}
return 1;
}
}

PT
11/01/2014, 05:54 PM
Meu amigo... Eu acho que você não soube indenta e lendo seu código percebi que estava mal posicionada suas chaves...


public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/armasgratis", true) == 0)
{
{
SetPlayerHealth(playerid, 100);
SetPlayerArmor(playerid, 100);
GivePlayerWeapon(playerid, 31, 100);
GivePlayerWeapon(playerid, 261, 100);
GivePlayerWeapon(playerid, 4, 100);
GivePlayerWeapon(playerid, 18, 100);
GivePlayerWeapon(playerid, 24, 100);
GivePlayerWeapon(playerid, 34, 100);
}
return 1;
}
}




as suas e que tao man

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/armasgratis", true) == 0)
{
SetPlayerHealth(playerid, 100);
SetPlayerArmor(playerid, 100);
GivePlayerWeapon(playerid, 31, 100);
GivePlayerWeapon(playerid, 261, 100);
GivePlayerWeapon(playerid, 4, 100);
GivePlayerWeapon(playerid, 18, 100);
GivePlayerWeapon(playerid, 24, 100);
GivePlayerWeapon(playerid, 34, 100);
return 1;
}
return 0;
}

pra que chaves a mais?

GabrielRibeiro
11/01/2014, 07:40 PM
as suas e que tao man

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/armasgratis", true) == 0)
{
SetPlayerHealth(playerid, 100);
SetPlayerArmor(playerid, 100);
GivePlayerWeapon(playerid, 31, 100);
GivePlayerWeapon(playerid, 261, 100);
GivePlayerWeapon(playerid, 4, 100);
GivePlayerWeapon(playerid, 18, 100);
GivePlayerWeapon(playerid, 24, 100);
GivePlayerWeapon(playerid, 34, 100);
return 1;
}
return 0;
}

pra que chaves a mais?

É por que eu mantive o que ele fez... Olha a public dele .. Ela não fecha .. apenas identei o codigo dele sem alterar apenas fechei o que ele fez e arrumei as balas

ZaturN
16/01/2014, 03:39 PM
O samp atualizo pra 0.3z ou continua no x ?

darkxdll
16/01/2014, 04:35 PM
Atualizou , mais não é obrigado atualizar pois ainda os grandes servers estão na 0.3x , a 0.3z é só pra correções de bugs e adicionou acho que atualizou umas publics que agora pode ser identificado onde o tiro acertou (braço,cabeça,perna,etc) . Eu atualizei e não tem quase nenhum servidor 0.3z

ZaturN
18/01/2014, 12:34 PM
Eu quero saber se posso usar o mesmo settimer pra dois comandos por exemplo:


forward Dinheiro(playerid);

if(strcmp(cmdtext,"/dinheiro", true)==0)
{
SendClientMessage(playerid, AZUL, "(INFO) Aguarde um pouco pra receber seu dinheiro!");
SetTimer("Dinheiro",10000,false);
return 1;
}

if(strcmp(cmdtext,"/dinheiromenos", true)==0)
{
SendClientMessage(playerid, AZUL, "(INFO) Aguarde um pouco pra receber seu dinheiro!");
SetTimer("Dinheiro",10000,false);
return 1;
}

public Dinheiro(playerid)
{
GivePlayerMoney(playerid, 10000);
return 1;
}

Gii
18/01/2014, 03:38 PM
Eu quero saber se posso usar o mesmo settimer pra dois comandos por exemplo:


forward Dinheiro(playerid);

if(strcmp(cmdtext,"/dinheiro", true)==0)
{
SendClientMessage(playerid, AZUL, "(INFO) Aguarde um pouco pra receber seu dinheiro!");
SetTimer("Dinheiro",10000,false);
return 1;
}

if(strcmp(cmdtext,"/dinheiromenos", true)==0)
{
SendClientMessage(playerid, AZUL, "(INFO) Aguarde um pouco pra receber seu dinheiro!");
SetTimer("Dinheiro",10000,false);
return 1;
}

public Dinheiro(playerid)
{
GivePlayerMoney(playerid, 10000);
return 1;
}



Pode!

PT
18/01/2014, 07:03 PM
Atualizou , mais não é obrigado atualizar pois ainda os grandes servers estão na 0.3x , a 0.3z é só pra correções de bugs e adicionou acho que atualizou umas publics que agora pode ser identificado onde o tiro acertou (braço,cabeça,perna,etc) . Eu atualizei e não tem quase nenhum servidor 0.3z

isso e porque ainda esta em RC, quando sair a versao R ae ja atualizam.

rjjj
19/01/2014, 08:43 PM
Eu quero saber se posso usar o mesmo settimer pra dois comandos por exemplo:


forward Dinheiro(playerid);

if(strcmp(cmdtext,"/dinheiro", true)==0)
{
SendClientMessage(playerid, AZUL, "(INFO) Aguarde um pouco pra receber seu dinheiro!");
SetTimer("Dinheiro",10000,false);
return 1;
}

if(strcmp(cmdtext,"/dinheiromenos", true)==0)
{
SendClientMessage(playerid, AZUL, "(INFO) Aguarde um pouco pra receber seu dinheiro!");
SetTimer("Dinheiro",10000,false);
return 1;
}

public Dinheiro(playerid)
{
GivePlayerMoney(playerid, 10000);
return 1;
}




Pode sim, visto que cada chamada da função SetTimer cria um timer diferente com seu próprio ID, mesmo que este trabalhe com a mesma função que outro :mrgreen:.



Um detalhe importante é que a função SetTimerEx deve ser utilizada em vez de SetTimer quando a função a ser executada após determinado tempo tem parâmetros.



Espero ter ajudado :p.

RicardoMaia
20/01/2014, 10:02 PM
Quando o player entra no carro o relógio trava, mais o código do public OnPlayerEnterVehicle não está errado.


public reloginho:


public reloginho(){
SyncTime();
new
string[256],
ano,
mes,
dia,
horas,
minutos,
segundos;
getdate(ano, mes, dia);gettime(horas, minutos, segundos);
format(string, sizeof string, "~b~~h~~h~~h~%d/%s%d/2014", dia, ((mes < 10) ? ("0") : ("")), mes);TextDrawSetString(Reloginho1, string);
format(string, sizeof string, "~b~~h~~h~~h~%s%d:%s%d:%s%d", (horas < 10) ? ("0") : (""), horas, (minutos < 10) ? ("0") : (""), minutos, (segundos < 10) ? ("0") : (""), segundos);TextDrawSetString(Reloginho2, string);
TextDrawShowForAll(Reloginho1);TextDrawShowForAll( Reloginho2);}

public OnPlayerEnterVehicle:


public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new string[256];
new strong[256];
if(IsAnOwnableCar(vehicleid) && CarInfo[vehicleid][cLock] == 1 && CarInfo[vehicleid][cOwned] == 1)
{
if(IsPlayerAdmin(playerid)) { }
else
{
new Float:cx, Float:cy, Float:cz;
GetPlayerPos(playerid, cx, cy, cz);
SetPlayerPos(playerid, cx, cy, cz);
GetPlayerName(playerid, sendernome, sizeof(sendernome));
format(strong, sizeof(strong), "* %s Puxa a maçaneta do veículo de %s sem sucesso.", sendernome, CarInfo[vehicleid][cOwner]);
ProxDetector(5.0, playerid, strong, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPL E,COLOR_PURPLE);
SendClientMessage(playerid, COLOR_WHITE, "[INFO]: Este veículo está trancado!");
}
}
if(CarInfo[vehicleid][cLock] == 0)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s Entra no veiculo.", sendername);
ProxDetector(5.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPL E,COLOR_PURPLE);
}
if(Trancado[vehicleid] >= 1)
{
if(PlayerInfo[playerid][pAdmin] > 0 || ispassenger) { }
else
{
new Float:x,Float:y,Float:z,Float:a;
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,a);
SetPlayerPos(playerid, x, y, z+0.3);
SetPlayerFacingAngle(playerid, a);
SendClientMessage(playerid, COLOR_YELLOW, "Veiculo Trancado!");
}
}
return true;
}

ZaturN
21/01/2014, 09:14 AM
Eu queria saber se existe uma função que faça detectar se o player pegou o encache de caminhões (carreta), ou um code pra eu estudar.

Dolby
21/01/2014, 12:27 PM
Eu queria saber se existe uma função que faça detectar se o player pegou o encache de caminhões (carreta), ou um code pra eu estudar.

IsTrailerAttachedToVehicle (http://wiki.sa-mp.com/wiki/IsTrailerAttachedToVehicle) - Esta função detecta se tem algum veículo "attached" ao vehicleid

GetVehicleTrailer (http://wiki.sa-mp.com/wiki/GetVehicleTrailer) - Já esta obtem o ID do veículo que está "attached".

É tudo que você vai precisar.

smiiir
21/01/2014, 02:41 PM
Alguém sabe algum plugin que verifica onde está o lag no GameMode?

Edit..

Já achei

ZaturN
23/01/2014, 12:28 AM
Eu quero saber se assim pode chegar no máximo de textdraws do samp, olhe o meu exemplo:

eu digito um comando /vertextdraws ai carregar 46 textdraws em TextDrawShowForPlayer ai tem para mudar de pagina, quando eu clico na seta de mudar pagina acontece que as 46 textdraws da pagina anterior fica em TextDrawHideForPlayer e criar 46 dessa pagina que eu mudei. é possivel chegar no máximo assim ?

Delete_
23/01/2014, 10:56 AM
Eu quero saber se assim pode chegar no máximo de textdraws do samp, olhe o meu exemplo:

eu digito um comando /vertextdraws ai carregar 46 textdraws em TextDrawShowForPlayer ai tem para mudar de pagina, quando eu clico na seta de mudar pagina acontece que as 46 textdraws da pagina anterior fica em TextDrawHideForPlayer e criar 46 dessa pagina que eu mudei. é possivel chegar no máximo assim ?

Sim.

hoyyyyy
27/01/2014, 12:47 PM
C:\Users\Privado\Desktop\Projects\SA-MP\gamemodes\roleplay.pwn(2) : fatal error 100: cannot read from file: "sscanf2"

Está acontendo esse erro comigo, mas já coloquei sscanf2 no pawno\include, também quando eu removia o #include <sscanf2>

C:\Users\Privado\Desktop\Projects\SA-MP\gamemodes\roleplay.pwn(2) : fatal error 100: cannot read from file: "zcmd"

Meus #include é assim.

#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <a_mysql>

Será que está dando conflito com mysql?

DannielCooper
27/01/2014, 01:05 PM
Não. É o compilador que não está achando as includes zcmd e sscanf2.

Verifique se estão na pasta pawno > include.

hoyyyyy
27/01/2014, 01:13 PM
Daniel obrigado, eu tinha esqueci que o compilador ficava no disco C:\\.
Muito obrigado :]

Input
27/01/2014, 02:29 PM
Quais emotes um RolePlay deve ter?

Tipo:
/eu [ação]
/feliz [motivo]

PT
27/01/2014, 02:34 PM
Quais emotes um RolePlay deve ter?

Tipo:
/eu [ação]
/feliz [motivo]

/tentar
/ooc
/ic
....

Input
27/01/2014, 03:06 PM
/tentar
/ooc
/ic
....

Pode dar explicação dos comandos? Não tenho conhecimento sobre a ação dos mesmos..

PT
27/01/2014, 03:19 PM
tenta ver alguns tutos...
vc ja jogou rp alguma vez?

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

Input
28/01/2014, 12:50 AM
Alguem tem o IP do Advanced Roleplay? Se sim, pode mandar por PM?

Locky_
28/01/2014, 10:34 PM
//Estão na wiki
native GetPlayerLastShotVectors(playerid, &Float:fOriginX, &Float:fOriginY, &Float:fOriginZ, &Float:fHitPosX, &Float:fHitPosY, &Float:fHitPosZ);

native Float:GetPlayerCameraAspectRatio(playerid);
native Float:GetPlayerCameraZoom(playerid);


//Não estão na wiki
// Extended admin network stats
native NetStats_GetConnectedTime(playerid);
native NetStats_MessagesReceived(playerid);
native NetStats_BytesReceived(playerid);
native NetStats_MessagesSent(playerid);
native NetStats_BytesSent(playerid);
native NetStats_MessagesRecvPerSecond(playerid);
native Float:NetStats_PacketLossPercent(playerid);
native NetStats_ConnectionStatus(playerid);
native NetStats_GetIpPort(playerid, ip_port[], ip_port_len);

Kalcor esqueceu de por lá na wiki? k
Não testei as nativas e como elas funcionam, alguém já testou?

TheGoldenHelmet
29/01/2014, 03:21 PM
native Float:GetPlayerCameraAspectRatio(playerid);
native Float:GetPlayerCameraZoom(playerid);


//Não estão na wiki
// Extended admin network stats
native NetStats_GetConnectedTime(playerid);
native NetStats_MessagesReceived(playerid);
native NetStats_BytesReceived(playerid);
native NetStats_MessagesSent(playerid);
native NetStats_BytesSent(playerid);
native NetStats_MessagesRecvPerSecond(playerid);
native Float:NetStats_PacketLossPercent(playerid);
native NetStats_ConnectionStatus(playerid);
native NetStats_GetIpPort(playerid, ip_port[], ip_port_len);

Kalcor esqueceu de por lá na wiki? k
Não testei as nativas e como elas funcionam, alguém já testou?

Todas as funções do NetStats já existiam, porém tinham que ser usadas strings muito grandes para pegar os valores.

GetConnectedTime: Tempo conectado em MS.
MessagesReceived: Mensagens recebidas do servidor.
BytesReceived: Quantidade de dados em bytes recebidos do servidor.
MessagesSent: Mensagens enviadas para o servidor.
BytesSent: Quantidade de dados em bytes enviados para o servidor.
NetStats_MessagesRecvPerSecond: Quantidade de mensagens enviadas no último segundo.
NetStats_PacketLossPercent: MUITO útil para detectar players desincronizados.
NetStats_ConnectionStatus: Status da conexão do player, porém ainda não existe definido o significado dos valores.
NetStats_GetIpPort: Ip + porta do jogador.

Delete_
29/01/2014, 05:12 PM
http://wiki.sa-mp.com/wiki/Category:Added_in_0.3z

hoyyyyy
29/01/2014, 06:28 PM
Gostaria de sabe como faço para criar um comando "/relogio" para aparecer o horario eu não lembro mais como faz isso gostaria que alguem pudesse me ajudar.

Gamemode: http://pastebin.com/cAquC7va

Gii
29/01/2014, 06:58 PM
Gostaria de sabe como faço para criar um comando "/relogio" para aparecer o horario eu não lembro mais como faz isso gostaria que alguem pudesse me ajudar.

Gamemode: http://pastebin.com/cAquC7va


CMD:relogio(playerid) {

new dia, mes, ano, hora, minuto, segundo, str[25];

getdate(ano, mes, dia);
gettime(hora, minuto, segundo);

format (str, 25, "%02d/%02d/%d - %02d:%02d:%02d", dia, mes, ano, hora, minuto, segundo);
SendClientMessage(playerid, -1, str);
return 1;
}

Axll
31/01/2014, 01:57 PM
como posso desativar o HUD do jogador? removendo o mapa tudo etc menos o chat, alguem sabe se tem um plugin ou uma função no samp que faça isso?

SkullFire
01/02/2014, 10:47 AM
como posso desativar o HUD do jogador? removendo o mapa tudo etc menos o chat, alguem sabe se tem um plugin ou uma função no samp que faça isso?

Não, isso não existe no samp . A unica coisa que você poderia fazer , e tampar com uma textdraw. E no caso do mapa , você poderia usar uma gangzone e uma textdraw .

rjjj
01/02/2014, 12:14 PM
como posso desativar o HUD do jogador? removendo o mapa tudo etc menos o chat, alguem sabe se tem um plugin ou uma função no samp que faça isso?


O melhor modo que conheço é a aplicação de SetPlayerDrunkLevel através de um timer rápido, selecionando o mínimo nível de embriaguez necessário para que o HUD desapareça por um instante :mrgreen:.



Exemplo:



#include <a_samp>



main()
{
print("Exemplo.");
}



public OnGameModeInit()
{
SetTimer("DesabilitarHUDs", 100, true);
return 1;
}



forward DesabilitarHUDs();
public DesabilitarHUDs()
{
for(new x = 0, y = GetMaxPlayers(); x != y; x++)
{
SetPlayerDrunkLevel(x, 5005);
}
return 1;
}




Espero ter ajudado :p.

caoraivoso3
01/02/2014, 07:23 PM
eu estou com uma pequena duvida.
eu criei uma textdraw e depois faço show da textdraw com uma string definida por mim e ela (tem usebox) fica uma barrinha fina. Porque isso acontece? o que eu defino nao devia fazer isso visto que a string nao tem quaisquer problemas.

PT
01/02/2014, 07:31 PM
eu estou com uma pequena duvida.
eu criei uma textdraw e depois faço show da textdraw com uma string definida por mim e ela (tem usebox) fica uma barrinha fina. Porque isso acontece? o que eu defino nao devia fazer isso visto que a string nao tem quaisquer problemas.

posta o code, para vermos o que podera estar a fazer isso.

Rhayziin
01/02/2014, 08:31 PM
Essa duvida pode ser Super Hyper Max Nuub, mas blz...

Se eu defini uma coisa com um valor:


#define ORG_MatadorDeGalinhas 10


e se eu definir outra coisa com o mesmo valor:


#define VoceEstaLendoPQ 10


Dará algum conflito mesmo o nome da define seja diferente?


#define ORG_EtupradoresAnonimos 5
#define DonoServidor 5

caoraivoso3
01/02/2014, 08:52 PM
posta o code, para vermos o que podera estar a fazer isso.

fixei fiz de outra maneira e deu obrigada na mesma. mesmo que desse codigo ninguem ia achar erro visto que o codigo que ia dar ia dar a outro e a outro e ia so dar confusao.

PT
02/02/2014, 10:30 AM
Essa duvida pode ser Super Hyper Max Nuub, mas blz...

Se eu defini uma coisa com um valor:


#define ORG_MatadorDeGalinhas 10


e se eu definir outra coisa com o mesmo valor:


#define VoceEstaLendoPQ 10


Dará algum conflito mesmo o nome da define seja diferente?


#define ORG_EtupradoresAnonimos 5
#define DonoServidor 5


O 'id' das mesma e igual, por isso sim..

mas podera testar ai, assim ve com os seus proprios olhos.

Lucas_HenryK
02/02/2014, 03:10 PM
if(pickupid == SkinPolicia)
{
if(!GetPlayerTeam(playerid == TEAM_POLICIA))
{ return 1; }
else { SetPlayerSkin(playerid,284); }
}

Outra gangues também trocam de skin ??? :(

PT
02/02/2014, 06:28 PM
if(pickupid == SkinPolicia)
{
if(!GetPlayerTeam(playerid == TEAM_POLICIA))
{ return 1; }
else { SetPlayerSkin(playerid,284); }
}

Outra gangues também trocam de skin ??? :(

if(pickupid == SkinPolicia)
{
if(GetPlayerTeam(playerid) == TEAM_POLICIA)
{
SetPlayerSkin(playerid,284);
}
}

turila
03/02/2014, 12:40 PM
meus veiculos criado mta estao no servidor sem gasilina ajuda ai por favor

AddStaticVehicleEx(515,2725.6001000,-2391.3000500,14.8000000,0.0000000,9,48,15); //Roadtrain
AddStaticVehicleEx(515,2730.3999000,-2391.5000000,14.8000000,0.0000000,248,241,15); //Roadtrain
AddStaticVehicleEx(515,2734.8999000,-2391.6001000,14.8000000,0.0000000,-1,-1,15); //Roadtrain
AddStaticVehicleEx(515,2740.1999500,-2391.5000000,14.8000000,0.0000000,72,26,15); //Roadtrain
AddStaticVehicleEx(514,2773.6001000,-2414.8999000,14.3000000,92.0000000,-1,-1,15); //Tanker
AddStaticVehicleEx(514,2773.5000000,-2418.6001000,14.3000000,92.0000000,72,26,15); //Tanker
AddStaticVehicleEx(514,2774.6999500,-2453.8000500,14.3000000,92.0000000,129,43,15); //Tanker
AddStaticVehicleEx(514,2773.6999500,-2458.8000500,14.3000000,92.0000000,9,48,15); //Tanker
AddStaticVehicleEx(514,2772.5000000,-2496.5000000,14.3000000,92.0000000,248,241,15); //Tanker
AddStaticVehicleEx(514,2772.8999000,-2492.8000500,14.3000000,92.0000000,14,47,15); //Tanker
AddStaticVehicleEx(455,2773.8999000,-2474.5000000,14.2000000,92.0000000,-1,-1,15); //Flatbed
AddStaticVehicleEx(455,2775.1999500,-2436.1001000,14.2000000,90.0000000,14,47,15); //Flatbed
AddStaticVehicleEx(578,2749.6001000,-2393.3999000,14.4000000,156.0000000,9,48,15); //DFT-30
AddStaticVehicleEx(578,2754.3999000,-2395.6001000,14.4000000,155.9950000,14,47,15); //DFT-30
AddStaticVehicleEx(578,2759.3999000,-2397.3000500,14.4000000,155.9950000,129,43,15); //DFT-30

turila
03/02/2014, 12:45 PM
veiculos criados mta sem gazolina ajuda ai

AddStaticVehicleEx(515,2725.6001000,-2391.3000500,14.8000000,0.0000000,9,48,15); //Roadtrain
AddStaticVehicleEx(515,2730.3999000,-2391.5000000,14.8000000,0.0000000,248,241,15); //Roadtrain
AddStaticVehicleEx(515,2734.8999000,-2391.6001000,14.8000000,0.0000000,-1,-1,15); //Roadtrain
AddStaticVehicleEx(515,2740.1999500,-2391.5000000,14.8000000,0.0000000,72,26,15); //Roadtrain
AddStaticVehicleEx(514,2773.6001000,-2414.8999000,14.3000000,92.0000000,-1,-1,15); //Tanker
AddStaticVehicleEx(514,2773.5000000,-2418.6001000,14.3000000,92.0000000,72,26,15); //Tanker
AddStaticVehicleEx(514,2774.6999500,-2453.8000500,14.3000000,92.0000000,129,43,15); //Tanker
AddStaticVehicleEx(514,2773.6999500,-2458.8000500,14.3000000,92.0000000,9,48,15); //Tanker
AddStaticVehicleEx(514,2772.5000000,-2496.5000000,14.3000000,92.0000000,248,241,15); //Tanker
AddStaticVehicleEx(514,2772.8999000,-2492.8000500,14.3000000,92.0000000,14,47,15); //Tanker
AddStaticVehicleEx(455,2773.8999000,-2474.5000000,14.2000000,92.0000000,-1,-1,15); //Flatbed
AddStaticVehicleEx(455,2775.1999500,-2436.1001000,14.2000000,90.0000000,14,47,15); //Flatbed
AddStaticVehicleEx(578,2749.6001000,-2393.3999000,14.4000000,156.0000000,9,48,15); //DFT-30
AddStaticVehicleEx(578,2754.3999000,-2395.6001000,14.4000000,155.9950000,14,47,15); //DFT-30
AddStaticVehicleEx(578,2759.3999000,-2397.3000500,14.4000000,155.9950000,129,43,15); //DFT-30

Phyton
03/02/2014, 04:02 PM
Estou aprendendo pawn seria muito díficil eu criar um gamemode do zero no modo Roleplay?

Kuddy
03/02/2014, 04:04 PM
Estou aprendendo pawn atualmente compensa eu ficar usando base de gamemode ou ir criando diretamente o meu próprio gamemode?

Se você quer aprender a programar de verdade, recomendo que tente fazer do zero, já se você quer abrir um servidor logo é melhor pegar uma boa base.

Phyton
03/02/2014, 04:53 PM
Então mas estou perdido para iniciar não sei por onde começar exemplo.

1. System Login/Register
2. Command Basic
3. Edit Map
4. ...

Alguém poderia me ajudar apenas para iniciar o gamemode
(Gamemode Roleplay)

brunox
03/02/2014, 04:58 PM
Eu aconselharia a começar pelo sistema de login juntamente com todas as definições e comandos da conta do jogador, depois, na minha opinião é por preferência!

Kuddy
03/02/2014, 05:15 PM
Então mas estou perdido para iniciar não sei por onde começar exemplo.

1. System Login/Register
2. Command Basic
3. Edit Map
4. ...

Alguém poderia me ajudar apenas para iniciar o gamemode
(Gamemode Roleplay)

Começar por um RP é muito difícil para quem não tem noção de programação. Mas de qualquer jeito, a ordem que o pessoal costuma fazer é Sistema de login > comandos básicos > interiores e depois você que manda.

Axll
04/02/2014, 02:38 AM
O melhor modo que conheço é a aplicação de SetPlayerDrunkLevel através de um timer rápido, selecionando o mínimo nível de embriaguez necessário para que o HUD desapareça por um instante :mrgreen:.



Exemplo:



#include <a_samp>



main()
{
print("Exemplo.");
}



public OnGameModeInit()
{
SetTimer("DesabilitarHUDs", 100, true);
return 1;
}



forward DesabilitarHUDs();
public DesabilitarHUDs()
{
for(new x = 0, y = GetMaxPlayers(); x != y; x++)
{
SetPlayerDrunkLevel(x, 5005);
}
return 1;
}




Espero ter ajudado :p.


pelo que eu vi em outro topico isso depende muito do fps do jogador, para mim ele pisca sem parar quando estou caindo, mas andando correndo fica sem, mas isso tinha que sumir totalmente, vou ter que esperar e deixar para outro dia quando for possível, vlw ai :) (tbm meche muito a tela, achei muito legal o jeito que voce fez o loop :D)

Phyton
04/02/2014, 05:14 PM
Pessoal, compensa eu ir já usando mysql ou fazer um gamemode básico com dof2,zcmd entre outras includes?
(Tenho um UCP desenvolvido praticamente)

Dolby
04/02/2014, 05:21 PM
Pessoal, compensa eu ir já usando mysql ou fazer um gamemode básico com dof2,zcmd entre outras includes?
(Tenho um UCP desenvolvido praticamente)
Depende. Se você quer "criar um servidor", utilize DOF2, se quer "programar um gamemode", utilize MySQL. Mas como você citou que tem o UCP, é melhor se acostumar a usar o MySQL logo :mrgreen:.

Phyton
04/02/2014, 06:05 PM
Obrigado Dolby.
Estava vendo um tutorial aqui de register/login mysql.

Mas agora está dando esse erro
F:\Users\Phyton\Desktop\Projects\San Andreas Multiplayer\samp03x_svr_R2_win32\gamemodes\rolepla y.pwn(297) : error 004: function "MySQL_CheckAccountPass" is not implemented

Linha
MySQL_CheckAccountPass(playerid, inputtext);

Public completa
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 0:
{
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registro", "Você ainda não é registrado, \nPor favor digite uma senha:", "Logar", "Sair");
}

format(Query, sizeof(Query), "INSERT INTO `Contas` VALUES ('%s','%s','%d','%d','0','1500','2000');", [email protected](playerid), inputtext);
mysql_function_query(connect, Query, false, "", "", "");

SendClientMessage(playerid, -1, "Registrado com sucesso!");

SetPlayerHealth(playerid, 100);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Parabéns, conta criada com sucesso! \nAgora digite sua senha para continuar:", "Logar", "Sair");
}
else
Kick(playerid);
return 1;
}
case 1:
{
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Você ja é registrado, \nPor favor digite sua senha:", "Logar", "Sair");
SendClientMessage(playerid,0xFF0000AA,"Senha incorreta digite-a novamente");
}
MySQL_CheckAccountPass(playerid, inputtext);
}
else
Kick(playerid);
return 1;
}
}
return 1;
}

Dolby
04/02/2014, 08:38 PM
Obrigado Dolby.
Estava vendo um tutorial aqui de register/login mysql.
Mas agora está dando esse erro


Olhando assim por cima acaba sendo difícil de lhe ajudar, mas provavelmente você se esqueceu de abrir uma bracket({) nesta stock. Bom, recomendo você ver o Guia Completo MySQL (http://forum.sa-mp.com/showthread.php?t=484430) criado pelo JoaoPedro (http://forum.sa-mp.com/member.php?u=216453), mas caso não goste de videos e queira algo mais "código pronto", tem vários tutoriais ai no fórum, como o do BlueX, o do Ricop, etc.

arthurguilher
08/02/2014, 02:52 AM
Alguém sabe dizer o porquê desse plugin não funcionar mais?

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

Ele simplesmente dá falha quando vai ser carregado. Procurei outro plugin de FTP mas não achei.

DevilAgain
08/02/2014, 12:23 PM
Sla, adaptei uns negocio aqui, só que não funciona e ao meu ver nao vai funcionar uasdh.
Seguinte;, o relogio up nao mostra, e n salva o time


#include a_samp
#include DOF2
forward RelogioUPs(playerid);
new
Text:ReloginhoUP;
//reloginhoup;

public OnGameModeInit()
{
ReloginhoUP = TextDrawCreate(518.000000, 4.000000, "~y~UP~p~: ~w~10~p~:~w~00");
TextDrawBackgroundColor(ReloginhoUP, 255);
TextDrawFont(ReloginhoUP, 1);
TextDrawLetterSize(ReloginhoUP, 0.460000, 1.799999);
TextDrawColor(ReloginhoUP, -1);
TextDrawSetOutline(ReloginhoUP, 1);
TextDrawSetProportional(ReloginhoUP, 1);
return 1;
}

public OnPlayerConnect(playerid)
{
new nome[24], local[35];
GetPlayerName(playerid, nome, 24);

format(local, 35, "UP/%s.ini", nome);

DOF2_SetInt(local, "tempo", GetPVarInt(playerid, "tempo_up"));
DOF2_SaveFile();
DOF2_Exit();
return 1;
}
public OnGameModeExit()
{
return 1;
}

new minu2 = 0;
new TempoReloginho = 59;
new foicount1 = 1;

public RelogioUPs(playerid)
{
minu2++;
TempoReloginho--;
new string[50];
if(minu2>=59)
{
minu2 = 0;
foicount1 ++;
TempoReloginho = 59;
}
if(foicount1 == 1) format(string, 50,"~y~UP~p~: ~w~9~p~:~w~%d", TempoReloginho);
else if(foicount1 == 2) format(string, 50,"~y~UP~p~: ~w~8~p~:~w~%d", TempoReloginho);
else if(foicount1 == 3) format(string, 50,"~y~UP~p~: ~w~7~p~:~w~%d", TempoReloginho);
else if(foicount1 == 4) format(string, 50,"~y~UP~p~: ~w~6~p~:~w~%d", TempoReloginho);
else if(foicount1 == 5) format(string, 50,"~y~UP~p~: ~w~5~p~:~w~%d", TempoReloginho);
else if(foicount1 == 6) format(string, 50,"~y~UP~p~: ~w~4~p~:~w~%d", TempoReloginho);
else if(foicount1 == 7) format(string, 50,"~y~UP~p~: ~w~3~p~:~w~%d", TempoReloginho);
else if(foicount1 == 8) format(string, 50,"~y~UP~p~: ~w~2~p~:~w~%d", TempoReloginho);
else if(foicount1 == 9) format(string, 50,"~y~UP~p~: ~w~1~p~:~w~%d", TempoReloginho);
else if(foicount1 == 10) format(string, 50,"~y~UP~p~: ~w~0~p~:~w~%d", TempoReloginho);
TextDrawSetString(ReloginhoUP,string);
TextDrawShowForAll(ReloginhoUP);
if(foicount1 == 11)
{
foicount1 = 1;
for(new i=0; i<MAX_PLAYERS; i++)
{
SendClientMessage(playerid, 0xFFFFFF, "UP !!!!!!!!");
}
}
return 1;
}

MickPT
10/02/2014, 03:56 PM
Hum, é bom

sofina
12/02/2014, 09:21 PM
Há alguma diferença de velocidade entre essas duas enum's? Ou apenas, deixa o código mais "bonito"?

enum {
roupa, dinheiro, nivel, carro
}

enum
{
roupa,
dinheiro,
nivel,
carro
}

Dolby
12/02/2014, 09:39 PM
Há alguma diferença de velocidade entre essas duas enum's? Ou apenas, deixa o código mais "bonito"?

Apenas deixa o código mais "bonito". Na verdade são a mesma coisa.

sofina
12/02/2014, 10:10 PM
Uma dúvida, que eu não tiro da cabeça de modo algum, é o seguinte: É possível, na pasta GAMEMODES, fazer igual na pasta filterscripts? Cada sistema no seu arquivo separado. Além de mais organizado, fica bem MELHOR.

Acho que deu para entender. Se for possível, como eu faço isso?

Dolby
12/02/2014, 10:51 PM
Uma dúvida, que eu não tiro da cabeça de modo algum, é o seguinte: É possível, na pasta GAMEMODES, fazer igual na pasta filterscripts? Cada sistema no seu arquivo separado. Além de mais organizado, fica bem MELHOR.

Acho que deu para entender. Se for possível, como eu faço isso?

Sim é possível, repartindo o script em includes.

sofina
12/02/2014, 11:26 PM
Então, eu crio o sistema, salvo como include e faço isso, certo?

#include < registro >

Dolby
12/02/2014, 11:44 PM
Então, eu crio o sistema, salvo como include e faço isso, certo?

Exato, mas deve tomar cuidado com as variáveis e algumas coisas, tem que realmente saber o que se estas fazendo, e procure usar algo como Hungarian Notation (http://www.sit-dev.com.br/forum/thread-21.html) para facilitar e até mesmo não se perder no próprio código.

Parabéns pelas perguntas inteligentes, não é todo dia que se aparece perguntas do tipo por aqui.

Wanderson_SAMP
13/02/2014, 08:36 PM
@Sofina

O Rjjj fez isso em um gamemode (http://forum.sa-mp.com/showthread.php?t=395450) olha ai.

caoraivoso3
15/02/2014, 01:15 PM
pessoal tenho duvida no que esta funçao IsValidDynamicObject(objectid); faz. esta funçao e do include streamer feito pelo incognito http://forum.sa-mp.com/showthread.php?t=102865 fui ver e perguntar por la e ninguem me respondeu.
estou na duvida se esta funçao ve ou nao se o objeto existe ou nao.

alguem me pode ajudar? e se nao for essa funçao para saber se o objeto existe alguem me pode dizer qual e?

PT
15/02/2014, 02:22 PM
pessoal tenho duvida no que esta funçao IsValidDynamicObject(objectid); faz. esta funçao e do include streamer feito pelo incognito http://forum.sa-mp.com/showthread.php?t=102865 fui ver e perguntar por la e ninguem me respondeu.
estou na duvida se esta funçao ve ou nao se o objeto existe ou nao.

alguem me pode ajudar? e se nao for essa funçao para saber se o objeto existe alguem me pode dizer qual e?

verifica se o objeto e valido ou nao, ou seja para nao criares objetos invalidos ( para nao haverem crash's ) creio que seja isso.

Lucas_HenryK
15/02/2014, 05:22 PM
Isso poderia ocorrer bugs?

public OnPlayerSpawn(playerid)
{
if(GetPlayerTeam(playerid == TEAM_1))
{
SetPlayerTeam(playerid,TEAM_1);

SendClientMessage(playerid,COR_POLICIA,"Você spawnou como team 1.");
}
else if(GetPlayerTeam(playerid == TEAM_2))
{
SetPlayerTeam(playerid,TEAM_2);

SendClientMessage(playerid,COR_POLICIA,"Você spawnou como team 2.");
}
else if(GetPlayerTeam(playerid == TEAM_3))
{
SetPlayerTeam(playerid,TEAM_3);

SendClientMessage(playerid,COR_POLICIA,"Você spawnou como team 3.");
}
return 1;
}

Dolby
15/02/2014, 05:34 PM
Isso poderia ocorrer bugs?

Se você utilizar GetPlayerTeam (http://wiki.sa-mp.com/wiki/GetPlayerTeam) corretamente não, o que não é seu caso.

Lucas_HenryK
15/02/2014, 06:33 PM
Se você utilizar GetPlayerTeam (http://wiki.sa-mp.com/wiki/GetPlayerTeam) corretamente não, o que não é seu caso.

Cara usei assim:



#define TEAM_1 100
#define TEAM_2 200
#define TEAM_3 300

AddPlayerClassEx(TEAM_1, skin, ....... );


public OnPlayerRequestClass(playerid, classid)
{
if(classid == 0)
{
SetPlayerTeam(playerid,TEAM_1);
}
if(classid == 1)
{
SetPlayerTeam(playerid,TEAM_2);
}
if(classid == 2)
{
SetPlayerTeam(playerid,TEAM_3);
}
return 1;
}


public OnPlayerSpawn(playerid)
{
if(GetPlayerTeam(playerid) == TEAM_1)
{
SetPlayerTeam(playerid,TEAM_1);

SendClientMessage(playerid,COR_POLICIA,"Você spawnou como team 1.");
}
else if(GetPlayerTeam(playerid) == TEAM_2)
{
SetPlayerTeam(playerid,TEAM_2);

SendClientMessage(playerid,COR_POLICIA,"Você spawnou como team 2.");
}
else if(GetPlayerTeam(playerid) == TEAM_3)
{
SetPlayerTeam(playerid,TEAM_3);

SendClientMessage(playerid,COR_POLICIA,"Você spawnou como team 3.");
}
return 1;
}

Mais não deu, nem a mensagem envia..

Dolby
15/02/2014, 07:12 PM
Não entendi o porque da parte de obter a team do jogador e logo depois seta-la novamente. Mas de qualquer maneira, tente utilizar os IDs das teams assim:


#define TEAM_1 1
#define TEAM_2 2
#define TEAM_3 3


Certifique-se também de não ter trocado os parâmetros da AddPlayerClassEx (http://wiki.sa-mp.com/wiki/AddPlayerClassEx), consulte-os na Wiki (wiki.sa-mp.com).

E caso persista, procure fazer alguns debug's para identificar o problema, pois assim fica difícil lhe ajudar.

Lucas_HenryK
15/02/2014, 07:38 PM
não entendi Dolby.....

sofina
18/02/2014, 09:58 PM
Qual o nome da função que quando utilizada, aparece na tela, um quadrado e ao adicionar carros/skins, aparece em quadradinhos? E tem algum tutorial brasileiro explicando como usa?

.FuneraL.
18/02/2014, 10:02 PM
Qual o nome da função que quando utilizada, aparece na tela, um quadrado e ao adicionar carros/skins, aparece em quadradinhos? E tem algum tutorial brasileiro explicando como usa?

Brasileiro não sei se tem, mas tem esse tutorial do d0, explicando algumas coisas sobre essas dialogs :mrgreen:
Link Aqui :) (http://forum.sa-mp.com/showthread.php?t=407045)

sofina
18/02/2014, 10:04 PM
Brasileiro não sei se tem, mas tem esse tutorial do d0, explicando algumas coisas sobre essas dialogs :mrgreen:
Link Aqui :) (http://forum.sa-mp.com/showthread.php?t=407045)

Obrigado!

PT
20/02/2014, 08:39 AM
Qual o nome da função que quando utilizada, aparece na tela, um quadrado e ao adicionar carros/skins, aparece em quadradinhos? E tem algum tutorial brasileiro explicando como usa?

em BR tens este: http://forum.sa-mp.com/showthread.php?t=448835

sofina
21/02/2014, 12:03 AM
Então galera, é o seguinte, eu estou criando algumas lojas de roupas em meu GM. E queria saber de uma coisa.

Qual o jeito mais otimizado para este tipo de comando, sem ficar repetindo ele toda hora? Estou pelo celular, então não vou arrumar o code. Deixar em apenas 1 comando.

CMD: skin1(..., ....) {
GetPlayerSkin(1...)
GivePlayerMoney(...)
}

CMD: skin2(..., ...) {
GetPlayerSkin(2....)
GivePlayerMoney(...)
}

Dolby
21/02/2014, 12:07 AM
Então galera, é o seguinte, eu estou criando algumas lojas de roupas em meu GM. E queria saber de uma coisa.

Qual o jeito mais otimizado para este tipo de comando, sem ficar repetindo ele toda hora? Estou pelo celular, então não vou arrumar o code. Deixar em apenas 1 comando.


Sua dúvida não ficou muito clara, mas podes utilizar variáveis ou até mesmo sscanf.

sofina
21/02/2014, 12:12 AM
Sua dúvida não ficou muito clara, mas podes utilizar variáveis ou até mesmo sscanf.

Ao invés de o player digitar skin1, skin2, skin3, etc... eu queria que apenas um comando fizesse isso. Ao invés de digitar /skin1 sem espaço, eu queria que ele dogitasse /skin 1 e aparecesse tal skin. Ou seja, apenas o /skin que eu queria criar.

Não sei se deu para você entender, até porque estou pelo celular e não sou bom para explicações.

Dolby
21/02/2014, 12:15 AM
Ao invés de o player digitar skin1, skin2, skin3, etc... eu queria que apenas um comando fizesse isso. Ao invés de digitar /skin1 sem espaço, eu queria que ele dogitasse /skin 1 e aparecesse tal skin. Ou seja, apenas o /skin que eu queria criar.

Não sei se deu para você entender, até porque estou pelo celular e não sou bom para explicações.

Neste caso você pode utilizar sscanf.


CMD:skin(playerid, params[])
{
new ID;
if(sscanf(params,"d",ID)) return SendClientMessage(playerid, -1, "Use /Skin [ID]");
SetPlayerSkin(playerid, ID);
return 1;
}

sofina
21/02/2014, 12:18 AM
Neste caso você pode utilizar sscanf.


CMD:skin(playerid, params[])
{
new ID;
if(sscanf(params,"d",ID)) return SendClientMessage(playerid, -1, "Use /Skin [ID]");
SetPlayerSkin(playerid, ID);
return 1;
}



E neste mesmo comando eu vou adicionando SetPlayeSkin(playerid, id skin) ou posso fazer um switch usando case?

Dolby
21/02/2014, 01:04 AM
E neste mesmo comando eu vou adicionando SetPlayeSkin(playerid, id skin) ou posso fazer um switch usando case?

Não há necessidade, esse comando se encaixa perfeitamente no que você quer. Agora caso queira atribuir 'IDs' para as skins, aí sim você pode utilizar switch.

sofina
21/02/2014, 01:06 AM
Não há necessidade, esse comando se encaixa perfeitamente no que você quer. Agora caso queira atribuir 'IDs' para as skins, aí sim você pode utilizar switch.

Obrigado pela resposta, Dolby! Ajudou bastante. Já até fiz uma "base" do comando num caderninho, ahahhaha.

Wanderson_SAMP
21/02/2014, 11:34 AM
kkkk' btf sofina ¬¬ quando era mas novo fazia isso tbm hu3
----------
Gustavo e suas explicações = +rep's hihi'

sofina
21/02/2014, 09:36 PM
Não sei se o comando está certo, então, poderiam me dá uma ajuda? É a primeira vez que utilizo o switch. (acho que dará erro, mas queria saber se fiz corretamente.) Não estou no computador e sim pelo celular e o código eu fiz pelo caderno mesmo.

CMD:skin(playerid, params[]) {
new roupas;

if (sscanf(params, "d", roupas)) return SendClientMessage(playerid, -1, "[SINTAXE]: Digite /skin [id do skin]");
if(GetPlayerMoney(playerid) < 50) return SendClientMessage(playerid, -1, "Você não tem dinheiro suficiente!");

switch (roupas)
{
case 1: SetPlayerSkin(playerid, 1) return GivePlayerMoney(playerid, -50);
case 2: SetPlayerSkin(playerid, 2) return GivePlayerMoney(playerid, -50);
case 3: SetPlayerSkin(playerid, 3) return GivePlayerMoney(playerid, -50);
return 1;
}
}

CharlieBrown
21/02/2014, 10:05 PM
acho que assim é melhor e mais facil.

CMD:skin(playerid, params[]) {
new roupas;
if (sscanf(params, "d", roupas)) return SendClientMessage(playerid, -1, "[SINTAXE]: Digite /skin [id do skin]");
if(GetPlayerMoney(playerid) < 50) return SendClientMessage(playerid, -1, "Você não tem dinheiro suficiente!");
//caso queria fazer uma skin com valor diferente
if(roupas == idskin) return GivePlayerMoney(playerid, valor);
else
GivePlayerMoney(playerid, -50);
SetPlayerSkin(playerid, roupas);
return true;
}

.FuneraL.
21/02/2014, 11:14 PM
Não sei se o comando está certo, então, poderiam me dá uma ajuda? É a primeira vez que utilizo o switch. (acho que dará erro, mas queria saber se fiz corretamente.) Não estou no computador e sim pelo celular e o código eu fiz pelo caderno mesmo.

CMD:skin(playerid, params[]) {
new roupas;

if (sscanf(params, "d", roupas)) return SendClientMessage(playerid, -1, "[SINTAXE]: Digite /skin [id do skin]");
if(GetPlayerMoney(playerid) < 50) return SendClientMessage(playerid, -1, "Você não tem dinheiro suficiente!");

switch (roupas)
{
case 1: SetPlayerSkin(playerid, 1) return GivePlayerMoney(playerid, -50);
case 2: SetPlayerSkin(playerid, 2) return GivePlayerMoney(playerid, -50);
case 3: SetPlayerSkin(playerid, 3) return GivePlayerMoney(playerid, -50);
return 1;
}
}

Só uma observação, poderia estar certo, mas o return é colocado fora do switch :mrgreen:

Wanderson_SAMP
21/02/2014, 11:49 PM
CMD:skin(playerid, params[]) {
new roupas;

if (sscanf(params, "d", roupas)) return SendClientMessage(playerid, -1, "[SINTAXE]: Digite /skin [id do skin]");
if(GetPlayerMoney(playerid) < 50) return SendClientMessage(playerid, -1, "Você não tem dinheiro suficiente!");

switch (roupas)
{
case 1: SetPlayerSkin(playerid, 1) return GivePlayerMoney(playerid, -50);
case 2: SetPlayerSkin(playerid, 2) return GivePlayerMoney(playerid, -50);
case 3: SetPlayerSkin(playerid, 3) return GivePlayerMoney(playerid, -50);

}
return 1;
}

PT
22/02/2014, 01:58 PM
Não sei se o comando está certo, então, poderiam me dá uma ajuda? É a primeira vez que utilizo o switch. (acho que dará erro, mas queria saber se fiz corretamente.) Não estou no computador e sim pelo celular e o código eu fiz pelo caderno mesmo.

CMD:skin(playerid, params[]) {
new roupas;

if (sscanf(params, "d", roupas)) return SendClientMessage(playerid, -1, "[SINTAXE]: Digite /skin [id do skin]");
if(GetPlayerMoney(playerid) < 50) return SendClientMessage(playerid, -1, "Você não tem dinheiro suficiente!");

switch (roupas)
{
case 1: SetPlayerSkin(playerid, 1) return GivePlayerMoney(playerid, -50);
case 2: SetPlayerSkin(playerid, 2) return GivePlayerMoney(playerid, -50);
case 3: SetPlayerSkin(playerid, 3) return GivePlayerMoney(playerid, -50);
return 1;
}
}


nao precisas disso

CMD:skin(playerid, params[])
{
if (sscanf(params, "d", params[0]))
return SendClientMessage(playerid, -1, "[SINTAXE]: Digite /skin [id do skin]");
if(GetPlayerMoney(playerid) < 50)
return SendClientMessage(playerid, -1, "Você não tem dinheiro suficiente!");
SetPlayerSkin(playerid, params[0]);
GivePlayerMoney(playerid, -50);
return 1;
}

vulgo
24/02/2014, 12:06 PM
AJUDA desativar o lagcomp, ja editei no server.cfg mais não desativa..

.FuneraL.
24/02/2014, 01:46 PM
AJUDA desativar o lagcomp, ja editei no server.cfg mais não desativa..

Colocou certinho "lagcompmode 0"?

Locky_
24/02/2014, 07:40 PM
Tem algo pra pegar ou setar o fôlego do player? (só quando entra na água.. avá)

PT
25/02/2014, 08:53 AM
Ainda não tem isso Nick.. Mas era bom ter.

Locky_
25/02/2014, 11:40 PM
Bem, alguém já inventou algum script para enviar torpedo para algum celular?

(script php, que nem enviar e-mails..)

*No caso, seria pra usar conexão do servidor, pro php, e aí .. Funcionar que nem o mailer

RockFire
25/02/2014, 11:43 PM
http://code.tutsplus.com/tutorials/how-to-send-text-messages-with-php--net-17693

ViniBorn
26/02/2014, 02:10 AM
Tem algo pra pegar ou setar o fôlego do player? (só quando entra na água.. avá)

Dá pra fazer um sistema relacionado sem usar funções nativas.

Rhayziin
01/03/2014, 08:15 PM
Olá, quem quiser responder minhas dúvidas aí, ficarei muito grato!

#Dúvida 1

Caso eu queira colocar muitos NPC's em meu server, ele irá dar LAG?

#Dúvida 2

Pow, não consegui achar o FS que cria GangZones In Game (Até o Paulor usa nas videos aulas dele (http://forum.sa-mp.com/showthread.php?t=428964)), alguém teria o Link?

Caio_Freeze
01/03/2014, 08:52 PM
Olá, quem quiser responder minhas dúvidas aí, ficarei muito grato!

#Dúvida 1

Caso eu queira colocar muitos NPC's em meu server, ele irá dar LAG?

#Dúvida 2

Pow, não consegui achar o FS que cria GangZones In Game (Até o Paulor usa nas videos aulas dele (http://forum.sa-mp.com/showthread.php?t=428964)), alguém teria o Link?

a primeira duvida eu não sei te responder mais a segunda pode te ajudar...

uso esse programa para crias as gangzones do meu servidor... muito bom!

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

LucasTadeu
01/03/2014, 09:06 PM
Alguem me ajuda ai :3

#Ajuda 1

Por que meu TEXT LABEL da casa ta bugado assim eu compro a casa ele buga :

http://i60.tinypic.com/2586wxk.png

#Ajuda 2

Por que meu map icon da casa não salva ?

for(new c = 0; c < MAX_CASAS; c++)
{
new string1 [255];
format(string, sizeof(string), "/Casas/casa%d.ini", c);
if(dini_Exists(string))
{
new pickupid;
if(dini_Int(string, "TDono") == 0)
{
pickupid = CreatePickup(1273, 1, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), -1);
dini_IntSet(string, "Id", pickupid);
mapiconcasaid[c] = CreateDynamicMapIcon(dini_Float( string1, "PosX" ) , dini_Float( string1, "PosY" ) , dini_Float( string1, "PosZ" ), 31, -1, -1, -1, -1, 90.0);
proximacasa++;
}
else
{
if(dini_Int(string, "TDono") == 1)
{
pickupid = CreatePickup(1272, 1, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), -1);
dini_IntSet(string, "Id", pickupid);
mapiconcasaid[c] = CreateDynamicMapIcon(dini_Float( string1, "PosX" ) , dini_Float( string1, "PosY" ) , dini_Float( string1, "PosZ" ), 32, -1, -1, -1, -1, 90.0);
proximacasa++;
}
else
{
proximacasa++;
}
}
}
}

PT
02/03/2014, 12:06 PM
Olá, quem quiser responder minhas dúvidas aí, ficarei muito grato!

#Dúvida 1

Caso eu queira colocar muitos NPC's em meu server, ele irá dar

se for uma vps com uma boa RAM não dara. Ou um host com RAM. Depende da máquina

gabrielgremista
03/03/2014, 06:10 AM
Alguém sabe (se existe) o SoundID do tema do GTA que é tocado quando você compra uma propriedade no modo singleplayer?

Na teoria, era pra ser esse: SOUND_PROPERTY_PURCHASED 1149

Mas ele só toca o "bip" que vem antes da música... :|

Sky™
03/03/2014, 03:40 PM
Este problema está ficando chato já !

FallweN
10/03/2014, 02:42 AM
Olá, quem quiser responder minhas dúvidas aí, ficarei muito grato!

#Dúvida 2

Pow, não consegui achar o FS que cria GangZones In Game (Até o Paulor usa nas videos aulas dele (http://forum.sa-mp.com/showthread.php?t=428964)), alguém teria o Link?

Tópico (http://forum.sa-mp.com/showthread.php?t=386815)
Pastebin (http://pastebin.com/UUpQkQLL)

iHarzard
15/03/2014, 11:10 PM
Como eu faço para pegar o ultimo jogador que atirou em mim usando OnPlayerWeaponShot se possivel?

zPain
16/03/2014, 01:39 AM
new lastShooter[MAX_PLAYERS];


public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) {

if(hittype == BULLET_HIT_TYPE_PLAYER) {

lastShooter[hitid] = playerid;
}

return true;
}


Não entendi bem. É isso?

iHarzard
16/03/2014, 09:43 PM
new lastShooter[MAX_PLAYERS];


public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) {

if(hittype == BULLET_HIT_TYPE_PLAYER) {

lastShooter[hitid] = playerid;
}

return true;
}


Não entendi bem. É isso?

Sim, mais o certo não seria?
lastShooter[playerid] = hitid;

PT
16/03/2014, 10:44 PM
Sim, mais o certo não seria?
lastShooter[playerid] = hitid;


nao porque isso seria o ID do tiro e nao o ID da pessoa que disparou o ultimo tiro.

iHarzard
16/03/2014, 11:28 PM
nao porque isso seria o ID do tiro e nao o ID da pessoa que disparou o ultimo tiro.

Interessante.
E como eu faria para getar numa frase? Usaria lastShooter[playerid]?

VenoN
17/03/2014, 08:15 PM
alguem sabe o código daquela textdraw de televisão?
tentei achar o sprite editor app más o link está quebrado ...
se alguém souber obrigado desde ja!

PT
17/03/2014, 08:38 PM
@ iHarzard

SIm


alguem sabe o código daquela textdraw de televisão?
tentei achar o sprite editor app más o link está quebrado ...
se alguém souber obrigado desde ja!



ld_grav:tvcorn

VenoN
17/03/2014, 11:26 PM
reputado

mas este ai vem só uma parte da tv não tem ela completa?

PT
17/03/2014, 11:50 PM
Nao, isso tem de ser vc a montar, agora e simples.

VenoN
17/03/2014, 11:51 PM
montei :D obrigado

GabrielRibeiro
21/03/2014, 07:29 PM
como chamar parametros de variaveis usando zcmd?


cmd_exemplo

por favor..

ProKillerpa
21/03/2014, 07:43 PM
como chamar parametros de variaveis usando zcmd?


cmd_exemplo

por favor..

Explica melhor

GabrielRibeiro
21/03/2014, 07:50 PM
Explica melhor

Exemplo

format(gstring,sizeof(gstring),"/telefonar %d",PlayOnline[playerid][Tels]);
OnPlayerCommandText(playerid,gstring);



Agora como eu faço isso no zcmd?

ProKillerpa
21/03/2014, 07:54 PM
Terei de sair agora urgentemente;

Quando voltar eu faço para você.

GabrielRibeiro
21/03/2014, 07:55 PM
Terei de sair agora urgentemente;

Quando voltar eu faço para você.

Ok :(

Dolby
21/03/2014, 08:13 PM
Ok :(

Podes utilizar CallRemoteFunction (http://wiki.sa-mp.com/wiki/CallRemoteFunction).


CallRemoteFunction("cmd_teleporte", "ds", playerid, params);

GabrielRibeiro
21/03/2014, 08:20 PM
Podes utilizar CallRemoteFunction (http://wiki.sa-mp.com/wiki/CallRemoteFunction).


CallRemoteFunction("cmd_teleporte", "ds", playerid, params);



Mas posso colocaar uma variavel igual no exemplo que vai funcionar normal?

Dolby
21/03/2014, 08:34 PM
Mas posso colocaar uma variavel igual no exemplo que vai funcionar normal?

Sim, basta passa-la como parâmetro.

princeFLAWLES
26/03/2014, 04:29 PM
Olá, eu fiz meu sistema de login em DOF2 mais como estou muito tempo parado eu me esqueci totalmente de como o player se registrar usando letras e números.

Agradeço quem puder me ajudar, Código abaixo.

Pastebin - Código do sistema de registro/login (http://pastebin.com/g2WCFhRj)

ProKillerpa
26/03/2014, 04:47 PM
Olá, eu fiz meu sistema de login em DOF2 mais como estou muito tempo parado eu me esqueci totalmente de como o player se registrar usando letras e números.

Agradeço quem puder me ajudar, Código abaixo.

Pastebin - Código do sistema de registro/login (http://pastebin.com/g2WCFhRj)

"Com essa senha você poderá entrar em nosso UCP para recuperar seus dados."
"Você poderá recuperar suas informações em nosso UCP"

Como pretende fazer um UCP usando DOF2? Sacanagem né man ?

princeFLAWLES
26/03/2014, 06:40 PM
"Com essa senha você poderá entrar em nosso UCP para recuperar seus dados."
"Você poderá recuperar suas informações em nosso UCP"

Como pretende fazer um UCP usando DOF2? Sacanagem né man ?

Eu sei que precisa usar MySQL eu fui digitando qualquer coisa ainda preciso re-fazer todos os textos.

Locky_
26/03/2014, 09:17 PM
O que fazer quando o player morre porém, é exibido para os outros que ele está morto, porém ele ainda se move normalmente. E também, o OnPlayerDeath é chamado sem problemas? '-'

Hempy
28/03/2014, 03:26 PM
Alguém poderia me ajudar? Eu quero que quando player clicar em "comprar" Informe mensagem que está sendo preparado o suco dele, Isso é fácil eu não consigo é criar o tempo usando SetTimerEx.


if(dialogid == 2)
{
if(response)
{
if(listitem == 0)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Laranja entregue!");
return 1;
}
else if(listitem == 1)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Maracujá entregue!");
return 1;
}
else if(listitem == 2)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Morango entregue!");
return 1;
}
else if(listitem == 3)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Goiaba entregue!");
return 1;
}
else if(listitem == 4)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Abacaxi entregue!");
return 1;
}
else if(listitem == 5)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Limão entregue!");
return 1;
}
}
}

Código acima, agradeço quem puder me ajudar.

DannielCooper
28/03/2014, 09:53 PM
O que fazer quando o player morre porém, é exibido para os outros que ele está morto, porém ele ainda se move normalmente. E também, o OnPlayerDeath é chamado sem problemas? '-'

Isso é um bug, não me recordo como se faz, mas a solução com certeza será algo do tipo:

new Float:vida;
GetPlayerHealth(playerid, vida);

if(vida == 0) return TogglePlayerControllable(playerid, 0);


Alguém poderia me ajudar? Eu quero que quando player clicar em "comprar" Informe mensagem que está sendo preparado o suco dele, Isso é fácil eu não consigo é criar o tempo usando SetTimerEx.


if(dialogid == 2)
{
if(response)
{
if(listitem == 0)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Laranja entregue!");
return 1;
}
else if(listitem == 1)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Maracujá entregue!");
return 1;
}
else if(listitem == 2)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Morango entregue!");
return 1;
}
else if(listitem == 3)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Goiaba entregue!");
return 1;
}
else if(listitem == 4)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Abacaxi entregue!");
return 1;
}
else if(listitem == 5)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Limão entregue!");
return 1;
}
}
}

Código acima, agradeço quem puder me ajudar.

SetTimerEx("MeuTimer", 3000, false, "i", playerid);

Lembrando que onde está "MeuTimer" é o nome da callback que vai chamar.

zPain
29/03/2014, 05:03 PM
Alguém poderia me ajudar? Eu quero que quando player clicar em "comprar" Informe mensagem que está sendo preparado o suco dele, Isso é fácil eu não consigo é criar o tempo usando SetTimerEx.


if(dialogid == 2)
{
if(response)
{
if(listitem == 0)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Laranja entregue!");
return 1;
}
else if(listitem == 1)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Maracujá entregue!");
return 1;
}
else if(listitem == 2)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Morango entregue!");
return 1;
}
else if(listitem == 3)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Goiaba entregue!");
return 1;
}
else if(listitem == 4)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Abacaxi entregue!");
return 1;
}
else if(listitem == 5)
{
GivePlayerMoney(playerid, -3);
SendClientMessage(playerid,0xF2DCAFFF,"Suco de Limão entregue!");
return 1;
}
}
}

Código acima, agradeço quem puder me ajudar.



new saboresSuco[][] = {
"Laranja",
"Maracujá",
"Morango",
"Goiaba",
"Abacaxi",
"Limão"
};



public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {

if(dialogid == 2) {

if(response) {

SendClientMessage(playerid, -1, "Aguarde enquanto seu suco é preparado...");
SetTimerEx("entregarSuco", 3000, 0, "ii", playerid, listitem);
}
}

return 1;
}



entregarSuco(playerid, suco); public entregarSuco(playerid, suco) {

new string[64];

GivePlayerMoney(playerid, -3);

format(string, sizeof string, "Suco de %s entregue.", saboresSuco[suco]);
SendClientMessage(playerid, -1, string);
return 1;
}

Rapha3L
01/04/2014, 10:42 AM
CMD:dm1(playerid)
{
SetPlayerPos(playerid,1413.0000,-1.0000,1000.9246);
SendClientMessage(playerid,-1,"{008B45}%s (ID: %d){008B8B}, juntou-se ao DM 1. (Deagle - Spas12)");
SetPlayerVirtualWorld(playerid,6);
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100.0);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 24, 99999);
GivePlayerWeapon(playerid, 27, 99999);
return 1;
}

Ao executar este comando, o servidor vai abaixo. Está a faltar algo que eu não esteja a ver ? :confused:

PT
01/04/2014, 02:27 PM
CMD:dm1(playerid)
{
SetPlayerPos(playerid,1413.0000,-1.0000,1000.9246);
SendClientMessage(playerid,-1,"{008B45}%s (ID: %d){008B8B}, juntou-se ao DM 1. (Deagle - Spas12)");
SetPlayerVirtualWorld(playerid,6);
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100.0);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 24, 99999);
GivePlayerWeapon(playerid, 27, 99999);
return 1;
}

Ao executar este comando, o servidor vai abaixo. Está a faltar algo que eu não esteja a ver ? :confused:


CMD:dm1(playerid)
{
new xPT[128];
GetPlayerName(playerid, xPT, MAX_PLAYER_NAME);
format(xPT, sizeof(xPT), "{008B45}%s (ID: %d){008B8B}, juntou-se ao DM 1. (Deagle - Spas12)", xPT, playerid);
SendClientMessage(playerid, -1, xPT);

SetPlayerPos(playerid,1413.0000,-1.0000,1000.9246);
SetPlayerVirtualWorld(playerid,6);
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100.0);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 24, 99999);
GivePlayerWeapon(playerid, 27, 99999);
return 1;
}

Rapha3L
01/04/2014, 06:00 PM
Obrigado amigo !

Axll
10/04/2014, 02:34 AM
Autenticar(...);
//
SetPlayerPos(...);
SetPlayerFacingAngle(...);
SetPlayerInterior(...);
SetPlayerSkin(...);
//
ApplyAnimation(playerid, "DEALER", "DEALER_IDLE", 4.0, 0, 1, 1, 1, -1);
TogglePlayerControllable(...); //ele ta false aqui.. isso muda alguma coisa?
//
SetPlayerCameraPos(...);
SetPlayerCameraLookAt(...)


bom o problema é que nao seta o anim '-'alguem saberia o pq? XD vlw

PT
10/04/2014, 08:34 AM
voce pre-carregou as anims para o cara?

Axll
10/04/2014, 04:01 PM
não eu so fiz isso '-' como assim pre-carregar? nao entendi nao '-'

PT
10/04/2014, 05:23 PM
não eu so fiz isso '-' como assim pre-carregar? nao entendi nao '-'

codigo pronto: http://forum.sa-mp.com/showpost.php?p=1004589&postcount=11

se quiser analisar melhor o topico, tem um cara que teve o mesmo problema que vc, olhe:

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

veja as 2 paginas.

Axll
10/04/2014, 10:47 PM
infelizmente assim tbm nao da '-', a eu to usando textdraw clicável nesse momento faz alguma diferença?

mau.tito
10/04/2014, 11:01 PM
Autenticar(...);
//
SetPlayerPos(...);
SetPlayerFacingAngle(...);
SetPlayerInterior(...);
SetPlayerSkin(...);
//
ApplyAnimation(playerid, "DEALER", "DEALER_IDLE", 4.0, 0, 1, 1, 1, -1);
TogglePlayerControllable(...); //ele ta false aqui.. isso muda alguma coisa?
//
SetPlayerCameraPos(...);
SetPlayerCameraLookAt(...)


bom o problema é que nao seta o anim '-'alguem saberia o pq? XD vlw

melhor da uma olhada no wiki !
http://wiki.sa-mp.com/wiki/ApplyAnimation

Axll
11/04/2014, 12:00 AM
pse eu olhei mas esse nao é o problema, ele simplesmente nao faz oque eu peço, ja testei com comando e da certo(sim eu sei que na primeira vez ele nao funciona)
é naquela parte mesmo :(

williamgato
11/04/2014, 10:54 PM
meu gamemode foi compilado com sucesso, o meu server.cfg esta configurado normalmente mas quando entro no server todos os comandos sao desconhecidos nao sei o motivo ja loguei como adm para ver se era isso mas nao funciona, alguem me ajuda

PT
11/04/2014, 11:16 PM
esta usando algum processador de comandos e strcmp ao mesmo tempo?

caption
11/04/2014, 11:22 PM
Alguem sabe codigo quando player leva dano aparece em cima da cabeça objeto coração ou colete.

williamgato
12/04/2014, 07:31 PM
ola gostaria de que quando um player criasse um carro novamente o antigo fosse deletado, e tambem gostaria que cada carro fosse limitado ao dono aparecendo "carro criado por (ID)" assim sabendo pelo menos qual e seu carro, eu ja tentei fazer o carro ser excluido mas so consegui fazer ele ser excluido quando vc acaba de fazer o comando e assim o carro nem e criado direito
alguem pode me ajudar?
CMD:c(playerid, params[])
{
new carroid = strval(params);
new Float:X,Float:Y,Float:Z,Float:Angle;
if(isnull(params)) return SendClientMessage(playerid, 0xFF0404FF, "[ERRO] Uso: /C [Carro ID]");
if(carroid < 400 || carroid > 611) return SendClientMessage(playerid,0xFF0404FF, "ID Inexistente");
if(carroid >= 400 && carroid <= 611){
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,Angle);

carrocriado[totalCV] = AddStaticVehicle(carroid, X, Y, Z, Angle, -1, -1);
PutPlayerInVehicle(playerid,carrocriado[totalCV],0);
if(GetPlayerInterior(playerid))
LinkVehicleToInterior(carrocriado[totalCV],GetPlayerInterior(playerid));
SetVehicleVirtualWorld(carrocriado[totalCV],GetPlayerVirtualWorld(playerid));
new string[200];
format(string, sizeof(string), "* Veículo criado com sucesso [ID:%d]", carroid);
SendClientMessage(playerid, 0x0DF713FF, string);
totalCV++;
}
return 1;
}

Locky_
12/04/2014, 11:58 PM
Alguém já sabia dessas funções que o beta tester d0 citou? o.O (tirando a messageholelimit)
http://forum.sa-mp.com/showpost.php?p=2990259&postcount=52

iHarzard
13/04/2014, 12:06 PM
Tem algum meio de o SetPlayerMarkerForPlayer da organização aparecer somente para o pessoal da mesma organização?

VeNuZ_
13/04/2014, 12:13 PM
for(new i = 0; i < GetMaxPlayers(); i++)
if(PlayerInfo[i][Organizacao] == 2)
SetPlayerMarkerForPlayer( i, 1, 0xFF0000FF );

Algo do género disto, mas ajustado ao que voce quer..

DarckWilly
13/04/2014, 03:20 PM
Boas,

Qual é a diferença entre usar:

Istoeumteste()
{
return print("hey");
}

e

forward Istoeumteste();

public Istoeumteste()
{
return print("hey");
}

Obrigado

rjjj
13/04/2014, 09:39 PM
Boas,

Qual é a diferença entre usar:

Istoeumteste()
{
return print("hey");
}

e

forward Istoeumteste();

public Istoeumteste()
{
return print("hey");
}

Obrigado


Esses dois códigos servem para criar uma função, que é um subprograma, denominada Istoeumteste :mrgreen:.



O método de criação de funções que o primeiro código utiliza é o genérico em Pawn. Já o do segundo código tem o propósito específico de produzir funções públicas, que se destacam por poderem ser chamadas externamente ao código Pawn.



As callbacks do SA-MP, como OnPlayerConnect e OnPlayerUpdate, são exemplos desse último caso. Elas são funções públicas, em Pawn, que automaticamente são executadas durante o jogo por códigos internos do software SA-MP :p.



Uma aplicação prática das funções públicas são as funções que podem ser executadas por funções do SA-MP como SetTimer e CallRemoteFunction.



Espero ter ajudado :p.

DarckWilly
14/04/2014, 01:13 AM
Esses dois códigos servem para criar uma função, que é um subprograma, denominada Istoeumteste :mrgreen:.



O método de criação de funções que o primeiro código utiliza é o genérico em Pawn. Já o do segundo código tem o propósito específico de produzir funções públicas, que se destacam por poderem ser chamadas externamente ao código Pawn.



As callbacks do SA-MP, como OnPlayerConnect e OnPlayerUpdate, são exemplos desse último caso. Elas são funções públicas, em Pawn, que automaticamente são executadas durante o jogo por códigos internos do software SA-MP :p.



Uma aplicação prática das funções públicas são as funções que podem ser executadas por funções do SA-MP como SetTimer e CallRemoteFunction.



Espero ter ajudado :p.

Muito Obrigado pela explicaçao! :D

arakuta
15/04/2014, 10:33 AM
@DarckWilly @rjjj

Funções do modo genérico do PAWN são um pouquinho mais rápidas :D

PS: Grande RJJJ!

ZaturN
18/04/2014, 03:29 AM
Pra que serve o item de Aumentar o Grave la na loja de tuning ? (NO GTA OFF)

Locky_
18/04/2014, 03:49 AM
Pra que serve o item de Aumentar o Grave la na loja de tuning ? (NO GTA OFF)

Aumentar o grave do som o rái. Dá uma pequena diferença nos graves quando adiciona a opção (pouco dá pra perceber).

Stroon
18/04/2014, 04:15 AM
Galera alguém pode me ajudar à como pegar os objetos que vem na GM de PPC_Trucking achei uns objetos de radar e outros e queria pegar o ID, Mais eu pego os arquivos .pawn e abro no map construction e não aparece nada, Nem aparece nada quando abro o arquivos no pawn..


Abraços!

caoraivoso3
18/04/2014, 03:14 PM
a callback onplayerdeath chama a callback onplayerspawn?

SkullFire
18/04/2014, 03:54 PM
Alguém tem algum tutorial ensinando o uso e a manipulação do sqlite ? Em português, porquê, em inglês eu não entendo nada .

ZaturN
19/04/2014, 03:27 AM
da para desativar o transfender ?, tipo para ninguem poder utilizar, pq eu quero fazer uma outra coisa la.

arakuta
20/04/2014, 01:16 PM
@ZaturN

Poem uma grade na porta!

@caoraivoso3

Não. A callback OnPlayerSpawn é chamada pelo cliente, quando o jogador respawna.

mau.tito
20/04/2014, 06:16 PM
Galera alguém pode me ajudar à como pegar os objetos que vem na GM de PPC_Trucking achei uns objetos de radar e outros e queria pegar o ID, Mais eu pego os arquivos .pawn e abro no map construction e não aparece nada, Nem aparece nada quando abro o arquivos no pawn..


Abraços!

Os objetos deste GM , fica em uma include !

araorn
25/04/2014, 05:33 AM
Os objetos deste GM , fica em uma include !

como eu faço para deixar os objetos do meu server em uma include?

arakuta
25/04/2014, 02:05 PM
@araorn

O próprio nome da include já diz como ela funciona :D

Quando você coloca no seu GM: #include <MinhaInclude>

Na hora da compilação, será substituido pelo que está dentro do MinhaInclude.inc! Interessante não? :D

Existem algumas maneira que você fazer para criar seus mapas em uma include. A mais simple seria criar uma função dentro da include que cria os objetos, mais ou menos assim:

#include <a_samp>
#include <MinhaInclude>

public OnGameModeInit()
{
LoadObjects();

return 1;
}

Viu que eu chamei a função LoadObjects e carreguei a include MinhaInclude? Isso não existe nativamente no samp, então vamos criar:

// Arquivo MinhaInclude.inc

LoadObjects()
{
//CreateObject(...);
//CreateObject(...);
//CreateObject(...);

}

Na hora de compilar, dentro do seu amx, ficaria assim:

// Dados da include a_samp...

LoadObjects()
{
//CreateObject(...);
//CreateObject(...);
//CreateObject(...);

}

public OnGameModeInit()
{
LoadObjects();

return 1;
}

Existem outros metodos, como o hook, onde você pode fazer com que OnGameModeInit execute automaticamente o LoadObjects sem você precisar deixar isto explícito no seu gamemode.

Espero que tenha entendido :D

DoN_ReNaTo
27/04/2014, 09:23 PM
eu to fazendo um sistema aqui de roubar com dinamite, mais 2 coisas estão me impedindo de terminar :(. Que é saber a id da dinamite e do cofre fechado :confused:, pois o cofre aberto eu ja sei é 1829. alguem sabe? ja olhei nos objetos da wikisamp mais não achei.

DevilAgain
30/04/2014, 02:56 PM
Como eu verifico se o player ta agachado?

Quero que ele fique tonto quando fica agachado (setplayerdrunkelevel) algo assim,

BadFella
30/04/2014, 03:02 PM
eu to fazendo um sistema aqui de roubar com dinamite, mais 2 coisas estão me impedindo de terminar :(. Que é saber a id da dinamite e do cofre fechado :confused:, pois o cofre aberto eu ja sei é 1829. alguem sabe? ja olhei nos objetos da wikisamp mais não achei.

1654 - dinamite

2332 - cofre aberto

ProKillerpa
30/04/2014, 03:03 PM
Como eu verifico se o player ta agachado?

Quero que ele fique tonto quando fica agachado (setplayerdrunkelevel) algo assim,

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

Para verificar se ele está agachado.

AlisonPereira
30/04/2014, 08:33 PM
o que tem de errado ?
CMD:hesoyam(playerid, params[])
{

if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Voce nao esta logado na RCON.");
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFFFFFFF,"ganhou $250000 por usar meu commando");
GivePlayerMoney(playerid, 250000);
}
return 1;
}
}

eu Logo no Rcon e digito o comando e aparece o erro do mesmo jeito. a mensagem de erro "Voce nao esta logado na RCON."

Me ajudem por favor

ProKillerpa
30/04/2014, 10:51 PM
o que tem de errado ?
CMD:hesoyam(playerid, params[])
{

if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Voce nao esta logado na RCON.");
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFFFFFFF,"ganhou $250000 por usar meu commando");
GivePlayerMoney(playerid, 250000);
}
return 1;
}
}

eu Logo no Rcon e digito o comando e aparece o erro do mesmo jeito. a mensagem de erro "Voce nao esta logado na RCON."

Me ajudem por favor

CMD:hesoyam(playerid, params[]) {
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Voce nao esta logado na RCON.");

SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFFFFFFF,"ganhou $250000 por usar meu commando");
GivePlayerMoney(playerid, 250000);
return 1;
}

ZaturN
01/05/2014, 12:34 AM
Dá para cancelar um timer repetitivo de 5 minutos ?

ProKillerpa
01/05/2014, 12:54 AM
Dá para cancelar um timer repetitivo de 5 minutos ?

Não entendi direito, seria isso?

KillTimer(Timer);

ZaturN
02/05/2014, 02:09 AM
Sim, testei e funcionou.

Já aproveitando a resposta, da para texturizar mapas com texturas que não tem no gta tipo por ex: uma foto minha, uma placa escrito coca-cola ?

PT
03/05/2014, 01:41 PM
Sim, testei e funcionou.

Já aproveitando a resposta, da para texturizar mapas com texturas que não tem no gta tipo por ex: uma foto minha, uma placa escrito coca-cola ?

Foto sua nao.

WillyWonkaXP
03/05/2014, 11:53 PM
Como fazer um pickup giratório?

Input
03/05/2014, 11:59 PM
Como fazer um pickup giratório?

Falei que deveria ter postado aqui, mas já que criou um topico é inutil postar aqui ^^

Toda pickup tem efeito de rotação, não tem como manipular isso..
Basta cria-la com AddStaticPickup ou CreatePickup.. Procure da SA:MP Wiki ^^

DoN_ReNaTo
13/05/2014, 01:33 PM
Tem como desativar esses segundos no chat do samp?
http://i.imgur.com/vBnGcsc.jpg

RodrigoBsC
13/05/2014, 01:36 PM
/timestamp ?!

SkullFire
17/05/2014, 01:37 AM
Alguém sabe qual o código que permite usar tal comando só se o player estiver perto ?Thanks :)

zPain
17/05/2014, 01:39 AM
Não faltam opções:
- IsPlayerInRangeOfPoint
- GetPlayerDistanceFromPoint
Entre outros métodos.

SkullFire
17/05/2014, 01:43 AM
Não faltam opções:
- IsPlayerInRangeOfPoint
- GetPlayerDistanceFromPoint
Entre outros métodos.

Perto de outro player . rs , expliquei mal. Mas seria mesmo esses códigos ? Exemplo, quero usar o comando. /cu [ID] .
Só funcionaria se estivesse perto do player que eu digitasse o id. Obrigado ^^

tonisantolia
17/05/2014, 05:15 PM
Perto de outro player . rs , expliquei mal. Mas seria mesmo esses códigos ? Exemplo, quero usar o comando. /cu [ID] .
Só funcionaria se estivesse perto do player que eu digitasse o id. Obrigado ^^

Pode usar IsPlayerInRangeOfPoint e GetPlayerPos para fazer isso.. Basta pesquisar.

SkullFire
17/05/2014, 05:56 PM
Pode usar IsPlayerInRangeOfPoint e GetPlayerPos para fazer isso.. Basta pesquisar.

Entendi, mas por exemplo, eu vou te mostrar um comando q incompleto para você dar uma olhada . No caso , o darid funcionaria apenas para o id 0. Não tenho ideia de como pode ser feito isso :s


new darid, valor, str[128], Name[MAX_PLAYER_NAME];
new Float:Pos[3];
GetPlayerPos(darid, Pos[0], Pos[1], Pos[2]);
if(sscanf(params, "ui", darid, valor))
return SendClientMessage(playerid, -1, "Use /dargrana [ID/Nome] [Valor]");

if(IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid, VERMELHO, "Jogador não está perto de você!");

tonisantolia
17/05/2014, 06:04 PM
new darid, valor, str[128], Name[MAX_PLAYER_NAME];
new Float:Pos[3];
if(sscanf(params, "ui", darid, valor))
return SendClientMessage(playerid, -1, "Use /dargrana [ID/Nome] [Valor]");

GetPlayerPos(darid, Pos[0], Pos[1], Pos[2]);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2]))
return SendClientMessage(playerid, VERMELHO, "Jogador não está perto de você!");

SkullFire
17/05/2014, 06:11 PM
new darid, valor, str[128], Name[MAX_PLAYER_NAME];
new Float:Pos[3];
if(sscanf(params, "ui", darid, valor))
return SendClientMessage(playerid, -1, "Use /dargrana [ID/Nome] [Valor]");

GetPlayerPos(darid, Pos[0], Pos[1], Pos[2]);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2]))
return SendClientMessage(playerid, VERMELHO, "Jogador não está perto de você!");

Aeeeeeeeee, rsrs, obrigado. +Rep

tonisantolia
17/05/2014, 06:19 PM
Aeeeeeeeee, rsrs, obrigado. +Rep

Só para explicar o porque estava indo apenas para o id 0.

Como você usou a função GetPlayerPos antes do SSCANF o valor da variável do id do jogador estava igual a 0, pois o sscanf ainda não tinha sido chamado para armazenar o valor.

Paramount.
18/05/2014, 03:15 AM
Gente, preciso urgente aprender usar strmid.
Tentei aprender com o tuto do sa-mp wiki mas nao entendi ao certo.
Alguem poderia me explicar e colocar um exemplo de uso? Preciso migrar 2 strings para outro arquivo, e urgenteeee.

ProKillerpa
18/05/2014, 04:42 AM
Gente, preciso urgente aprender usar strmid.
Tentei aprender com o tuto do sa-mp wiki mas nao entendi ao certo.
Alguem poderia me explicar e colocar um exemplo de uso? Preciso migrar 2 strings para outro arquivo, e urgenteeee.

Vendo os parâmetros

strmid( dest[], const source[], start, end, maxlength=sizeof dest);

Explicando,


Dest: String que armazena os caracteres extraídos



Source: String que libera/solta/extrai caracteres armazenados em dest

Start: Caracter 1°

End: Ultimo Caracter

Maxlength: Comprimento da caracter / Tamanho da caracter

Ex:

if( strmid( StringQueArmazenaNome, "ProKillerPa", 0, 24, 24)) return Kick(playerid);

Leve em consideração que StringQueArmazenaNome é usada com a função GetPlayerName;

Complementando:


0 > Caracter Inicial
24 > Final/Ultima
24 > Maximo String(Para nomes o max é 24)


& por fim,

Strmid extrai uma série de caracteres de uma string.

Acho que da pra entender bem agora, se tiver duvidas só fala.

tonisantolia
18/05/2014, 05:19 PM
Usar o termo int como nome de variável pode dar algum problema?

Exemplo:
new int[2];
if(sscanf(params,"ii",int[0], int[1])) ....

Pois as vezes acho desnecessário dar nomes para variáveis do tipo inteiro..
Este exemplo de script daria algum problema? Pois, até onde eu saiba o Pawn não usa o int no SA:MP.

Paramount.
18/05/2014, 07:42 PM
Vendo os parâmetros

strmid( dest[], const source[], start, end, maxlength=sizeof dest);

Explicando,


Dest: String que armazena os caracteres extraídos



Source: String que libera/solta/extrai caracteres armazenados em dest

Start: Caracter 1°

End: Ultimo Caracter

Maxlength: Comprimento da caracter / Tamanho da caracter

Ex:

if( strmid( StringQueArmazenaNome, "ProKillerPa", 0, 24, 24)) return Kick(playerid);

Leve em consideração que StringQueArmazenaNome é usada com a função GetPlayerName;

Complementando:


0 > Caracter Inicial
24 > Final/Ultima
24 > Maximo String(Para nomes o max é 24)


& por fim,

Strmid extrai uma série de caracteres de uma string.

Acho que da pra entender bem agora, se tiver duvidas só fala.


Muito obrigado :)

rjjj
22/05/2014, 03:56 AM
Usar o termo int como nome de variável pode dar algum problema?

Exemplo:
new int[2];
if(sscanf(params,"ii",int[0], int[1])) ....

Pois as vezes acho desnecessário dar nomes para variáveis do tipo inteiro..
Este exemplo de script daria algum problema? Pois, até onde eu saiba o Pawn não usa o int no SA:MP.


O termo int não é uma palavra reservada da linguagem Pawn, apesar de existir a classificação de dado inteiro, que engloba os dados sem tag ou de tag _:. Não haveria problemas em usar essa palavra como um nome ou, como é dito formalmente, identificador :mrgreen:.



Um detalhe que pode causar confusão é o fato de a palavra int ser colorida em azul no editor padrão pawno. Isso ocorre somente devido ao pawno ter sido anteriormente um editor para a linguagem C++, que tem int como palavra reservada.



Espero ter ajudado :p.

death1
26/05/2014, 11:48 AM
Isso deveria contar minutos..

SetTimerEx("DesmutarTemp", tempo*60, false, "i", playerid);

Algo errado?

Caio_Freeze
26/05/2014, 11:58 AM
Isso deveria contar minutos..

SetTimerEx("DesmutarTemp", tempo*60, false, "i", playerid);

Algo errado?

SetTimerEx("DesmutarTemp", 1000*60*5, false, "i", playerid);

obs: no lugar do 5 você coloca pelo tempo que você quiser, no caso ai é 5 min.

Abraços.

death1
26/05/2014, 12:09 PM
SetTimerEx("DesmutarTemp", 1000*60*5, false, "i", playerid);

obs: no lugar do 5 você coloca pelo tempo que você quiser, no caso ai é 5 min.

Abraços.

Já resolvi cara mais obrigado rs :D

Caio_Freeze
26/05/2014, 12:10 PM
Já resolvi cara mais obrigado rs :D

De nada ;)

26/05/2014, 08:47 PM
E possivel usar bodypart na public OnPlayerDeath eu tentei usar mas ta dando Undefined symbol ja atualizei a versao do samp e criei as define BODY_PART sera porque nao da certo ?

Caio_Freeze
26/05/2014, 09:06 PM
E possivel usar bodypart na public OnPlayerDeath eu tentei usar mas ta dando Undefined symbol ja atualizei a versao do samp e criei as define BODY_PART sera porque nao da certo ?

é só você olhar os parametros, no caso da OnPlayerDeath não.
public OnPlayerDeath(playerid, killerid, reason)

Input
26/05/2014, 09:41 PM
E possivel usar bodypart na public OnPlayerDeath eu tentei usar mas ta dando Undefined symbol ja atualizei a versao do samp e criei as define BODY_PART sera porque nao da certo ?

Com HOOK da para fazer.. ( Não tenho certeza ).

PT
26/05/2014, 10:18 PM
E possivel usar bodypart na public OnPlayerDeath eu tentei usar mas ta dando Undefined symbol ja atualizei a versao do samp e criei as define BODY_PART sera porque nao da certo ?

faz com essa callback: http://wiki.sa-mp.com/wiki/OnPlayerTakeDamage

Input
26/05/2014, 10:25 PM
Toda variável quando criada recebe o valor de 0 correto?
Então se eu colocar o loop:
for(new i; i < MAX_PLAYERS; ++ i)
não seria necessário colocar new i = 0

Isso é correto?

@Riichard
27/05/2014, 07:54 PM
Olhei alguns tutoriais de looping, e etc. Porém, tive uma dúvida!

Como posso verificar o último "número" que o loop "carregou"?

Sei que dá para fazer com variável, porém, quero saber se existe outro modo de verificar qual foi o último número carregado pelo loop. :mrgreen:.

28/05/2014, 01:40 AM
Como faço pra colocar na sendclientmessage a certa parte do corpo que foi atingido com bodypart ex: voce foi atingido na perna, braço etc.

SkullFire
28/05/2014, 01:57 AM
Como faço pra colocar na sendclientmessage a certa parte do corpo que foi atingido com bodypart ex: voce foi atingido na perna, braço etc.

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(issuerid != INVALID_PLAYER_ID && weaponid == IDARMA && bodypart == 9)
{
SendClientMessage(playerid, -1, "Você foi atingido na cabeça");
}
return 1;
}

Pode existir outros métodos, não sei, mas foi isso que me veio na cabeça.

http://wiki.sa-mp.com/wiki/Body_Parts
http://wiki.sa-mp.com/wiki/OnPlayerTakeDamage

28/05/2014, 11:32 PM
Como faço pra verificar quando o player toma o ultimo tiro ou seja morre pela public OnPlayerTakeDamage?

Dolby
29/05/2014, 01:35 AM
Toda variável quando criada recebe o valor de 0 correto?
Então se eu colocar o loop:
for(new i; i < MAX_PLAYERS; ++ i)
não seria necessário colocar new i = 0

Isso é correto?

No caso do Pawn sim. Ao ser criada ela automaticamente assume valor 0, mas não podemos levar essa ideologia para outras linguagens, como por exemplo C++.

Olhei alguns tutoriais de looping, e etc. Porém, tive uma dúvida!

Como posso verificar o último "número" que o loop "carregou"?
Sei que dá para fazer com variável, porém, quero saber se existe outro modo de verificar qual foi o último número carregado pelo loop. :mrgreen:.
Bom, sua dúvida ficou um tanto vaga, dê exemplos com códigos para se expressar de uma forma mais sucinta.

PT
29/05/2014, 09:07 AM
Olhei alguns tutoriais de looping, e etc. Porém, tive uma dúvida!

Como posso verificar o último "número" que o loop "carregou"?

Sei que dá para fazer com variável, porém, quero saber se existe outro modo de verificar qual foi o último número carregado pelo loop. :mrgreen:.

eu quando quero saber isso faço algo tipo isto:

new xptconta = 0;
for(new xpt = 0; xpt < 10; xpt++)
{
xptconta++;
}
printf("Total %d", xptconta);

Input
29/05/2014, 12:14 PM
No caso do Pawn sim. Ao ser criada ela automaticamente assume valor 0, mas não podemos levar essa ideologia para outras linguagens, como por exemplo C++.


Bom, sua dúvida ficou um tanto vaga, dê exemplos com códigos para se expressar de uma forma mais sucinta.

então em pawn posso utilizar:
for(new i; i < MAX_PLAYERS; ++ i)

PT
29/05/2014, 12:51 PM
então em pawn posso utilizar:
for(new i; i < MAX_PLAYERS; ++ i)

poder pode, mas nao custa nada declarar um valor para ela.

eu na minha opiniao recomendo sempre a declarar um valor

death1
31/05/2014, 01:43 AM
Qual forma é mais otimizada?

for(new i; i < MAX_PLAYERS; ++ i)

ou

for(new i; i < GetMaxPlayers(); ++ i)

Input
31/05/2014, 02:17 AM
Qual forma é mais otimizada?

for(new i; i < MAX_PLAYERS; ++ i)

ou

for(new i; i < GetMaxPlayers(); ++ i)

for(new i; i < MAX_PLAYERS; ++ i)

Dolby
31/05/2014, 03:07 AM
Qual forma é mais otimizada?

for(new i; i < MAX_PLAYERS; ++ i)

ou

for(new i; i < GetMaxPlayers(); ++ i)

for(new i; i < MAX_PLAYERS; ++ i)

Na verdade é a segunda forma. De padrão, MAX_PLAYERS tem valor 500/800, já GetMaxPlayers (http://wiki.sa-mp.com/wiki/GetMaxPlayers) obtêm essa quantidade diretamente do arquivo de configurações do servidor(server.cfg).

Mas otimizado ainda seria fazer um undef em MAX_PLAYERS:


#if defined MAX_PLAYERS
#undef MAX_PLAYERS
#endif
#define MAX_PLAYERS 50


Abraços.

@Riichard
02/06/2014, 11:28 PM
eu quando quero saber isso faço algo tipo isto:

new xptconta = 0;
for(new xpt = 0; xpt < 10; xpt++)
{
xptconta++;
}
printf("Total %d", xptconta);


Era desse jeito que eu fazia, mas queria de outro modo.. Mas, vou ter que usar esse modo mesmo!

Obrigado, PT & Dolby.

[Ips]Guh
03/06/2014, 08:27 PM
eu quando quero saber isso faço algo tipo isto:

new xptconta = 0;
for(new xpt = 0; xpt < 10; xpt++)
{
xptconta++;
}
printf("Total %d", xptconta);
Era desse jeito que eu fazia, mas queria de outro modo.. Mas, vou ter que usar esse modo mesmo!

Obrigado, PT & Dolby.

Porque não utilizar a própria variável do loop para tal verificação? A variável i no caso.


new i;
for(i = 0; i < 50; i++)
{
if(i == 20) break;
}
printf("O loop parou na %d iteração!", i);

Axll
04/06/2014, 10:17 PM
Estou tento alguns problemas com uma função que criei, mas nao vejo o erro:

stock mObterFim(categoria) {
new int;
for(new index = 0; index < max_objetos; index++) {
if(objetos[index][l_categoria] != categoria) continue;
int++;
}
int--;
return int;
}


eu ja testei de varias formas e continua dando erro, a função dela é pegar o ultimo objeto na categoria
exemplo: caso eu entrasse com a categoria arvores, ele procuraria todos os objetos com essa categoria e adicionaria +1 para a variável int, como começa no zero eu coloquei o -1 no final.

uso da funcao:


if(GetPVarInt(playerid, "Index") == gerar_fim(GetPVarInt(playerid, "Categoria"))) {
}
else {

}


o estranho é que não entra no o if e nem vai para o else..ele simplesmente para ali na checagem lol

#edit lendo o topico achei um erro no código 2, falta de atenção, e olha que eu olhei diversas vezes, vou ver se resolve, mas acho que nao mudara nada, aguardo respostas

PT
05/06/2014, 08:34 AM
stock mObterFim(categoria)
{
new xvalor;
for(new index = 0; index < max_objetos; index++)
if(objetos[index][l_categoria] == categoria)
xvalor++;
return xvalor;
}

testa ai, não entendi a lógica de tar a retirar um valor da variável após ter adicionado 1 '-'.

não recomendo usar a nomenclatura int para declaração de variáveis.

Axll
05/06/2014, 07:31 PM
stock mObterFim(categoria)
{
new xvalor;
for(new index = 0; index < max_objetos; index++)
if(objetos[index][l_categoria] == categoria)
xvalor++;
return xvalor;
}

testa ai, não entendi a lógica de tar a retirar um valor da variável após ter adicionado 1 '-'.

não recomendo usar a nomenclatura int para declaração de variáveis.

vlw PT voce me ajudou duas vezes aqui ja *-*, preciso retirar 1 pois o id começa no zero assim vai contar uma mais do que eu preciso..pelo menos foi oque aconteceu no print, aa sobre o int, eu uso o notepad++ ai fica normal pra mim..nao faz diferença no visual aqui. vlw amo voce XD

#edit bom nao fez diferença, acho que agora so esta pegando o primeiro id ainda..

PT
05/06/2014, 10:11 PM
vlw PT voce me ajudou duas vezes aqui ja *-*, preciso retirar 1 pois o id começa no zero assim vai contar uma mais do que eu preciso..pelo menos foi oque aconteceu no print, aa sobre o int, eu uso o notepad++ ai fica normal pra mim..nao faz diferença no visual aqui. vlw amo voce XD

#edit bom nao fez diferença, acho que agora so esta pegando o primeiro id ainda..

quando vc quer pegar o valor começado no zero declara uma variável como -1

stock mObterFim(categoria)
{
new xvalor;
for(new index = -1; index < max_objetos; index++)
if(objetos[index][l_categoria] == categoria)
xvalor++;
return xvalor;
}

Axll
05/06/2014, 11:13 PM
puts nem sabia dessa vlw ai, mas tipo continua nao passando da if, quando eu uso o falor normal por exemplo o 3 no lugar da funcao da certo, mas quando uso a funcao nao passa da if e nem cria o objeto que esta fora da funcao '-'
exemplo:

if(GetPVarInt(playerid, "Index") == ObjetoLocal(INDEX_FIM, GetPVarInt(playerid, "Categoria"))) {
/*SetPVarInt(playerid, "Index", ObjetoLocal(INDEX_INICIO, GetPVarInt(playerid, "Categoria")));*/
}
else {
SetPVarInt(playerid, "Index", GetPVarInt(playerid, "Index")+1);
}
DestroyObject(objeto_demo[playerid]);
objeto_demo[playerid] = CreateObject(objetos[GetPVarInt(playerid, "Index")][l_modelo], 1805.0101, -1679.9380, 14.5042, 0.0, 0.0, 0.0);

DoN_ReNaTo
06/06/2014, 12:22 AM
qual o modo melhor?


YCMD:test(playerid, params[], help)//teste 1
{
if(help) return SendClientMessage(playerid, -1, "teste, testando, testado...");
if(sscanf(params,"u",params)) return SendClientMessage(playerid, -1, "USE: /test [ID]");//duv ta aqui
GivePlayerMoney(params, 999999999);
SetPlayerHealth(params, 100);
GivePlayerWeapon(params, 38, 9999);
SendClientMessage(params, -1, "Isso é um test... você ganhou life, arma, grana!!!");
return 1;
}
YCMD:test2(playerid, params[], help)//teste 2
{
if(help) return SendClientMessage(playerid, -1, "teste, testando, testado...");
if(isnull(params)) return SendClientMessage(playerid, -1, "USE: /test2 [ID]");//duv ta aqui
GivePlayerMoney(params, 999999999);
SetPlayerHealth(params, 100);
GivePlayerWeapon(params, 38, 9999);
SendClientMessage(params, -1, "Isso é um test... você ganhou life, arma, grana!!!");
return 1;
}


e como fazer isso no ycmd?


if(strcmp(cmd, "/test1", true) == 0 || strcmp(cmd, "/tst1", true) == 0)
{
//....
}

PT
06/06/2014, 09:25 AM
puts nem sabia dessa vlw ai, mas tipo continua nao passando da if, quando eu uso o falor normal por exemplo o 3 no lugar da funcao da certo, mas quando uso a funcao nao passa da if e nem cria o objeto que esta fora da funcao '-'
exemplo:

if(GetPVarInt(playerid, "Index") == ObjetoLocal(INDEX_FIM, GetPVarInt(playerid, "Categoria"))) {
/*SetPVarInt(playerid, "Index", ObjetoLocal(INDEX_INICIO, GetPVarInt(playerid, "Categoria")));*/
}
else {
SetPVarInt(playerid, "Index", GetPVarInt(playerid, "Index")+1);
}
DestroyObject(objeto_demo[playerid]);
objeto_demo[playerid] = CreateObject(objetos[GetPVarInt(playerid, "Index")][l_modelo], 1805.0101, -1679.9380, 14.5042, 0.0, 0.0, 0.0);


pera ai, explica melhor o que vc quer fazer, para poder ajudar melhor.

qual o modo melhor?


YCMD:test(playerid, params[], help)//teste 1
{
if(help) return SendClientMessage(playerid, -1, "teste, testando, testado...");
if(sscanf(params,"u",params)) return SendClientMessage(playerid, -1, "USE: /test [ID]");//duv ta aqui
GivePlayerMoney(params, 999999999);
SetPlayerHealth(params, 100);
GivePlayerWeapon(params, 38, 9999);
SendClientMessage(params, -1, "Isso é um test... você ganhou life, arma, grana!!!");
return 1;
}
YCMD:test2(playerid, params[], help)//teste 2
{
if(help) return SendClientMessage(playerid, -1, "teste, testando, testado...");
if(isnull(params)) return SendClientMessage(playerid, -1, "USE: /test2 [ID]");//duv ta aqui
GivePlayerMoney(params, 999999999);
SetPlayerHealth(params, 100);
GivePlayerWeapon(params, 38, 9999);
SendClientMessage(params, -1, "Isso é um test... você ganhou life, arma, grana!!!");
return 1;
}


e como fazer isso no ycmd?


if(strcmp(cmd, "/test1", true) == 0 || strcmp(cmd, "/tst1", true) == 0)
{
//....
}



quanto à primeira pergunta se so tiver 1 parâmetro recomendo usar o segundo método

ja na seguda pergunta usa a função Command_AddAltNamed, coloque na ongamemodinit

ex: Command_AddAltNamed("test1", "tst1");

deixo aqui um link que podera lhe ajudar: http://forum.sa-mp.com/showthread.php?t=460056

Axll
06/06/2014, 04:36 PM
pera ai, explica melhor o que vc quer fazer, para poder ajudar melhor.


eu estou organizando objetos por categoria, exemplo:



enum enum_objetos {
modelo,
categoria
...
}

new objetos[max_objetos][enum_objetos] = {
{0, arvores, "arvore grande sdiadoasd"}, //0
{0, arvores, "arvore pequena e escura sl"}, //1
{0, arvores, "arvore pequena e escura sl", //2
{0, casas, "casa pequena"}, //3
.. e por ai vai
};



entao eu fiz aquela funcao pra saber em que id a categoria começa e no qual ela termina, tipo as arvores começa no id 0 e termina no id 2, se eu for colocar manualmente vai dar muito rolo quando for add mais um objeto..entende?

quero o id de inicio e id do fim da categoria

ai eu posso chegar se o id que eu estou é = ou maior que o inicio ou = ou menor que o fim, assim posso fazer oque eu quero..mas a funcao de checar o fim que eu fiz nao funciona, na verdade funciona mais no codigo com if que eu te mandei antes simplesmente nao roda..

ja testei ela no solo com print no onfilterscriptinit e rodou certinho.., mas no if no qual te passei acima anteriormente nao roda, ele simplesmente nao executa todo aquele codigo ate a criacao do objeto que esta fora..

death1
06/06/2014, 07:31 PM
Como setar uma funçao mesmo o player estando offlline em DOF2?

Dolby
06/06/2014, 08:32 PM
Como setar uma funçao mesmo o player estando offlline em DOF2?

Basta ter o nome do mesmo, que você pode obter em alguma variável ou até mesmo de um arquivo a parte que contem estes nomes.

Abraços.

DoN_ReNaTo
07/06/2014, 12:28 AM
outra duvida sobre ycmd:

como eu faria algo assim?


new teste = 1;
format(string,sizeof(string),"/test %d", teste);
OnPlayerCommandText(playerid,string);

Dolby
07/06/2014, 12:54 AM
outra duvida sobre ycmd:

como eu faria algo assim?


new teste = 1;
format(string,sizeof(string),"/test %d", teste);
OnPlayerCommandText(playerid,string);


You should really be thinking about WHY you want to call the command! Commands are an interface to code functionality for users. If you need to use that code from other places in your script you are doing it the wrong way! Put the code in a separate function and call that instead.


Ou seja, não há como. Você pode criar uma callback para esta ação.

Abraços.

07/06/2014, 05:18 PM
Fiz um verificador para ver quando o player acerta alguém com a bazuca de perto mas nao da certo, tentei com a sniper deu certo, será pq a bazuca não vai?


public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
if (weaponid == 36)
{
new Float: X, Float: Y, Float: Z;
GetPlayerPos(playerid, X, Y, Z);
if (IsPlayerInRangeOfPoint(damagedid, 50.0, X, Y, Z))
{

SendClientMessage(playerid, COLOR_RED, "Não e permitido o uso de bazuca de perto!.");
}
}
return 1;
}

death1
07/06/2014, 06:49 PM
Tem um comando de exemplo dolby?

Dolby
07/06/2014, 06:59 PM
Fiz um verificador para ver quando o player acerta alguém com a bazuca de perto mas nao da certo, tentei com a sniper deu certo, será pq a bazuca não vai?


Veja esta observação na Wiki:

The weaponid will return 37 (flame thrower) from any fire sources (e.g. molotov, 18 )


Ou seja, armas que dão dano com fogo(molotov, RPG, ...) sempre irá ter o weaponid com valor 37.


Tem um comando de exemplo dolby?

Basicamente você cria um arquivo com o nome do jogador dentro dele. Por exemplo, criamos o arquivo "Jogadores.ini", e nele vamos inserir os nomes dos jogadores que você deseja obter ou alterar esses dados mesmo sem estar conectado. Abrimos o arquivo, lemos linha por linha, e em cada linha ira conter o nome do jogador que se deseja alterar, tendo o nome do jogador, basta abrir o arquivo do mesmo e fazer as alterações necessárias.


Abraços.

08/06/2014, 12:22 AM
Veja esta observação na Wiki:


Ou seja, armas que dão dano com fogo(molotov, RPG, ...) sempre irá ter o weaponid com valor 37.


Então nao e possivel verificar quando o player atinge alguém com a bazuca pela distancia?

Dolby
08/06/2014, 02:09 AM
Então nao e possivel verificar quando o player atinge alguém com a bazuca pela distancia?

É possível sim, apenas ressaltei o fato de que danos causados por armas explosivas sempre irão ter o weaponid com valor 37, mas você pode utilizar GetPlayerWeapon (wiki.sa-mp.com/wiki/GetPlayerWeapon) para obter a arma que o jogador está segurando no momento que este evento é chamado.


public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
if (GetPlayerWeapon(playerid) == 36)
{
new Float: X, Float: Y, Float: Z;
GetPlayerPos(damagedid, X, Y, Z);
if (IsPlayerInRangeOfPoint(playerid, 50.0, X, Y, Z))
{

SendClientMessage(playerid, COLOR_RED, "Não e permitido o uso de bazuca de perto!.");
}
}
return 1;
}


Tente desta forma, abraços.

Mori4rty
08/06/2014, 11:53 AM
COMMAND:admins(playerid)
{
new cout;
if(new i; i < MAX_PLAYERS; ++i)
{
if(/*Variavel Admin*/[i] > 0) cout++;
}
if(cout > 0) SendClientMessage(playerid, -1, "Temos mais de um administrador online");
cout = EOS;
return true;
}

Isso pode acarretar bugs?

Cordialmente ~ Mori4rty.

PT
08/06/2014, 12:03 PM
COMMAND:admins(playerid)
{
new cout;
if(new i; i < MAX_PLAYERS; ++i)
{
if(/*Variavel Admin*/[i] > 0) cout++;
}
if(cout > 0) SendClientMessage(playerid, -1, "Temos mais de um administrador online");
cout = EOS;
return true;
}

Isso pode acarretar bugs?

Cordialmente ~ Mori4rty.

isso nao é uma string o mais certo e colocar 0 mesmo.

COMMAND:admins(playerid)
{
new cout = 0;
if(new i; i < MAX_PLAYERS; ++i)
{
if(/*Variavel Admin*/[i] > 0) cout++;
}
if(cout > 0) SendClientMessage(playerid, -1, "Temos mais de um administrador online");
cout = 0;
return true;
}

Mori4rty
08/06/2014, 05:38 PM
Qual a animação em que o jogador fica olhando para o celular?

Alguém tem as coordenadas do aparelho de celular na mão do jogador?

Living
08/06/2014, 07:02 PM
alguem sabe como liga o sv com o ip 0.0.0... no samp? estou sem internet no pc

Dolby
08/06/2014, 07:08 PM
alguem sabe como liga o sv com o ip 0.0.0... no samp? estou sem internet no pc

Basta liga-lo normalmente e conectar-se utilizando o IP localhost, 127.0.0.1.

Living
08/06/2014, 08:45 PM
Basta liga-lo normalmente e conectar-se utilizando o IP localhost, 127.0.0.1.
Vlw, tmj

PT
08/06/2014, 09:02 PM
simplesmente escrevendo localhost tambem funcionava em vez de colocar o tal ip

death1
09/06/2014, 01:15 AM
Veja esta observação na Wiki:


Ou seja, armas que dão dano com fogo(molotov, RPG, ...) sempre irá ter o weaponid com valor 37.




Basicamente você cria um arquivo com o nome do jogador dentro dele. Por exemplo, criamos o arquivo "Jogadores.ini", e nele vamos inserir os nomes dos jogadores que você deseja obter ou alterar esses dados mesmo sem estar conectado. Abrimos o arquivo, lemos linha por linha, e em cada linha ira conter o nome do jogador que se deseja alterar, tendo o nome do jogador, basta abrir o arquivo do mesmo e fazer as alterações necessárias.


Abraços.

É possivel setar in-game?

09/06/2014, 01:47 AM
Tou criando um evento de corrida que pode entrar 5 jogadores no evento ae gostaria de saber como faço pra cada um deles ser setado ne cada veiculo id de 1a5 sem bugar.

DoN_ReNaTo
09/06/2014, 09:16 PM
Tem como mudar o nick aqui no forum?

PT
10/06/2014, 11:44 AM
Tem como mudar o nick aqui no forum?

Lamento mas nao.

13/06/2014, 02:10 AM
Queria colocar para os policiais ver os procurados no mapa usando SetPlayerMarkerForPlayer tentei mas ta dando erro como faço?.

IsACop(playerid) => //aqui dos policiais
if(WantedPoints[playerid] >= 1)// => aqui procurados
SetPlayerMarkerForPlayer(IsACop(playerid),WantedPo ints[playerid],0x581A00AA)

SeV_
13/06/2014, 11:52 AM
Tem como mudar o nick aqui no forum?

Sim, porém você precisa ter mais de (100) posts, e uma quantia considerável de reputação.

Após isto envie uma mensagem formal a Dugi ( beta tester ). Em inglês.

Kimossab
15/06/2014, 10:34 PM
Queria colocar para os policiais ver os procurados no mapa usando SetPlayerMarkerForPlayer tentei mas ta dando erro como faço?.

IsACop(playerid) => //aqui dos policiais
if(WantedPoints[playerid] >= 1)// => aqui procurados
SetPlayerMarkerForPlayer(IsACop(playerid),WantedPo ints[playerid],0x581A00AA)

Qual o erro que te está a dar? E que função é essa do IsACop? Quais os valores que ela faz return? Não seria melhor fazer um if(IsACop(playerid)){ blablabla E depois no SetPlayerMarkerForPlayer(playerid,...) ?

ProKillerpa
19/06/2014, 01:37 PM
Queria colocar para os policiais ver os procurados no mapa usando SetPlayerMarkerForPlayer tentei mas ta dando erro como faço?.

IsACop(playerid) => //aqui dos policiais
if(WantedPoints[playerid] >= 1)// => aqui procurados
SetPlayerMarkerForPlayer(IsACop(playerid),WantedPo ints[playerid],0x581A00AA)

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

Alwe
19/06/2014, 02:59 PM
Erro ao compilar !
D:\Users\Z£U\Desktop\Nova pasta\filterscripts\Untitled.pwn(479) : error 002: only a single statement (or expression) can follow each "case"
D:\Users\Z£U\Desktop\Nova pasta\filterscripts\Untitled.pwn(479) : warning 215: expression has no effect
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Aqui vai o comando por inteiro !
if(dialogid == ALUGUE)
{
if(response)
{
if(GetPlayerMoney(playerid) < 370) return SendClientMessage(playerid,COLOR_AZULCLARO,"| HOTEL | Você não tem R$370 para alugar!");
if(GetPVarInt(playerid,"Sono") >= 75) {
SendClientMessage(playerid,COLOR_AZULCLARO,"| SONO | Você não esta com sono!");
}
else
{
new alwe;
switch(alwe)
{
case 0:SetPlayerPos(playerid, 2246.4041,-1164.5934,1030.4943);
case 1:SetPlayerPos(playerid, 2252.9849,-1158.8644,1030.4410);
case 2:SetPlayerPos(playerid, 2236.0242,-1154.6893,1030.4943);
case 3:SetPlayerPos(playerid, 2229.6047,-1160.9651,1030.4410);
case 4:SetPlayerPos(playerid, 2235.9683,-1165.5596,1030.4943);
case 5:SetPlayerPos(playerid, 2230.5610,-1183.3994,1030.5249);
case 6:SetPlayerPos(playerid, 2224.5496,-1176.9550,1030.4384);
case 7:SetPlayerPos(playerid, 2204.6062,-1193.9602,1030.5249);
case 8:SetPlayerPos(playerid, 2210.6392,-1200.2861,1030.4384);
case 9:SetPlayerPos(playerid, 2230.8987,-1183.3547,1030.5249);
case 10:SetPlayerPos(playerid, 2224.0601,-1176.9796,1030.4384);
case 11:SetPlayerPos(playerid, 2198.2258,-1178.0868,1030.4943);
case 12:SetPlayerPos(playerid, 2204.8206,-1171.5645,1030.4410);
case 13:SetPlayerPos(playerid, 2187.9077,-1151.9406,1030.4943);
case 14:SetPlayerPos(playerid, 2181.5906,-1158.4785,1030.4410);
case 15:SetPlayerPos(playerid, 2217.3391,-1146.4551,1025.7969);
/*LINHA ERROR*/ SendClientMessage(playerid,COLOR_AZULCLARO, "| HOTEL | Vá para a cama e digite --> /Durmir");
}
GivePlayerMoney(playerid, -370);
return 1;
}
if(!response)
{
SendClientMessage(playerid,COLOR_AZULCLARO, "| HOTEL | Você optou por não alugar.");
}
return 1;
}
return 0;
}
OBS: Se eu coloco o case 16: da centenas de erros e se eu tiro o SendClientMessage também ta centenas de erros .

arakuta
20/06/2014, 01:54 AM
O erro é auto explicativo: "Apenas um elemento ou conjunto pode estar em cada case"

Na matemática, um elemento pode estar fora de chaves, mas um conjunto não.

No seu caso:

case 15:SetPlayerPos(playerid, 2217.3391,-1146.4551,1025.7969);
SendClientMessage(playerid,COLOR_AZULCLARO, "| HOTEL | Vá para a cama e digite --> /Durmir");

Você tem dois elementos após um case, o que é matematicamente impossível. O compilador não sabe a quem pertence o segundo elemento gerando este erro.

A solução é colocar os elementos dentro do conjunto para que eles pertençam a case 15.

case 15:
{
SetPlayerPos(playerid, 2217.3391,-1146.4551,1025.7969);
SendClientMessage(playerid,COLOR_AZULCLARO, "| HOTEL | Vá para a cama e digite --> /Durmir");
}

Espero que eu tenha além de ajudado, te ensinado alguma coisa ;)

ProKillerpa
20/06/2014, 02:06 AM
Complementando acima, pode-se separar funções diferentes com ',' ao invés de usar chave.

case 15:
{
SetPlayerPos(playerid, 2217.3391,-1146.4551,1025.7969);
SendClientMessage(playerid,COLOR_AZULCLARO, "| HOTEL | Vá para a cama e digite --> /Durmir");
}

Para


case 15:
SetPlayerPos(playerid, 2217.3391,-1146.4551,1025.7969),
SendClientMessage(playerid,COLOR_AZULCLARO, "| HOTEL | Vá para a cama e digite --> /Durmir")
;

renanmsd
21/06/2014, 04:24 AM
Alguem me ajuda a passar para zcmd?


format(gstring,sizeof(gstring),"/logar %s",inputtext);
OnPlayerCommandText(playerid,gstring);
// ja tentei por assim
format(gstring,sizeof(gstring),"%s",inputtext);
cmd_logar(playerid,gstring);

PT
21/06/2014, 10:36 AM
Alguem me ajuda a passar para zcmd?


format(gstring,sizeof(gstring),"/logar %s",inputtext);
OnPlayerCommandText(playerid,gstring);
// ja tentei por assim
format(gstring,sizeof(gstring),"%s",inputtext);
cmd_logar(playerid,gstring);


tenta

cmd_logar(playerid, strval(inputtext));

renanmsd
21/06/2014, 04:39 PM
da erro


error 035: argument type mismatch (argument 2)

PT
21/06/2014, 04:53 PM
da erro


error 035: argument type mismatch (argument 2)


provavelmente so assim:

cmd_logar(playerid, inputtext);

devera dar.

ProKillerpa
23/06/2014, 04:23 PM
#edit

23/06/2014, 06:26 PM
Queria um exemplo pra saber como faço pra verificar um único player que sobrou no evento de x1?

ProKillerpa
23/06/2014, 06:45 PM
Queria um exemplo pra saber como faço pra verificar um único player que sobrou no evento de x1?

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!