[Ajuda] Dъvidas Curtas #1

Nй ...

Aqui uma duvida

Qual melhor opзгo?

PHP код:
CMD:gritar(playeridparams[])
{
    if(
GetTickCount() - TimeGrito[playerid] < 5000) return SendClientMessage(playerid, -1"[Erro]: Espere 5 segundos para recuperar o folego.");
    if(
isnull(params)) return SendClientMessage(playeridCinza"Correto: /gritar <Texto> ");
    
format(stryng128"%s grita: %s"GetPlayerNameEx(playerid), params);
    
IsPlayerInRangeForMessage(playerid20.0, -1stryng);
    
TimeGrito[playerid] = GetTickCount();
    return 
true;
}
CMD:gritar(playeridparams[])
{
    if(
TimeGrito[playerid] == true) return SendClientMessage(playerid, -1"[Erro]: Espere 5 segundos para recuperar o folego.");
    if(
isnull(params)) return SendClientMessage(playeridCinza"Correto: /gritar <Texto> ");
    
format(stryng128"%s grita: %s"GetPlayerNameEx(playerid), params);
    
IsPlayerInRangeForMessage(playerid20.0, -1stryng);
    
TimeGrito[playerid] = true;
    
SetTimerEx("ReuseTime"5000false"i"playerid);
    return 
true;
}
forward ReuseTime(playerid);
public 
ReuseTime(playerid)
    return 
TimeGrito[playerid] = false
Ou tanto faz?

E se eu for fazer varios comandos assim, й melhor usar Timer ou TickCount?

Master of Doubts
Reply

GetTickCount na minha opniao й melhor.
Porem nao lembro onde eu li, se o servidor tiver ligado mais de 24dias sem parar, o sistema com GetTickCount buga...
Reply

Quote:
Originally Posted by Kmatsu
Посмотреть сообщение
GetTickCount na minha opniao й melhor.
Porem nao lembro onde eu li, se o servidor tiver ligado mais de 24dias sem parar, o sistema com GetTickCount buga...
deve ter visto na Wiki Samp https://sampwiki.blast.hk/wiki/GetTickCount
Reply

Ola de novo! Estou a precisar de fazer um comando para dar um valor ao jogador, mas nao sei como fazer isso, nunca estudei esses comandos.

Ou seja queria saber fazer o seguinte /darmoderador [id] [nivel]


Ate agora tinha o comando de /dar moderador sу

pawn Код:
if(strcmp(cmd, "/darmoderador", true) == 0)
{
    new tmp[128];
    tmp = strtok(cmdtext, idx);
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFFFFFFFF,"Comando reservado apenas para Administradores");
    if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Uso do Comando: /darmoderador ID");
    if(!IsPlayerConnected(strval(tmp))) return SendClientMessage(playerid, 0xFFFFFFFF, "Jogador invalido");
    Moderadores[strval(tmp)] = 1;
    SendClientMessage(strval(tmp), 0xFFFFFFFF, "{FF0000}Aviso:{A0D197} Agora es moderador do Patos-Tugas {FF0000}/moderador!");
    SendClientMessage(playerid, TEAM_COMERCIO_COLOR, "{FF0000}Aviso:{A0D197} Desde moderaзгo a um jogador!");
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    new pName1[MAX_PLAYER_NAME];
    GetPlayerName(strval(tmp),pName1,sizeof(pName1));
    new string[248];
    format(string,sizeof(string),"{FFB01F}O administrador/a{FFEA00} %s{FFB01F} colocou o{FFEA00} %s como moderador!",pName,pName1);
    SendClientMessageToAll(TEAM_COMERCIO_COLOR, string);
    DOF2_SetInt("Nivel/moderadores.ini",PlayerName(strval(tmp)),Moderadores[strval(tmp)]);
    DOF2_SaveFile();
    return 1;
}
Reply

Pessoal, como eu posso criar um comando diferente usando strtok, por exemplo : " /Iniciar [ Teste ] ", no lugar de [ Teste ] seria onde eu ira colocar o " id " do teste que eu defini, e no lugar de [ Teste ] eu nгo possa colocar nenhuma outra coisa a nгo ser os ids dos mesmo ...
Por exemplo :
Uma lista dos testes :
Teste1
Teste2
Teste3

Agora no comando " /Iniciar " eu sу possa colocar um desses ids ...

Assim :

/Iniciar Teste1, ou /Iniciar Teste2, ou /Iniciar Teste3 ...

e caso eu coloque por exemplo : " /Iniciar Batata ", nгo funcionar o comando, e retornaria uma msg avisando que esse " id " nгo й valido ....


Agradeзo desde jб, quem entender e me ajudar rs
Reply

ae pessoal como faзo para aparecer enveiz de 1000 na vida do veiculo aparecer apenas 100 ?
Reply

Quote:
Originally Posted by ReDKiiL
Посмотреть сообщение
ae pessoal como faзo para aparecer enveiz de 1000 na vida do veiculo aparecer apenas 100 ?
Divide por 10 na format, acho que й isso '-'

Exemplo:

pawn Код:
new Vehicle;
SetVehicleHealth(Vehicle, 850);

new Float:health, s[10];
GetVehicleHealth(Vehicle, health);
format(s, sizeof(s), "%d", health/10);
SendClientMessage(playerid, -1, s);
Reply

Vlw mano edit <3 rep para ti
Reply

Quote:
Originally Posted by ReDKiiL
Посмотреть сообщение
Vlw mano edit <3 rep para ti
haha
De nada '-'
Reply

Me ajuda com essa ae tambem rsrs como coloco o simbolo de "%" no textdraw ? kkkk noob -q
Reply

