[Tutorial] Melhorando seus script's e seus gamemodes
#41

Obrigado por me passar esse tutorial, mas vocк nгo entendeu direito tipo fazer comandos com por exemplo /Comando [playerid] [motivo] [dias - tempo etc...] saca comando com + de 1 [] por exemplo /ban [id] [motivo] [tempo] + - isso.
Reply
#42

Quote:
Originally Posted by LockedLucas
Посмотреть сообщение
Bem que vocк poderia ter ensinado a criar comandos por exemplo /comando [playerid] [motivo] [tempo] tipo assim comandos com 3 funзхes saka, seria bem ъtil pra quem estб comeзando.
Para comandos em especifico com parвmetros da uma olhada neste meu tutorial:

https://sampforum.blast.hk/showthread.php?tid=460056

porem se queres fazer sistemas de bans ( ou o la que seja ) por tempo etc tens de estudar outras coisas tbm.
Reply
#43

Quote:
Originally Posted by PT
Посмотреть сообщение
Para comandos em especifico com parвmetros da uma olhada neste meu tutorial:

https://sampforum.blast.hk/showthread.php?tid=460056

porem se queres fazer sistemas de bans ( ou o la que seja ) por tempo etc tens de estudar outras coisas tbm.
Nгo nгo estou querendo dizer que neste tutorial pra ele ficar mais completo na minha opiniгo vocк deveria ter colocar por exemplo comandos com mais parвmetros, e eu sу dei um exemplo do /comando [playerid] [motivo] sabe isso e sу um exemplo.
Reply
#44

O tutorial jб estб bem explicado, se lкr com atenзгo vai saber fazer.
Reply
#45

como vou mudar isso pra 80mil linhas ?
Reply
#46

Quote:
Originally Posted by DKDarkking
Посмотреть сообщение
como vou mudar isso pra 80mil linhas ?
Com calma e paciкncia consegues na boa. Aposto se adotares esses metodos consegues facilmente ter esse numero de linhas reduzido qualquer dъvida que precise quando eu poder ajudo-o.

Pode usar este tуpico se quiser.
Reply
#47

Уtimo tutorial,
Nгo tinha o visto antes.. se vi, nгo me lembro;
Reply
#48

Otimas dicas,parabens e obrigado!
Reply
#49

Passado muito tempo ainda continuam a ver isto, nem acredito.

Quando arranjar mais tempo irei fazer uma atualizaзгo com mais coisas
Reply
#50

Links do tуpico atualizados.

Talvez eu ainda adicione mais umas dicas aqui.
Reply
#51

Muito bom o tutorial PT, poderia tambйm adicionar variбveis booleanas, muitas pessoas ainda usam "0" e "1".

Parabйns.

@EDIT

Tambйm vejo muitas pessoas fazendo isso

PHP код:
new var = 1;
if(var == 
0) return 0;
if(var == 
1) return 1;
if(var == 
2) return 2
sendo que era somente utilizar "switch" ou "else if"
Reply
#52

Quote:
Originally Posted by EditPawn
Посмотреть сообщение
Muito bom o tutorial PT, poderia tambйm adicionar variбveis booleanas, muitas pessoas ainda usam "0" e "1".

Parabйns.

@EDIT

Tambйm vejo muitas pessoas fazendo isso

PHP код:
new var = 1;
if(var == 
0) return 0;
if(var == 
1) return 1;
if(var == 
2) return 2
sendo que era somente utilizar "switch" ou "else if"
Na verdade nesse caso nгo tem necessidade de if-else, muito menos de switch...

Se o valor de condiзгo й o mesmo do retorno, basta mandar retornar.
Reply
#53

Quote:
Originally Posted by ipsNan
Посмотреть сообщение
Na verdade nesse caso nгo tem necessidade de if-else, muito menos de switch...

Se o valor de condiзгo й o mesmo do retorno, basta mandar retornar.
Eu sei disso, eu sу coloquei o retorno para substituir uma funзгo.

@EDIT

Um exemplo:

