Jump to content
  • 0

pomoc SetPlayerScore


Invouk

Dotaz

Dobrý Den prečo mi nefunguje:
 

if(dialogid == DIALOG_SETADMIN)
     {
          if(!response)
          {
                switch(listitem)
                    {
                    case 0: SetPlayerScore(playerid, 0);
                    case 1: SetPlayerScore(playerid, 1);
                    case 2: SetPlayerScore(playerid, 2);
                    case 3: SetPlayerScore(playerid, 3);
                    case 4: SetPlayerScore(playerid, 4);
                    case 5: SetPlayerScore(playerid, 5);
                    }
          }
    }


PRoste zobrazí sa dialog .. : 

if(strcmp("/setadmin",cmdtext,true) == 0)
	{
		if(!IsPlayerAdmin(playerid))
		{
		ShowPlayerDialog(playerid, DIALOG_SETADMIN, DIALOG_STYLE_LIST, "Nastavenia Administrátora", "Hráč\nSupport\nHelper\nModerátor\nAdministrator\nHlavný administrator ");
		}else{
		SendClientMessage(playerid, COLOR_RED, "Nemáš dostatoční admin level na použitie tohoto príkazu");
		}
		return 1;
	}

A nejde mi to :d proste nenastaví mi Score

 

Link to comment
Share on other sites

22 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Hlavní moderátor

pokud to chceš mít na prvním tlačítku, odstraň ten vykřičník (jak již bylo řečeno výše):

if(dialogid == DIALOG_SETADMIN)
 {
    if(response)
    {
        switch(listitem)
        {
            case 0: SetPlayerScore(playerid, 0);
            case 1: SetPlayerScore(playerid, 1);
            case 2: SetPlayerScore(playerid, 2);
            case 3: SetPlayerScore(playerid, 3);
            case 4: SetPlayerScore(playerid, 4);
            case 5: SetPlayerScore(playerid, 5);
        }
    }
}

_

a pokud už špatně nevidím, u funkce ShowPlayerDialog ti chybí 2 argumenty, a to právě na tlačítka, takže tady je to správně: (název tlačítek si přepiš)

ShowPlayerDialog(playerid, DIALOG_SETADMIN, DIALOG_STYLE_LIST, "Nastavenia Administrátora", "Hráč\nSupport\nHelper\nModerátor\nAdministrator\nHlavný administrator", "Tl. 1", "Tl. 2");
Link to comment
Share on other sites

  • 0

Na co dělat:

switch(listitem)
{
case 0: SetPlayerScore(playerid, 0);
case 1: SetPlayerScore(playerid, 1);
case 2: SetPlayerScore(playerid, 2);
case 3: SetPlayerScore(playerid, 3);
case 4: SetPlayerScore(playerid, 4);
case 5: SetPlayerScore(playerid, 5);
}

Když můžeš místo toho prostě udělat:

SetPlayerScore(playerid, listitem);
Link to comment
Share on other sites

  • 0

Dobrý den mam problém sfarbami: 

SendClientMessage(playerid,COLOR_RED,"{0xFFFF0000}[ ! ]{0xFFFFFFFF}Nemáš dostatok penazí na sebevraždu{0xFFFF0000}[ ! ]");

Ak napíšem .. /Kill .. tak napíše henten text  čo je cely: 

{0xFFFF0000}[ ! ]{0xFFFFFFFF}Nemáš dostatok penazí na sebevraždu{0xFFFF0000}[ ! ] v Cervenom

Link to comment
Share on other sites

  • 0

ako nastavím administrátora teda  pr.  case 5: SetPlayerScpre(playerid, 6);
a chcem to na ID cez DIalog ako nastavím aby som to nastavil danemu IDečku ?? to fakt nwm


A prečo mi nefunguje COmmand: 

