[pedido o ayuda lo que sea]->urgente!
#1

ola perdon que los joda digo molesta otra vez
pero me pueden a ayudar con dos cosas
claro si no es mucha molestia
miren lo que pasa es que me descargue
un sistema de burbuja en el cual es esta:

aqui les dejo el comando de la burbuja

Quote:

if(!strcmp(cmdtext,"/burbuja",true))
{
if(GetPVarInt(playerid , "Burbuja" ) == 0 )
{
SetPlayerAttachedObject(playerid,9,1276,1,-0.241000,0.056999,0.000000,2.200000,71.799964,-101.999992,0.000000,0.000000,0.051999);
SendClientMessage ( playerid , -1, #Inmunidad activada ) ;
SetPVarInt(playerid , "Burbuja", 1 ) ;
return 1;
} else {
RemovePlayerAttachedObject( playerid , 9 ) ;
SetPVarInt(playerid , "Burbuja", 0 ) ;
SendClientMessage ( playerid , -1, #Inmunidad des-activada ) ; }
return 1;
}

miren lo que quiero es lo siguiente.... quiero que cuando uno suba de rango por decir
tengo 0 de score y mi rango es noob entonces cuando llegue a los 30 de score
sere por ejemplo aprendiz, entonces quiero esto cada vez que suba de rango
aparesca automaticamente esa burbuja y se quite a los 3 segundos
y que le suba vida y chaleco al jugador y asi sucesivamente cada
vez que suba de rango se le llenara la vida y el chaleco
aqui les dejo el sistema de rango que tengo por si las dudas!

Quote:

new rango[24];
if((PlayerInfo[playerid][Kills]>= 0 && PlayerInfo[playerid][Kills] <= 30)) { rango = "NOBATO"; }
else if((PlayerInfo[playerid][Kills]>= 31 && PlayerInfo[playerid][Kills] <= 74)) { rango = "APRENDIZ"; }
else if((PlayerInfo[playerid][Kills]>= 75 && PlayerInfo[playerid][Kills] <= 129)) { rango = "BASICO"; }
else if((PlayerInfo[playerid][Kills]>= 130 && PlayerInfo[playerid][Kills] <= 179)) { rango = "AVANZADO"; }
else if((PlayerInfo[playerid][Kills]>= 180 && PlayerInfo[playerid][Kills] <= 250)) { rango = "INTERMEDIO"; }
else if((PlayerInfo[playerid][Kills]>= 251 && PlayerInfo[playerid][Kills] <= 330)) { rango = "GANSTER"; }
else if((PlayerInfo[playerid][Kills]>= 331 && PlayerInfo[playerid][Kills] <= 422)) { rango = "SICARIO"; }
else if((PlayerInfo[playerid][Kills]>= 423 && PlayerInfo[playerid][Kills] <= 49) { rango = "PROFESIONAL"; }
else if((PlayerInfo[playerid][Kills]>= 499 && PlayerInfo[playerid][Kills] <= 679)) { rango = "CAPO"; }
else if((PlayerInfo[playerid][Kills]>= 680 && PlayerInfo[playerid][Kills] <= 880)) { rango = "ASPIRANTE A PRO"; }
else if((PlayerInfo[playerid][Kills]>= 881 && PlayerInfo[playerid][Kills] <= 977)) { rango = "PRO"; }
else if((PlayerInfo[playerid][Kills]>= 978 && PlayerInfo[playerid][Kills] <= 1195)) { rango = "PRO GAMER"; }
else if((PlayerInfo[playerid][Kills]>= 1196 && PlayerInfo[playerid][Kills] <= 1410)) { rango = "SUPER PRO"; }
else if((PlayerInfo[playerid][Kills]>= 1411 && PlayerInfo[playerid][Kills] <= 1930)) { rango = "IMPARABLE"; }
else if((PlayerInfo[playerid][Kills]>= 1931 && PlayerInfo[playerid][Kills] <= 2487)) { rango = "PRO MATADOR"; }
else if((PlayerInfo[playerid][Kills]>= 2488 && PlayerInfo[playerid][Kills] <= 4650)) { rango = "SUPER MATADOR"; }
else if((PlayerInfo[playerid][Kills]>= 4651 && PlayerInfo[playerid][Kills] <= 40850)) { rango = "SUPER GAMER PRO"; }

y bueno lo otro es lo siguiente
primeramente la foto:

ya ahora miren lo que quiero es esto cuando uno baya matando
le suba el color a la barra
como por ejemplo:
tengo 0 de score mato a un usuario entonces se sumaria 1
entonces a lo que sube una matanza le sube una raya a la barra
y por ejemplo si llega a 29 de score en el cual solo le falta uno de score
que la barra este casi llena osea que una vez que mate al jugador la barra
le subira todo y volvera a 0 osea que cuando uno ya complete las matanzas por rango
la barra baja otra vez como por ejemplo:
tengo 0 de score y mate a dos 25 usuarios entonces la color de la barra
ya tiene que estar casi por la mitad y cuando ya llegue a los 30 matados
la barra se llenara y se bajara todo el color otra vez y asi mismo tengo 31 de score
mate a 5 jugadores entonces la barra poco a poco ira subiendo hasta que
el usuario tenga el siguiente rango en el cual es de ''basico''
entonces una vez que haiga completado ese rango el color de la barra bajara a 0 otra vez
y bueno y asi poco a poco con los rangos, por favor se que escribi mucho
pero es para que me puedan entender si halgo no entienden avisenme por
favor ayudenme, se los agradeceria mucho
bueno esto era todo saludos!
Reply
#2

Esto me parece plagio del servidor adrenalina full.
Reply
#3

Ami personalmente me parece pedir todo, porque no te molestas en ver como funcionaria cada linea de los cуdigos? Si luego no entiendes busca ejemplos o pregunta por aquн como funciona...pero no puedes ir pidiendo todo a la boca...porque me parece que hace unos dнas hiciste lo mismo, pedir todo echo....

Suerte
Reply
#4

Es tan simple hacer eso, es mas xSDx lo estructuro su idea para su GM ********** **** partiendo desde el comando /burbuja que fue publicado aquн en Foro Samp.
Reply
#5

parka dime es para un proyecto :/ y no necesito que lo hagan si no que
me expliquen como hacerlo con sus funciones, y si aveces les digo
que me digan como es el code es porque cuando uno me pasa
un code yo lo reviso y despues aprendo porque estuvo eso ahi y asi
ayudenme por favor!
Reply
#6


Usted nunca aprenderб de esa forma ya que ni se detiene a estudiar el cуdigo solamente copia y pega, le recomiendo leer tutoriales sobre como manejar el lenguaje "PAWN" no como manejar funciones de "SA-MP".

PD: Esto no es PS.

Un saludo.
Reply
#7

Hola, primero de todo crearemos 2 variables, una almacenara el nivel del jugador y otra el timer para desactivar la burbuja y definiremos el callback "DesactivarBurbuja":
pawn Код:
forward DesactivarBurbuja(playerid);
new Nivel[MAX_PLAYERS], TimerNivel[MAX_PLAYERS];
Luego en el callback OnPlayerConnect setearemos el nivel del jugador y su respectivo rango (ES IMPORTANTE QUE PONGAS ESTO LUEGO DE CARGAR LOS DATOS DEL JUGADOR):
pawn Код:
public OnPlayerConnect(playerid)
{
    new rango[24];
    if((PlayerInfo[playerid][Kills]>= 0 && PlayerInfo[playerid][Kills] <= 30)) { rango = "NOBATO"; Nivel[playerid] = 1; }
    else if((PlayerInfo[playerid][Kills]>= 31 && PlayerInfo[playerid][Kills] <= 74)) { rango = "APRENDIZ"; Nivel[playerid] = 2; }
    else if((PlayerInfo[playerid][Kills]>= 75 && PlayerInfo[playerid][Kills] <= 129)) { rango = "BASICO"; Nivel[playerid] = 3; }
    else if((PlayerInfo[playerid][Kills]>= 130 && PlayerInfo[playerid][Kills] <= 179)) { rango = "AVANZADO"; Nivel[playerid] = 4; }
    else if((PlayerInfo[playerid][Kills]>= 180 && PlayerInfo[playerid][Kills] <= 250)) { rango = "INTERMEDIO"; Nivel[playerid] = 5; }
    else if((PlayerInfo[playerid][Kills]>= 251 && PlayerInfo[playerid][Kills] <= 330)) { rango = "GANSTER"; Nivel[playerid] = 6; }
    else if((PlayerInfo[playerid][Kills]>= 331 && PlayerInfo[playerid][Kills] <= 422)) { rango = "SICARIO"; Nivel[playerid] = 7; }
    else if((PlayerInfo[playerid][Kills]>= 423 && PlayerInfo[playerid][Kills] <= 49) { rango = "PROFESIONAL"; Nivel[playerid] = 8; }
    else if((PlayerInfo[playerid][Kills]>= 499 && PlayerInfo[playerid][Kills] <= 679)) { rango = "CAPO"; Nivel[playerid] = 9; }
    else if((PlayerInfo[playerid][Kills]>= 680 && PlayerInfo[playerid][Kills] <= 880)) { rango = "ASPIRANTE A PRO"; Nivel[playerid] = 10; }
    else if((PlayerInfo[playerid][Kills]>= 881 && PlayerInfo[playerid][Kills] <= 977)) { rango = "PRO"; Nivel[playerid] = 11; }
    else if((PlayerInfo[playerid][Kills]>= 978 && PlayerInfo[playerid][Kills] <= 1195)) { rango = "PRO GAMER"; Nivel[playerid] = 12; }
    else if((PlayerInfo[playerid][Kills]>= 1196 && PlayerInfo[playerid][Kills] <= 1410)) { rango = "SUPER PRO"; Nivel[playerid] = 13; }
    else if((PlayerInfo[playerid][Kills]>= 1411 && PlayerInfo[playerid][Kills] <= 1930)) { rango = "IMPARABLE"; Nivel[playerid] = 14; }
    else if((PlayerInfo[playerid][Kills]>= 1931 && PlayerInfo[playerid][Kills] <= 2487)) { rango = "PRO MATADOR"; Nivel[playerid] = 15; }
    else if((PlayerInfo[playerid][Kills]>= 2488 && PlayerInfo[playerid][Kills] <= 4650)) { rango = "SUPER MATADOR"; Nivel[playerid] = 16; }
    else if((PlayerInfo[playerid][Kills]>= 4651 && PlayerInfo[playerid][Kills] <= 40850)) { rango = "SUPER GAMER PRO"; Nivel[playerid] = 17; }
    return 1;
}
Y en el callback OnPlayerDeath almacenaremos el nivel del jugador, le setearemos su nivel y rango y luego si el nivel del jugador almacenado es menor al seteado entonces el jugador subio de nivel:
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    new rango[24], NivelViejo[MAX_PLAYERS] = Nivel[killerid];
    if((PlayerInfo[killerid][Kills]>= 0 && PlayerInfo[killerid][Kills] <= 30)) { rango = "NOBATO"; Nivel[killerid] = 1; }
    else if((PlayerInfo[killerid][Kills]>= 31 && PlayerInfo[killerid][Kills] <= 74)) { rango = "APRENDIZ"; Nivel[killerid] = 2; }
    else if((PlayerInfo[killerid][Kills]>= 75 && PlayerInfo[killerid][Kills] <= 129)) { rango = "BASICO"; Nivel[killerid] = 3; }
    else if((PlayerInfo[killerid][Kills]>= 130 && PlayerInfo[killerid][Kills] <= 179)) { rango = "AVANZADO"; Nivel[killerid] = 4; }
    else if((PlayerInfo[killerid][Kills]>= 180 && PlayerInfo[killerid][Kills] <= 250)) { rango = "INTERMEDIO"; Nivel[killerid] = 5; }
    else if((PlayerInfo[killerid][Kills]>= 251 && PlayerInfo[killerid][Kills] <= 330)) { rango = "GANSTER"; Nivel[killerid] = 6; }
    else if((PlayerInfo[killerid][Kills]>= 331 && PlayerInfo[killerid][Kills] <= 422)) { rango = "SICARIO"; Nivel[killerid] = 7; }
    else if((PlayerInfo[killerid][Kills]>= 423 && PlayerInfo[killerid][Kills] <= 49) { rango = "PROFESIONAL"; Nivel[killerid] = 8; }
    else if((PlayerInfo[killerid][Kills]>= 499 && PlayerInfo[killerid][Kills] <= 679)) { rango = "CAPO"; Nivel[killerid] = 9; }
    else if((PlayerInfo[killerid][Kills]>= 680 && PlayerInfo[killerid][Kills] <= 880)) { rango = "ASPIRANTE A PRO"; Nivel[killerid] = 10; }
    else if((PlayerInfo[killerid][Kills]>= 881 && PlayerInfo[killerid][Kills] <= 977)) { rango = "PRO"; Nivel[killerid] = 11; }
    else if((PlayerInfo[killerid][Kills]>= 978 && PlayerInfo[killerid][Kills] <= 1195)) { rango = "PRO GAMER"; Nivel[killerid] = 12; }
    else if((PlayerInfo[killerid][Kills]>= 1196 && PlayerInfo[killerid][Kills] <= 1410)) { rango = "SUPER PRO"; Nivel[killerid] = 13; }
    else if((PlayerInfo[killerid][Kills]>= 1411 && PlayerInfo[killerid][Kills] <= 1930)) { rango = "IMPARABLE"; Nivel[killerid] = 14; }
    else if((PlayerInfo[killerid][Kills]>= 1931 && PlayerInfo[killerid][Kills] <= 2487)) { rango = "PRO MATADOR"; Nivel[killerid] = 15; }
    else if((PlayerInfo[killerid][Kills]>= 2488 && PlayerInfo[killerid][Kills] <= 4650)) { rango = "SUPER MATADOR"; Nivel[killerid] = 16; }
    else if((PlayerInfo[killerid][Kills]>= 4651 && PlayerInfo[killerid][Kills] <= 40850)) { rango = "SUPER GAMER PRO"; Nivel[killerid] = 17; }
    if(NivelViejo[killerid] < Nivel[killerid])
    {
        SetPlayerHealth(killerid, 100);
        SetPlayerArmour(killerid, 100);
        SendClientMessage(killerid, -1, "Felicidades, ЎSubiste de nivel!");
        SetPlayerAttachedObject(killerid,9,1276,1,-0.241000,0.056999,0.000000,2.200000,71.799964,-101.999992,0.000000,0.000000,0.051999);
        TimerNivel[killerid] = SetTimerEx("DesactivarBurbuja", 3000, false, "i", killerid) // Desactivar burbuja al jugador dentro de 3 segundos
    }
    return 1;
}
Por ъltimo creamos el callback que serб llamado por el timer cuando el jugador suba de nivel, este desactivara la burbuja:
pawn Код:
public DesactivarBurbuja(playerid)
{
    RemovePlayerAttachedObject(playerid, 9) ;
    KillTimer(TimerNivel[playerid]);
}

Ojala que te sirva, adaptalo a tu cуdigo, y por cierto, intenta no hacer copy paste y si no entender que hace cada cosa, la wiki de sa-mp te puede servir y hay muchos otros tutoriales por este foro sobre pawn, saludos!

PD: No lo he probado..
Reply
#8

gracias MillerUTL lo voy a probar haber que tal

mira lo puse en mi ladmin y al copilar me sale esto:
Quote:

D:\Escritorio\Archivos - Samp\ZeroAttack-ControlFR\filterscripts\LadminZaC.pwn(1234) : error 029: invalid expression, assumed zero
D:\Escritorio\Archivos - Samp\ZeroAttack-ControlFR\filterscripts\LadminZaC.pwn(2110) : error 008: must be a constant expression; assumed zero
D:\Escritorio\Archivos - Samp\ZeroAttack-ControlFR\filterscripts\LadminZaC.pwn(211 : error 029: invalid expression, assumed zero
D:\Escritorio\Archivos - Samp\ZeroAttack-ControlFR\filterscripts\LadminZaC.pwn(2135) : error 001: expected token: ";", but found "}"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.

las lineas son estas:
line de 1234:
Quote:

else if((PlayerInfo[playerid][Kills]>= 423 && PlayerInfo[playerid][Kills] <= 49) { rango = "PROFESIONAL"; Nivel[playerid] = 8; }

line de 2110:
Quote:

new rango[24], NivelViejo[MAX_PLAYERS] = Nivel[playerid];

line de 2118:
Quote:

else if((PlayerInfo[playerid][Kills]>= 423 && PlayerInfo[playerid][Kills] <= 49) { rango = "PROFESIONAL"; Nivel[playerid] = 8; }

No se porque pero esta linea es la misma de la linea 1234
pd: la linea de 2118 lo puse en mi ladmin en onplayerdeath y la de 1234 en onplayerconnect
line de 2135:
}
solo es eso O.o
Como lo arreglo
Reply
#9

Quote:
Originally Posted by leon44
Посмотреть сообщение
gracias MillerUTL lo voy a probar haber que tal

De nada, pero perdona, acabo de ver que me confundн en algo, actualiza el OnPlayerDeath a esto:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    new rango[24], NivelViejo[MAX_PLAYERS] = Nivel[killerid];
    if((PlayerInfo[killerid][Kills]>= 0 && PlayerInfo[killerid][Kills] <= 30)) { rango = "NOBATO"; Nivel[killerid] = 1; }
    else if((PlayerInfo[killerid][Kills]>= 31 && PlayerInfo[killerid][Kills] <= 74)) { rango = "APRENDIZ"; Nivel[killerid] = 2; }
    else if((PlayerInfo[killerid][Kills]>= 75 && PlayerInfo[killerid][Kills] <= 129)) { rango = "BASICO"; Nivel[killerid] = 3; }
    else if((PlayerInfo[killerid][Kills]>= 130 && PlayerInfo[killerid][Kills] <= 179)) { rango = "AVANZADO"; Nivel[killerid] = 4; }
    else if((PlayerInfo[killerid][Kills]>= 180 && PlayerInfo[killerid][Kills] <= 250)) { rango = "INTERMEDIO"; Nivel[killerid] = 5; }
    else if((PlayerInfo[killerid][Kills]>= 251 && PlayerInfo[killerid][Kills] <= 330)) { rango = "GANSTER"; Nivel[killerid] = 6; }
    else if((PlayerInfo[killerid][Kills]>= 331 && PlayerInfo[killerid][Kills] <= 422)) { rango = "SICARIO"; Nivel[killerid] = 7; }
    else if((PlayerInfo[killerid][Kills]>= 423 && PlayerInfo[killerid][Kills] <= 49) { rango = "PROFESIONAL"; Nivel[killerid] = 8; }
    else if((PlayerInfo[killerid][Kills]>= 499 && PlayerInfo[killerid][Kills] <= 679)) { rango = "CAPO"; Nivel[killerid] = 9; }
    else if((PlayerInfo[killerid][Kills]>= 680 && PlayerInfo[killerid][Kills] <= 880)) { rango = "ASPIRANTE A PRO"; Nivel[killerid] = 10; }
    else if((PlayerInfo[killerid][Kills]>= 881 && PlayerInfo[killerid][Kills] <= 977)) { rango = "PRO"; Nivel[killerid] = 11; }
    else if((PlayerInfo[killerid][Kills]>= 978 && PlayerInfo[killerid][Kills] <= 1195)) { rango = "PRO GAMER"; Nivel[killerid] = 12; }
    else if((PlayerInfo[killerid][Kills]>= 1196 && PlayerInfo[killerid][Kills] <= 1410)) { rango = "SUPER PRO"; Nivel[killerid] = 13; }
    else if((PlayerInfo[killerid][Kills]>= 1411 && PlayerInfo[killerid][Kills] <= 1930)) { rango = "IMPARABLE"; Nivel[killerid] = 14; }
    else if((PlayerInfo[killerid][Kills]>= 1931 && PlayerInfo[killerid][Kills] <= 2487)) { rango = "PRO MATADOR"; Nivel[killerid] = 15; }
    else if((PlayerInfo[killerid][Kills]>= 2488 && PlayerInfo[killerid][Kills] <= 4650)) { rango = "SUPER MATADOR"; Nivel[killerid] = 16; }
    else if((PlayerInfo[killerid][Kills]>= 4651 && PlayerInfo[killerid][Kills] <= 40850)) { rango = "SUPER GAMER PRO"; Nivel[killerid] = 17; }
    if(NivelViejo[killerid] < Nivel[killerid])
    {
        SetPlayerHealth(killerid, 100);
        SetPlayerArmour(killerid, 100);
        SendClientMessage(killerid, -1, "Felicidades, ЎSubiste de nivel!");
        SetPlayerAttachedObject(killerid,9,1276,1,-0.241000,0.056999,0.000000,2.200000,71.799964,-101.999992,0.000000,0.000000,0.051999);
        TimerNivel[killerid] = SetTimerEx("DesactivarBurbuja", 3000, false, "i", killerid) // Desactivar burbuja al jugador dentro de 3 segundos
    }
    return 1;
}
Saludos!
Reply
#10

MillerUTL ayudame con esos errores :c
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)