Jump to content

Question

Posted

Cum fac de exemplu, fac o comanda /minigun, si cand ma duc acolo, daca vreau sa ma teleportez ( /goto, /sf, /lv, etc )  sau daca vreau sa ies din acea zona, sa nu pot iesi fara /exit ? Sa pot iesi doar cu comanda /exit si cand dau /exit sa ii scoata armele jucatorului si sa il spawneze ?

P.S: Sa nu pot iesi de la /minigun fara sa dau /exit. ( adica zona DM )

www.youtube.com/thebwgg

23 answers to this question

Recommended Posts

Posted

1.Pentru inceput creezi o variabile sa spunem

[pawn]

new IsPlayerInDeathMatch[ MAX_PLAYERS ];

[/pawn]

dupa aceea mergi la comanda /minigun sau la care vrei sa o adaugi

si pui:

[pawn]

IsPlayerInDeathMatch[ playerid ] = 1;

[/pawn]

dupa accea mergi la OnPlayerCommandText si pui

[pawn]

if ( IsPlayerInDeathMatch[ playerid ] == 1 ) return SendClientMessage( playerid, culoare, "You can not use commands in DeathMatch! Type /exit to leave the DM!" );

[/pawn]

dupa aceea faci comanda care va scoate playeru din DM:

[pawn]

if ( strcmp( cmdtext, "/exit", true ) )

{

    if ( IsPlayerInDeathMatch[ playerid ] == 0 ) return SendClientMesage( playerid, culoare, "You are not in a DM!" );

   

    SpawnPlayer( playerid );

    IsPlayerInDeathMatch[ playerid ] = 0;

    ResetPlayerWeapons( playerid );

    SendClientMessage( playerid, culoare, "You leave the DeathMatch!" );

    return 1;

}

[/pawn]

si am terminat ;)

EDIT: Am uitat sa spun ca trebuie pusa si la OnPlayerConnect asta:

[pawn]

IsPlayerInDeathMatch[ playerid ] = 0;

[/pawn]

TREBUIE sa pui asta la OnPlayerConnect pentru ca daca un player sa spunem cu id-ul 1 iese afara din server cand este intr-un DM, si intra alt player cu id-ul 1 in va spune ca nu poate folosi comenzi pentru ca este in dm dar defat playerul cu id-ul 1 a fost...

Fara reclama in semnatura!

Posted

Te-as ajuta dar nu am inteles nimic din ce ai spus,i-a citeste si tu si vezi daca intelegi ceva :)

Cred ca vrei sa spui,ca vrei sa faci o comanda sa il puna pe acel player intr-o zona si sa ii dea minigun ,iar cand vrea sa iasa ,sa dea /exit si sa ii scoata minigun-ul nu ?

[pawn]

if(strcmp(cmd, "/minigun", true) == 0)

{

      SetPlayerPos(playerid,x,y,z);

      GivePlayerWeapon(playerid,id-ul armei,500);

return 1;

}

[/pawn]

Comanda /exit

[pawn]

if(strcmp(cmd, "/exit", true) == 0)

{

      SetPlayerPos(playerid,x,y,z);

}

[/pawn]

:)

Samp.OnlyPro.ro - RolePlay - Join Us !

Posted

Am pus cum a zis xxSPEEDYxx, si imi da un warning:

C:\Users\Bwggu\Desktop\RSG1.pwn(3467) : warning 225: unreachable code

[pawn]3467 if (strcmp("/stunts",cmdtext,true,10)== 0)[/pawn]

si dialog-ul intreg:

[pawn]if (strcmp("/stunts",cmdtext,true,10)== 0)

  {

      ShowPlayerDialog(playerid,Stunts,DIALOG_STYLE_LIST,"{FFFFFF}Stunts","{FFFFFF}/lsa - {FF9900}Los Santos Airport\n{FFFFFF}lva - {FF9900}Las Venturas Airport \n{FFFFFF}/sfa - {FF9900}San Fierro Airport\n{FFFFFF}/stunt - {FF9900}Small Stunt\n{FFFFFF}/nrgs - {FF9900}Nrg Stunt\n{FFFFFF}/nrgs2 - {FF9900}Nrg Stunt2\n{FFFFFF}/skate - {FF9900}Bmx & Nrg","OK","Cancel");

      return 1;

  }[/pawn]

www.youtube.com/thebwgg

Posted

mda pune in loc de

[pawn]

if ( strcmp( cmdtext, "/exit", true ) )

[/pawn]

cum am spus eu asa:

[pawn]

if ( strcmp( "/exit", cmdtext, true, 10 ) == 0 )

[/pawn]

Fara reclama in semnatura!

Posted

Am facut inca odata tot de la inceput !

Am dat compile si imi da asa:

C:\Users\Bwggu\Desktop\RSG1.pwn(3466) : warning 225: unreachable code

C:\Users\Bwggu\Desktop\RSG1.pwn(3509) : error 029: invalid expression, assumed zero

[pawn]3466    if (strcmp("/stunts",cmdtext,true,10)== 0)