if(strcmp("/adminc", cmdtext, true) == 0)
	{
		if(GetPlayerScore(playerid) == 1) return SendClientMessage(playerid, COLOR_RED, "Nemáš dostatočný Admin Level");
		{
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 1.: /facka ID - /esok ID");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
			return 1;
		}
		if(GetPlayerScore(playerid) == 2)
		{
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 1.: /facka ID - /esok ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 2.: /mute ID - /unmute ID - /freeze ID - /unfreeze ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
		return 1;
		}
		if(GetPlayerScore(playerid) == 3)
		{
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 1.: /facka ID - /esok ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 2.: /mute ID - /unmute ID - /freeze ID - /unfreeze ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 3.: /kick ID Dôvod - /startrace NazovRace");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
       		return 1;
		}
		if(GetPlayerScore(playerid) == 4)
		{
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 1.: /facka ID - /esok ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 2.: /mute ID - /unmute ID - /freeze ID - /unfreeze ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 3.: /kick ID Dôvod - /startrace NazovRace");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 4.: /ban id dôvod čas h/d/m /startdm NazovDM");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
		return 1;
		}
		if(GetPlayerScore(playerid) == 5)
		{
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 1.: /facka ID - /esok ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 2.: /mute ID - /unmute ID - /freeze ID - /unfreeze ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 3.: /kick ID Dôvod - /startrace NazovRace");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 4.: /ban id dôvod čas h/d/m /startdm NazovDM");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 5.: /restart - /ipban ID dôvod čas - /pban id dôvod ");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
		return 1;
		}
		if(IsPlayerAdmin(playerid))
		{
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 1.: /facka ID - /esaok ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 2.: /mute ID - /unmute ID - /freeze ID - /unfreeze ID");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 3.: /kick ID Dôvod - /startrace NazovRace");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 4.: /ban id dôvod čas h/d/m /startdm NazovDM");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "LvL 5.: /restart - /ipban ID dôvod čas - /pban id dôvod ");
        SendClientMessage(playerid,COLOR_LIGHTBLUE, "Rcon : /setadmin - Nastaví hračovi AlVl");
		SendClientMessage(playerid,COLOR_LIGHTBLUE, "+=========================Admin Command=========================+");
		return 1;
		}
	}

Ano mam to odtabovane len sa to zle formatuje
...A nefunguje ak mam score 5 tak nenapíše mi ten command pre LVL 5 ale len pre LVl 1

Link to comment
Share on other sites

  • 0