PHP код:
new Level[MAX_PLAYERS];
public 
OnPlayerConnect(playerid)
{
    
Level[playerid] = 1;
    return 
1;
}
public 
OnPlayerDeath(playeridkilleridreason)
{
    if(
Level[playerid] == 1Level[killerd]++;
    else if(
Level[playerid] == 2Level[killerd] += 5;
    else if(
Level[playerid] == 3Level[killerd] += 10;
    
SetPlayerScore(killeridLevel[killerid]);
    return 
1;

Reply
#54

Seria interessante incluir o que a nova versгo nos trouxe em relaзгo ao desempenho de loops, coisa que nгo vejo quase ninguйm utilizando...se nгo fores usar nenhum outro mйtodo, apenas nativo, й bem mais em conta utilizar os novos mйtodos do que GetMaxPlayers ou definir MAX_PLAYERS.

PHP код:
static iplayerPoolSizevehiclePoolSize;

playerPoolSize GetPlayerPoolSize();
vehiclePoolSize GetVehiclePoolSize();

for(
0<= playerPoolSizei++) SetPlayerPos(i0.0,0.0,0.0);

for(
1<= vehiclePoolSizei++) SetVehiclePos(i0.0,0.0,0.0);
//OBS: Lembrando que, o ID dos veнculos iniciam a partir do 1... 
Reply
#55

Quote:
Originally Posted by EditPawn
Посмотреть сообщение
Eu sei disso, eu sу coloquei o retorno para substituir uma funзгo.

@EDIT

Um exemplo:

PHP код:
new Level[MAX_PLAYERS];
public 
OnPlayerConnect(playerid)
{
    
Level[playerid] = 1;
    return 
1;
}
public 
OnPlayerDeath(playeridkilleridreason)
{
    if(
Level[playerid] == 1Level[killerd]++;
    else if(
Level[playerid] == 2Level[killerd] += 5;
    else if(
Level[playerid] == 3Level[killerd] += 10;
    
SetPlayerScore(killeridLevel[killerid]);
    return 
1;

Ainda sim nesse seu exemplo, o uso de if ou switch continua sendo desnecessбrio...

Pois este problema pode ser resolvido com matemбtica simples...

Se vocк tem como entrada o level do player, e pretende efetuar um calculo proporcional ao level, de forma aritmйtica.

Gerando a seguinte cadeia de saнda: (+5)

Entгo vocк vocк tem as seguintes amostras:

lvl_1 = 1
lvl_2 = 5
lvl_3 = 10
lvl_4 = 15

1
1 * 5
2 * 5
3 * 5
4 * 5

Essa pode ser uma boa maneira de vocк melhorar os scripts do seu gamemode...

O uso do if / switch tem uma necessidade, e muitas as vezes as pessoas acabam utilizando por ser uma saнda rбpida, e isso com certeza vai de contra o bom desempenho do seu cуdigo completo. Muitos problemas podem ser resolvidos sem a utilizaзгo de estruturas de controle.

Isso faz um bem danado, porque pra cada CMP, JMP, JE, JNE, etc... que estarб sendo evitado em baixo nнvel, seu cуdigo e o seu usuбrio final irгo agradecer em questхes de desempenho.


Lembrando que estou comentando isso apenas para contribuir, nгo quero contrariar vocк ou a sua metodologia.
Reply
#56

Quote:
Originally Posted by ipsNan
Посмотреть сообщение
Ainda sim nesse seu exemplo, o uso de if ou switch continua sendo desnecessбrio...

Pois este problema pode ser resolvido com matemбtica simples...

Se vocк tem como entrada o level do player, e pretende efetuar um calculo proporcional ao level, de forma aritmйtica.

Gerando a seguinte cadeia de saнda: (+5)

Entгo vocк vocк tem as seguintes amostras:

lvl_1 = 1
lvl_2 = 5
lvl_3 = 10
lvl_4 = 15

1
1 * 5
2 * 5
3 * 5
4 * 5

Essa pode ser uma boa maneira de vocк melhorar os scripts do seu gamemode...

O uso do if / switch tem uma necessidade, e muitas as vezes as pessoas acabam utilizando por ser uma saнda rбpida, e isso com certeza vai de contra o bom desempenho do seu cуdigo completo. Muitos problemas podem ser resolvidos sem a utilizaзгo de estruturas de controle.

Isso faz um bem danado, porque pra cada CMP, JMP, JE, JNE, etc... que estarб sendo evitado em baixo nнvel, seu cуdigo e o seu usuбrio final irгo agradecer em questхes de desempenho.


Lembrando que estou comentando isso apenas para contribuir, nгo quero contrariar vocк ou a sua metodologia.
Sua explicaзгo estб muito boa, mas a minha intenзгo nгo era em si na funзгo, nem sempre vocк terб funзхes que poderгo ser solucionadas com cбlculos. A minha intenзгo й apenas a respeito das verificaзхes e nгo em si as funзхes, por isso nгo citei muitos detalhes ou algo mais elaborado.

@EDIT

Prefiro nгo comentar mais sobre o assunto, PT deve ter entendido o que eu quis sugerir.
Reply
#57

Agradecia a todos que gostassem de contribuir com novas sugestoes para melhorar o topico a fim de o colocar o mais completo possivel

Tendo em conta que ja tomei nota de algumas sugestoes que alguns fizeram que irei incluir quando melhorar o topico.

Obrigado a todos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)