3509    else[/pawn]

www.youtube.com/thebwgg

Posted

Cum fac de exemplu, fac o comanda /minigun, si cand ma duc acolo, daca vreau sa ma teleportez ( /goto, /sf, /lv, etc )  sau daca vreau sa ies din acea zona, sa nu pot iesi fara /exit ? Sa pot iesi doar cu comanda /exit si cand dau /exit sa ii scoata armele jucatorului si sa il spawneze ?

P.S: Sa nu pot iesi de la /minigun fara sa dau /exit. ( adica zona DM )

[pawn]new bool: Minigun[ MAX_PLAYERS ];[/pawn]

[pawn]if( !strcmp( cmdtext, "/minigun", true ) )

{

      if( Minigun[ playerid ] ) return SendClientMessage( playerid, -1, "You are already there." );

      Minigun[ playerid ] = 1;

      // stuff here

      return 1;

}

if( !strcmp( cmdtext, "/exit", true ) )

{

      if( ! Minigun[ playerid ] ) return SendClientMessage( playerid, -1, "You are not into the minigun area." );

      Minigun[ playerid ] = 0;

      ResetPlayerWeapons( playerid );

      SpawnPlayer( playerid );

      // stuff here

      return 1;

}[/pawn]

[pawn]Minigun[ playerid ] = 0; // OnPlayerConnect[/pawn]

Posted

Am facut cum ai zis tu Razvann si dupa compile imi da asa:

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(2966) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3512) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3516) : error 029: invalid expression, assumed zero

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3527) : warning 213: tag mismatch

Liniile:

[pawn]2966 Minigun[ playerid ] = 0;[/pawn] (la OnPlayerConnect)

[pawn]3512      Minigun[ playerid ] = 1;

3516    else

3527      Minigun[ playerid ] = 0;[/pawn]

Si astea sunt cele 2 comenzi (/minigun, /exit):

Minigun:

[pawn]if( !strcmp( cmdtext, "/minigun", true ) )

{

      if( Minigun[ playerid ] ) return SendClientMessage( playerid, -1, "You are already there." );

      Minigun[ playerid ] = 1;

    {

        GivePlayerWeapon(playerid,38,8888);

}

    else

    {

        SetPlayerPos(playerid,21,1142.8766,1346.5623);

    }

    GivePlayerWeapon(playerid,38,8888);

    return 1;

}[/pawn]

/exit:

[pawn]if( !strcmp( cmdtext, "/exit", true ) )

{

      if( ! Minigun[ playerid ] ) return SendClientMessage( playerid, -1, "You are not into the minigun area." );

      Minigun[ playerid ] = 0;

      ResetPlayerWeapons( playerid );

      SpawnPlayer( playerid );

      SendClientMessage( playerid, 0xAA3333AA, "You leave the DeathMatch!" );

    return 1;

}[/pawn]

www.youtube.com/thebwgg

Posted

[pawn]

if( !strcmp( cmdtext, "/minigun", true ) )

{

      if( Minigun[ playerid ] ) return SendClientMessage( playerid, -1, "You are already there." );

      Minigun[ playerid ] = 1;

      GivePlayerWeapon(playerid,38,8888);

      SetPlayerPos(playerid,21,1142.8766,1346.5623);

      return 1;

}[/pawn]

picard2.png

Stii macar sa iei coordonatele calumea? :|

Posted

Am schimbat coordonatele ca nu erau bune..

EDIT: eu vreau sa rezolv warn-urile si errorile...

ERRORS & WARNS:

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(2968) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3515) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3519) : error 029: invalid expression, assumed zero

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3530) : warning 213: tag mismatch

Nu stiu sa le rezolv..

www.youtube.com/thebwgg

Posted

Am schimbat coordonatele ca nu erau bune..

EDIT: eu vreau sa rezolv warn-urile si errorile...

ERRORS & WARNS:

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(2968) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3515) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3519) : error 029: invalid expression, assumed zero

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3530) : warning 213: tag mismatch

Nu stiu sa le rezolv..

Scuze ca-ti spun, dar esti prost de dai in gropi, DA-NE LINIILE RESPECTIVE SI CATEVA DIN JURUL LOR, MARCAND SI NUMARUL LINIILOR, exemplu:

[pawn]if( dialogid == ID_DIALOG ) //linia 248

{ //linia 249

    if( response )f //linia 250, eroare, de la 'f'

    {  //linia 251

...etc

}[/pawn]

Posted

De ce sunt prost ?:| Ca am postat mai sus LINIILE ?! :|

stuntman[]! link=topic=14228.msg88454#msg88454 date=1312985788]

DA-NE LINIILE RESPECTIVE SI CATEVA DIN JURUL LOR, MARCAND SI NUMARUL LINIILOR, exemplu:

[pawn]if( dialogid == ID_DIALOG ) //linia 248

{ //linia 249

    if( response )f //linia 250, eroare, de la 'f'

    {  //linia 251

...etc

}[/pawn]

Liniile care le-ai postat n-au nici o problema.

Doar /minigun, incearc-o p'asta:

[pawn]if( strcmp( cmdtext, "/minigun", true ) == 0 )

{

if( Minigun[ playerid ] ) return SendClientMessage( playerid, -1, "You are already there." );

Minigun[ playerid ] = 1;

        GivePlayerWeapon(playerid,38,8888);

SetPlayerPos(playerid,21,1142.8766,1346.5623);

GivePlayerWeapon(playerid,38,8888);

return 1;

}[/pawn]

Poate ca de la asta era.

Posted

Acum imi da 3 warns:

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(2968) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3516) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3526) : warning 213: tag mismatch