if(GetPlayerScore(playerid) == 1) return SendClientMessage(playerid, COLOR_RED, "Nemáš dostatočný Admin Level"); 
{

Tu ten return musíš zmazať.

 

Ďalej by som použil if, else-if

if (IsPlayerAdmin(playerid))
  SendClientMessage(playerid, COLOR_LIGHTBLUE, "RCON!");
else if (GetPlayerScore(playerid) == 1) 
  SendClientMessage(playerid, COLOR_LIGHTBLUE, "LVL 1");
else if (GetPlayerScore(playerid) == 2)
  ...

ako nastavím administrátora teda  pr.  case 5: SetPlayerScpre(playerid, 6);

a chcem to na ID cez DIalog ako nastavím aby som to nastavil danemu IDečku ?? to fakt nwm

Pohodlnejšie by bolo buď použiť DIALOG_STYLE_INPUT, kam zadá používateľ číslo...

Pomocou strval(inputtext) prevedieš inputtext na skutočné číslo - id hráča, ktorému chceš nastaviť admin lvl.

 

Alebo - v SA:MP sa dá zistiť, či hráč klikol na niekoho v tabulke so skóre (v hre otváraš TABom).

Na to je OnPlayerClickPlayer. Tým zistíš aj ID hráča čo na niekoho klikol aj ID hráča na ktorého bolo kliknuté.

Link to comment
Share on other sites

  • 0

Jo :d maš problem :d aspom mi bude to score naniečo :d


Take ešte nikdo nevymyslel okrem mna :d aspom budem jediny system ktory môže byť aspom vidíš že som originálny :d A nerobím podla nekeho kdo tu bol 100x :d na Sa-mp Scene :d


Tu ten return musíš zmazať.

Ďalej by som použil if, else-if

if (IsPlayerAdmin(playerid))
  SendClientMessage(playerid, COLOR_LIGHTBLUE, "RCON!");
else if (GetPlayerScore(playerid) == 1) 
  SendClientMessage(playerid, COLOR_LIGHTBLUE, "LVL 1");
else if (GetPlayerScore(playerid) == 2)
  ...

Pohodlnejšie by bolo buď použiť DIALOG_STYLE_INPUT, kam zadá používateľ číslo...
Pomocou strval(inputtext) prevedieš inputtext na skutočné číslo - id hráča, ktorému chceš nastaviť admin lvl.

Alebo - v SA:MP sa dá zistiť, či hráč klikol na niekoho v tabulke so skóre (v hre otváraš TABom).
Na to je OnPlayerClickPlayer. Tým zistíš aj ID hráča čo na niekoho klikol aj ID hráča na ktorého bolo kliknuté.

1. Zmenil som to else if na:  

else if(GetPlayerScore(playerid) == 1)

Errory: 
 

D:\Documents and Settings\12XpresS12\Plocha\Server HighLive\gamemodes\HighL.pwn(356) : warning 225: unreachable code
D:\Documents and Settings\12XpresS12\Plocha\Server HighLive\gamemodes\HighL.pwn(361) : error 029: invalid expression, assumed zero
D:\Documents and Settings\12XpresS12\Plocha\Server HighLive\gamemodes\HighL.pwn(361) : warning 215: expression has no effect
D:\Documents and Settings\12XpresS12\Plocha\Server HighLive\gamemodes\HighL.pwn(361) : error 001: expected token: ";", but found "if"

a po 2.
a to ako spravím ... toakože .. ty myslíš tak že ked klikne na hrača v tabe zobrazí sa mu dialog s  
 

ShowPlayerDialog(playerid, DIALOG_SETADMIN, DIALOG_STYLE_LIST, "Nastavenia Administrátora", "Hráč\nSupport\nHelper\nModerátor\nAdministrator\nHlavný administrator", "Select", "Cancel");

 a to je all nie ? inač to nwm pochopiť som začiatočnik moc toho nepochopím len takto vysvetlene musiš stučne a jasne ... 

Link to comment
Share on other sites

  • 0

je to každého věc co s čím dělá.... a pro někoho kdo v modu nemá využití pro score tak je to dobrá věc.

Len som sa pýtal to možem nie asi ?! OMG Sa nepose* ( Admini sorry za nadavku ). :p

 

A to by ma ani nenapadlo asi to okopirujem ale len tie SetPlayerScore .. Systém si urobím sam. :)

Link to comment
Share on other sites

  • 0

Len som sa pýtal to možem nie asi ?! OMG Sa nepose* ( Admini sorry za nadavku ). :p

 

A to by ma ani nenapadlo asi to okopirujem ale len tie SetPlayerScore .. Systém si urobím sam. :)

Nech me hádat Doba pawnení 36 hodin xD

Link to comment
Share on other sites

  • 0

Chcem Stock ... ktory zistí ID ... hrača a  pr...  ako

 

/kick ID     <-- TO IDE chcem    a do  prikazu dam ... "/kick %d"id

Toto myslím  a chcem to len kvoly temu lebo fakt neviem ako to spravit a stoky duplom neviem

Link to comment
Share on other sites

  • 0
stock GetPlayerIdFromName(playername[])
{
  for(new i = 0; i <= MAX_PLAYERS; i++)
  {
    if(IsPlayerConnected(i))
    {
      new playername2[MAX_PLAYER_NAME];
      GetPlayerName(i, playername2, sizeof(playername2));
      if(strcmp(playername2, playername, true, strlen(playername)) == 0)
      {
        return i;
      }
    }
  }
  return INVALID_PLAYER_ID;
}

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

 

Ale nie som si istý, či to funguje.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...