Quote:
Originally Posted by ReDKiiL
Посмотреть сообщение
Me ajuda com essa ae tambem rsrs como coloco o simbolo de "%" no textdraw ? kkkk noob -q
TextDrawSetString

https://sampwiki.blast.hk/wiki/TextDrawSetString
Reply

Isso jб sei mano mais quando coloco % nao da ceerto -q

pawn Код:
format(fcime, sizeof(fcime),"~y~KM/H:~w~%02d~n~~y~STATUS:~w~%d~y~%",GetPlayerSpeed(playerid),floatround(VHEAL/10,floatround_round));
TextDrawSetString(Cime[playerid],fcime);
Olha como fica meus textdraw
Reply

TextDrawShowForPlayer apуs TextDrawSetString


tenta ae
Reply

Quote:
Originally Posted by F_Cinco
Посмотреть сообщение
Bom, estou com esses Anims aq, da categoria "Smoke", sу q quando digito: /smoke 2 por ex. retorna o sendclientmessage.

cmd:
pawn Код:
CMD:smoke(playerid,params[])
{
    new IDanims;
    if(sscanf(params, "u", IDanims)) return SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");

    switch(IDanims + 28)
    {
    case 0:
    ApplyAnimation(playerid, "SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    case 1:
    ApplyAnimation(playerid, "SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    case 2:
    ApplyAnimation(playerid, "SMOKING", "M_smkstnd_loop", 4.0, 1, 0, 0, 0, 0);
    case 3:
    ApplyAnimation(playerid, "SMOKING", "M_smk_out", 4.0, 1, 0, 0, 0, 0);
    default:
    SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");
    }
    return 1;
}
:S
pawn Код:
CMD:smoke(playerid,params[])
{
    new IDanims;
    if(sscanf(params, "i", IDanims)) return SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");
   
    if(IDanims == 1)
        ApplyAnimation(playerid, "SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 2)
        ApplyAnimation(playerid, "SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 3)
        ApplyAnimation(playerid, "SMOKING", "M_smkstnd_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 4)
        ApplyAnimation(playerid, "SMOKING", "M_smk_out", 4.0, 1, 0, 0, 0, 0);
    else
        SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");
    return 1;
}
Cara, eu te cutuco toda hora kkk
Reply

Quote:
Originally Posted by CidadeNovaRP
Посмотреть сообщение
pawn Код:
CMD:smoke(playerid,params[])
{
    new IDanims;
    if(sscanf(params, "i", IDanims)) return SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");
   
    if(IDanims == 1)
        ApplyAnimation(playerid, "SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 2)
        ApplyAnimation(playerid, "SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 3)
        ApplyAnimation(playerid, "SMOKING", "M_smkstnd_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 4)
        ApplyAnimation(playerid, "SMOKING", "M_smk_out", 4.0, 1, 0, 0, 0, 0);
    else
        SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");
    return 1;
}
Cara, eu te cutuco toda hora kkk
kk, num sei dessa "cutucadas" n, hein , zoa..
Cara, comeзei pawn a uns 3~4 mкses atrбs, +/- por aн, tenha calma, estou aprendendo devagarzinho. eu tinha colocado atй "i", n sei pq troquei LoL, kk
Reply

O cуdigo deveria ser assim, jб que caso ele digita um numero diferente de 1~4 retorna a mensagem. ao invйs do outro, que estб sendo atribuнdo caso seja diferente de 4. tambйm poderia usar apenas if's.
pawn Код:
CMD:smoke(playerid,params[])
{
    new IDanims;
    if(sscanf(params, "i", IDanims)) return SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");
    if(IDanims < 1 IDanims > 4) return SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");
   
    if(IDanims == 1)
        ApplyAnimation(playerid, "SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 2)
        ApplyAnimation(playerid, "SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 3)
        ApplyAnimation(playerid, "SMOKING", "M_smkstnd_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 4)
        ApplyAnimation(playerid, "SMOKING", "M_smk_out", 4.0, 1, 0, 0, 0, 0);
    return 1;
}
Reply

Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
O cуdigo deveria ser assim, jб que caso ele digita um numero diferente de 1~4 retorna a mensagem. ao invйs do outro, que estб sendo atribuнdo caso seja diferente de 4. tambйm poderia usar apenas if's.
pawn Код:
CMD:smoke(playerid,params[])
{
    new IDanims;
    if(sscanf(params, "i", IDanims)) return SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");
    if(IDanims < 1 IDanims > 4) return SCM(playerid, 0xEFEFF7AA, "|USO| /smoke [1~4]");
   
    if(IDanims == 1)
        ApplyAnimation(playerid, "SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 2)
        ApplyAnimation(playerid, "SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 3)
        ApplyAnimation(playerid, "SMOKING", "M_smkstnd_loop", 4.0, 1, 0, 0, 0, 0);
    else if(IDanims == 4)
        ApplyAnimation(playerid, "SMOKING", "M_smk_out", 4.0, 1, 0, 0, 0, 0);
    return 1;
}
Vai da tudo no msm, porйm, dessa maneira o cmd se torna mais eficaz.
Reply

Fiz uma funзгozinha quando o player entrar em um veнculo e se tiver afim, ouvir uma mъsica, etc. Porйm as funзхes:
pawn Код:
PlayAudioStreamForPlayer
StopAudioStreamForPlayer
pedem para serem definidas, mais ao definir com 2 news, da vбrios erros. :S
Reply

E so atualizar suas Includes !
Reply

Quote:
Originally Posted by BreakDriFT
Посмотреть сообщение
E so atualizar suas Includes !
Quais includes contйm essas funзхes?
Reply


Forum Jump:


Users browsing this thread: 7 Guest(s)