[pawn]2968 Minigun[ playerid ] = 0;[/pawn] la OnPlayerConnect

[pawn]3516 Minigun[ playerid ] = 1;[/pawn] de la comanda /minigun

[pawn]3526      Minigun[ playerid ] = 0;[/pawn] la comanda /exit

www.youtube.com/thebwgg

Posted

Acum imi da 3 warns:

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(2968) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3516) : warning 213: tag mismatch

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3526) : warning 213: tag mismatch

[pawn]2968 Minigun[ playerid ] = 0;[/pawn] la OnPlayerConnect

[pawn]3516 Minigun[ playerid ] = 1;[/pawn] de la comanda /minigun

[pawn]3526      Minigun[ playerid ] = 0;[/pawn] la comanda /exit

[pawn]new bool: Minigun[ MAX_PLAYERS ];[/pawn]

schimba cu

[pawn]new Minigun[ MAX_PLAYERS ];[/pawn]

Posted

Acum totul e ok. Dar vreau ca dupa ce dau /minigun, sa nu mearga si alte comenzi, ca de exemplu: /sf, /goto, /nrg, etc... Sa nu mearga nicio comanda daca esti la /minigun. Doar /exit. Ca am testat acum si dupa ce dau /minigun, pot sa dau /sf, /goto, etc..

www.youtube.com/thebwgg

Posted

adaugi la fiecare

[pawn]

if( Minigun[ playerid ] ) return SendClientMessage( playerid, -1, "You can't enter there." );

[/pawn]

Ia cam mult sa puna la fiecare comanda aia.


http://www.sa-mp.ro/forum/index.php/topic,13195.0.html

Cred ca trebuia sa ti-l dau de la inceput :))


Baga asta sus la OnPlayerCommandText ( OnPlayerCommandPerformed daca ai ZCMD )

if( Minigun[ playerid ] == 1 && strcmp(cmdtext, "/exit", true) != 0 )
	return SendClientMessage( playerid, 0xFF0000FF, "EROARE: {FFFFFF}Nu poti iesi din aceasta zona, foloseste /exit!" );

Posted

Acum imi da un warn:

C:\Users\Bwggu\Desktop\RSG4564212RO.pwn(3479) : warning 225: unreachable code

Postez ce e la inceput la OnPlayerCommandText:

[pawn]public OnPlayerCommandText(playerid, cmdtext[])

{

  // Create variables

  new cmd[256];

  new giveplayerid, moneys;

  new string [828];

  new idx;

  new tmp[256];

  new playermoney;

  new sendername[MAX_PLAYER_NAME];

  new giveplayer[MAX_PLAYER_NAME];

  new gMessage[256];

  new pName[MAX_PLAYER_NAME+1];

  new Message[256];

  new iName[MAX_PLAYER_NAME+1];

  cmd = strtok(cmdtext, idx);

  PlayerCmdFrq[playerid]++;

  if(PlayerCmdFrq[playerid]>MAX_COMMAND_FREQUENCY)

  if( Minigun[ playerid ] == 1 && strcmp(cmdtext, "/exit", true) != 0 )

return SendClientMessage( playerid, 0xFF0000FF, "EROARE: {FFFFFF}Nu poti iesi din aceasta zona, foloseste /exit!" );

 

{[/pawn]

Si linia 3479:

[pawn]3479  if (strcmp("/stunts",cmdtext,true,10)== 0)[/pawn]

Dar de ce imi da warn tocmai aici ? Nu are nicio legatura..

EDIT: Acum nu mai merge nicio comanda, chiar daca nu dau /minigun..

www.youtube.com/thebwgg

Posted

Tu esti ....

if( Minigun[ playerid ] == 1 && strcmp(cmdtext, "/exit", true) != 0 )
	return SendClientMessage( playerid, 0xFF0000FF, "EROARE: {FFFFFF}Nu poti iesi din aceasta zona, foloseste /exit!" );
  
	{

La ce ai deschis tu acea { ?

Posted

Care paranteza man ?!

[pawn]if( Minigun[ playerid ] == 1 && strcmp(cmdtext, "/exit", true) != 0 )

return SendClientMessage( playerid, 0xFF0000FF, "EROARE: {FFFFFF}Nu poti iesi din aceasta zona, foloseste /exit!" );

 

{ //asta ?[/pawn]

EDIT: acum fac dupa tutorialul tau.

www.youtube.com/thebwgg

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.