Jump to content
  • 0

pomoc Prosím o opravu


MajorGames4

Dotaz

Ahojte, prosím o opravu môjho kódu. Pawno mi ukáže po kompilácií program prestal pracovať, takže neviem nájsť chyby a opraviť ich. Preto by som potreboval rady od vás skúsenejších :).

Spoiler
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
//Definície - Základné
#define spd ShowPlayerDialog
#define scm SendClientMessage
#define sph SetPlayerHealth
#define gpw GivePlayerWeapon
#define sps SetPlayerSkin
#define gpm GivePlayerMoney
#define getpm GetPlayerMoney
#define scmta SendClientMessageToAll
#define id playerid
//Definície - ShowPlayerDialog
#define list DIALOG_STYLE_LIST
#define msg DIALOG_STYLE_MSGBOX
#define text DIALOG_STYLE_INPUT
#define pass DIALOG_STYLE_PASSWORD
//Definície - Farby
#define cervena 0xFF0000
#define modra 0x00FFD0
#define zlta 0xD9D204
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
 print("\n--------------------------------------");
 print(" Blank Filterscript by your name here");
 print("--------------------------------------\n");
 return 1;
}
public OnFilterScriptExit()
{
 return 1;
}
#else
main()
{
 print("\n----------------------------------");
 print(" Blank Gamemode by your name here");
 print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
 // Don't use these lines if it's a filterscript
 SetGameModeText("RZE *Special*");
 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
 return 1;
}
public OnGameModeExit()
{
 return 1;
}
public OnPlayerRequestClass(id, classid)
{
 SetPlayerPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraLookAt(id, 1958.3783, 1343.1572, 15.3746);
 return 1;
}
cmd(menu, id, params[])
{
 spd(id,1,list,"Hlavné Menu","{FFFFFF}Kúpiť zbraň\nKúpiť Skin\n{15FF00}Pravidlá\n{FFFFFF}Príkazy","Vybrať","Zrušiť");
 return 1;
}
cmd(amenu, id, params[])
{
 if(IsPlayerAdmin(id)) return spd(id,7,msg,"{FF0000}Varovanie","{FFFFFF}Toto menu slúži len pre {FF0000}Adminov! {FFFFFF}Ty nie si {FF0000}Admin!","Chápem","");
 {
 spd(id,6,list,"Hlavné Menu - {FF0000}Admin Menu","Zabanovať hráča\nVyhodiť hráča\nPridať peniaze\nVIP Systém - {FF0000}Pracuje sa!","Vybrať","Zrušiť");
 }
 return 1;
}
public OnDialogResponse(id, dialogid, response, listitem, inputtext[])
{
 if(dialogid == 1)
 {
  if(response)
  {
   switch(listitem)
   {
    case 0:
    {
     spd(id,2,list,"Kúpiť zbraň","m4(230$ - 500 Nábojov)\nak47(230$ - 500 Nábojov)\nDeagle(50$ - 500 Nábojov)\nVšetky(1 500$ - 1 000 Nábojov do všetkých)","Kúpiť","Zrušiť");
    }
    case 1:
    {
     spd(id,3,list,"Kúpiť skin","Skin ID: 22 (50$)\nSkin ID: 54 (50$)\nSkin ID: 77 (50$)\nSkin ID: 143 (50$)\n{5EBFF2}Náhodný skin","Kúpiť", "Zrušiť");
    }
    case 2:
    {
     spd(id,4,msg,"Pravidlá servera - {11CF14}Evolve-HostingSK","Pravidlá pre náš {11CF14}Server:\n\n{FFFFFF}1. {FFF700}Nehacknuj, Necheatuj.\n{FFFFFF}2. {FFF700}Nenadávaj do chatu, nespamuj blbosti.\n{FFFFFF}3. {FFF700}Ak máš problém, kontaktuj Admina.\n{11CF14}==[Povolené módy]==\n\n{FFFFFF}1. {FFF700}Všetky povolené a doporučené módy nájdeš na našom webe!\n{00FFDD}www.evolve-hostingsk.6f.sk","Rozumiem","");
    }
    case 3:
    {
     spd(id,5,msg,"Príkazy servera {11CF14}Evolve-HostingSK","{FF00EE}Príkazy pre hráčov:\n\n{FFFFFF}/menu - Zobrazí hlavné menu\n{FF0000}Ďalšie príkazy doplňujeme!","Rozumiem","");
    }
   }
  }
 }
 if(dialogid == 2)
 {
  if(response)
  {
   switch(listitem)
   {
    case 0:
    {
     if(getpm(id) < 230) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,31,500);
     gpm(id,-230);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: M4");
     }
    }
    case 1:
    {
     if(getpm(id) < 230) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,30,500);
     gpm(id,-230);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: AK47");
     }
    }
    case 2:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     
     gpw(id,24,500);
     gpm(id,-50);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: Deagle");
     }
    }
    case 3:
    {
     if(getpm(id) < 1500) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,31,1000);
     gpw(id,30,1000);
     gpw(id,24,1000);
     gpm(id,-1500);
     scm(id,-1,"{00FFD0}[Done] Úspešne si si zakúpil všetky zbraňe.");
     }
    }
   }
  }
 }
 if(dialogid == 3)
 {
  if(response)
  {
   switch(listitem)
   {
    case 0:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,22);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}22");
     }
    }
    case 1:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,54);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}54");
     }
    }
    case 2:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,77);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}77");
     }
    }
    case 3:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$")
     {
      sps(id,143);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}143");
     }
    }
   }
  }
 }
 if(dialogid == 6)
 {
  if(listitem)
  {
   switch(listitem)
   {
    case 0:
    {
     if(IsPlayerConnected(id)) return scm(id,-1,"[!] Zadané ID nie je pripojené na Servery!");
     {
     spd(id,8,text,"Ban System","Zadajte meno hráča:","Ok","Zrušiť");
     }
    }
   }
  }
 }
 if(dialogid == 8)
 {
  if(inputtext)
  {
   scm(id,-1,"{FF0000}[!] Zadané meno bolo zapísané!")
   spd(id,9,text,"Ban System","Zadaj dôvod trvalého banu:","Ok","Zrušiť");
  }
 }
 if(dialogid == 9)
 {
  if(inputtext)
  {
   new banSys[20] = GetPlayerName(id);
   
   scm(id,-1,"{FF0000}[!] Dôvod bol zapísaný!");
   
   Ban(id);
   format(banSys,sizeof(banSys),"{FF0000}Admin servera zabanoval hráča "%s" na dobu neurčitú!",banSys)
   scmta(-1,banSys);
  }
 }
 return 1;
}

 

Link to comment
Share on other sites

23 odpovědí na tuto otázku

Recommended Posts

  • 0

Už to mám opravené, ďakujem. Mám ešte otázku. Kedže som pawner - začiatočník, vytváram svoj FS - Admin Menu, kde je Pridať peniaze. Už hodiny nad tým lámem hlavu ako to urobiť, no žiaľ, neviem na to prísť.

Chcem urobiť následujúcu vec: Keď admin klikne na "Pridať peniaze", tak sa mu zobrazia 2 okná.

1 = čiastka, ktorú chce pridať hráčovy

2 = Zistenie ID hráča.

A tu je ten problém, ako mám urobiť to zistenie ID hráča? Že keď vypíšem čiastku a ID hráča tak to tomu danému hráčovi dá napísanú čiastku? Hodiny nad tým lámem hlavu, ale stále neviem ako na to. Mohli by ste mi niekto poradiť? Prikladám aktuálny script:

Spoiler
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
//Definície - Základné
#define spd ShowPlayerDialog
#define scm SendClientMessage
#define sph SetPlayerHealth
#define gpw GivePlayerWeapon
#define sps SetPlayerSkin
#define gpm GivePlayerMoney
#define getpm GetPlayerMoney
#define scmta SendClientMessageToAll
#define id playerid
//Definície - ShowPlayerDialog
#define list DIALOG_STYLE_LIST
#define msg DIALOG_STYLE_MSGBOX
#define text DIALOG_STYLE_INPUT
#define pass DIALOG_STYLE_PASSWORD
//Definície - Farby
#define cervena 0xFF0000
#define modra 0x00FFD0
#define zlta 0xD9D204
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
 print("\n--------------------------------------");
 print(" Blank Filterscript by your name here");
 print("--------------------------------------\n");
 return 1;
}
public OnFilterScriptExit()
{
 return 1;
}
#else
main()
{
 print("\n----------------------------------");
 print(" Blank Gamemode by your name here");
 print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
 // Don't use these lines if it's a filterscript
 SetGameModeText("RZE *Special*");
 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
 return 1;
}
public OnGameModeExit()
{
 return 1;
}
public OnPlayerRequestClass(id, classid)
{
 SetPlayerPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraLookAt(id, 1958.3783, 1343.1572, 15.3746);
 return 1;
}
cmd(menu, id, params[])
{
 spd(id,1,list,"Hlavné Menu","{FFFFFF}Kúpiť zbraň\nKúpiť Skin\n{15FF00}Pravidlá\n{FFFFFF}Príkazy","Vybrať","Zrušiť");
 return 1;
}
cmd(amenu, id, params[])
{
 if(IsPlayerAdmin(id)) return spd(id,7,msg,"{FF0000}Varovanie","{FFFFFF}Toto menu slúži len pre {FF0000}Adminov! {FFFFFF}Ty nie si {FF0000}Admin!","Chápem","");
 {
  spd(id,6,list,"Hlavné Menu - {FF0000}Admin Menu","Pridať peniaze\nDoplniť život\nDoplniť vestu\nDať hráčovi zbraň\n{15FF00}Pridať Admin Novinku","Vybrať","Zrušiť");
 }
 return 1;
}
public OnDialogResponse(id, dialogid, response, listitem, inputtext[])
{
 if(dialogid == 1)
 {
  if(response)
  {
   switch(listitem)
   {
    case 0:
    {
     spd(id,2,list,"Kúpiť zbraň","m4(230$ - 500 Nábojov)\nak47(230$ - 500 Nábojov)\nDeagle(50$ - 500 Nábojov)\nVšetky(1 500$ - 1 000 Nábojov do všetkých)","Kúpiť","Zrušiť");
    }
    case 1:
    {
     spd(id,3,list,"Kúpiť skin","Skin ID: 22 (50$)\nSkin ID: 54 (50$)\nSkin ID: 77 (50$)\nSkin ID: 143 (50$)\n{5EBFF2}Náhodný skin","Kúpiť", "Zrušiť");
    }
    case 2:
    {
     spd(id,4,msg,"Pravidlá servera - {11CF14}Evolve-HostingSK","Pravidlá pre náš {11CF14}Server:\n\n{FFFFFF}1. {FFF700}Nehacknuj, Necheatuj.\n{FFFFFF}2. {FFF700}Nenadávaj do chatu, nespamuj blbosti.\n{FFFFFF}3. {FFF700}Ak máš problém, kontaktuj Admina.\n{11CF14}==[Povolené módy]==\n\n{FFFFFF}1. {FFF700}Všetky povolené a doporučené módy nájdeš na našom webe!\n{00FFDD}www.evolve-hostingsk.6f.sk","Rozumiem","");
    }
    case 3:
    {
     spd(id,5,msg,"Príkazy servera {11CF14}Evolve-HostingSK","{FF00EE}Príkazy pre hráčov:\n\n{FFFFFF}/menu - Zobrazí hlavné menu\n{FF0000}Ďalšie príkazy doplňujeme!","Rozumiem","");
    }
   }
  }
 }
 if(dialogid == 2)
 {
  if(response)
  {
   switch(listitem)
   {
    case 0:
    {
     if(getpm(id) < 230) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,31,500);
     gpm(id,-230);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: M4");
     }
    }
    case 1:
    {
     if(getpm(id) < 230) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,30,500);
     gpm(id,-230);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: AK47");
     }
    }
    case 2:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,24,500);
     gpm(id,-50);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: Deagle");
     }
    }
    case 3:
    {
     if(getpm(id) < 1500) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,31,1000);
     gpw(id,30,1000);
     gpw(id,24,1000);
     gpm(id,-1500);
     scm(id,-1,"{00FFD0}[Done] Úspešne si si zakúpil všetky zbraňe.");
     }
    }
   }
  }
 }
 if(dialogid == 3)
 {
  if(response)
  {
   switch(listitem)
   {
    case 0:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,22);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}22");
     }
    }
    case 1:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,54);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}54");
     }
    }
    case 2:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,77);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}77");
     }
    }
    case 3:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,143);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}143");
     }
    }
   }
  }
 }
 if(dialogid == 6)
 {
  if(response == 1)
  {
   switch(listitem)
   {
    case 0:
    {
     spd(id,7,text,"Pridať peniaze","Napíš hodnotu: (MAX: 9 999 999$)","Give","Zrušiť");
    }
   }
  }
 }
 if(dialogid == 7)
 {
  if(response == 1)
  {
   spd(id,8,text,"Pridať peniaze","Napíš ID hráča:","Give","Zrušiť");
  }
 }
 if(dialogid == 8)
 {
  if(response == 1)
  {
   
  }
 }
 return 1;
}

EDIT:

 

Takže som sa trošku pohral a urobil som nasledujúce úpravy:

Spoiler
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
//Definície - Základné
#define spd ShowPlayerDialog
#define scm SendClientMessage
#define sph SetPlayerHealth
#define gpw GivePlayerWeapon
#define sps SetPlayerSkin
#define gpm GivePlayerMoney
#define getpm GetPlayerMoney
#define scmta SendClientMessageToAll
#define id playerid
//Definície - ShowPlayerDialog
#define list DIALOG_STYLE_LIST
#define msg DIALOG_STYLE_MSGBOX
#define text DIALOG_STYLE_INPUT
#define pass DIALOG_STYLE_PASSWORD
//Definície - Farby
#define cervena 0xFF0000
#define modra 0x00FFD0
#define zlta 0xD9D204
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
 print("\n--------------------------------------");
 print(" Blank Filterscript by your name here");
 print("--------------------------------------\n");
 return 1;
}
public OnFilterScriptExit()
{
 return 1;
}
#else
main()
{
 print("\n----------------------------------");
 print(" Blank Gamemode by your name here");
 print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
 // Don't use these lines if it's a filterscript
 SetGameModeText("RZE *Special*");
 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
 return 1;
}
public OnGameModeExit()
{
 return 1;
}
public OnPlayerRequestClass(id, classid)
{
 SetPlayerPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraLookAt(id, 1958.3783, 1343.1572, 15.3746);
 return 1;
}
cmd(menu, id, params[])
{
 spd(id,1,list,"Hlavné Menu","{FFFFFF}Kúpiť zbraň\nKúpiť Skin\n{15FF00}Pravidlá\n{FFFFFF}Príkazy","Vybrať","Zrušiť");
 return 1;
}
cmd(amenu, id, params[])
{
 if(IsPlayerAdmin(id)) return spd(id,7,msg,"{FF0000}Varovanie","{FFFFFF}Toto menu slúži len pre {FF0000}Adminov! {FFFFFF}Ty nie si {FF0000}Admin!","Chápem","");
 {
  spd(id,6,list,"Hlavné Menu - {FF0000}Admin Menu","Pridať peniaze\nDoplniť život\nDoplniť vestu\nDať hráčovi zbraň\n{15FF00}Pridať Admin Novinku","Vybrať","Zrušiť");
 }
 return 1;
}
public OnDialogResponse(id, dialogid, response, listitem, inputtext[])
{
 if(dialogid == 1)
 {
  if(response)
  {
   switch(listitem)
   {
    case 0:
    {
     spd(id,2,list,"Kúpiť zbraň","m4(230$ - 500 Nábojov)\nak47(230$ - 500 Nábojov)\nDeagle(50$ - 500 Nábojov)\nVšetky(1 500$ - 1 000 Nábojov do všetkých)","Kúpiť","Zrušiť");
    }
    case 1:
    {
     spd(id,3,list,"Kúpiť skin","Skin ID: 22 (50$)\nSkin ID: 54 (50$)\nSkin ID: 77 (50$)\nSkin ID: 143 (50$)\n{5EBFF2}Náhodný skin","Kúpiť", "Zrušiť");
    }
    case 2:
    {
     spd(id,4,msg,"Pravidlá servera - {11CF14}Evolve-HostingSK","Pravidlá pre náš {11CF14}Server:\n\n{FFFFFF}1. {FFF700}Nehacknuj, Necheatuj.\n{FFFFFF}2. {FFF700}Nenadávaj do chatu, nespamuj blbosti.\n{FFFFFF}3. {FFF700}Ak máš problém, kontaktuj Admina.\n{11CF14}==[Povolené módy]==\n\n{FFFFFF}1. {FFF700}Všetky povolené a doporučené módy nájdeš na našom webe!\n{00FFDD}www.evolve-hostingsk.6f.sk","Rozumiem","");
    }
    case 3:
    {
     spd(id,5,msg,"Príkazy servera {11CF14}Evolve-HostingSK","{FF00EE}Príkazy pre hráčov:\n\n{FFFFFF}/menu - Zobrazí hlavné menu\n{FF0000}Ďalšie príkazy doplňujeme!","Rozumiem","");
    }
   }
  }
 }
 if(dialogid == 2)
 {
  if(response)
  {
   switch(listitem)
   {
    case 0:
    {
     if(getpm(id) < 230) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,31,500);
     gpm(id,-230);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: M4");
     }
    }
    case 1:
    {
     if(getpm(id) < 230) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,30,500);
     gpm(id,-230);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: AK47");
     }
    }
    case 2:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,24,500);
     gpm(id,-50);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: Deagle");
     }
    }
    case 3:
    {
     if(getpm(id) < 1500) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     {
     gpw(id,31,1000);
     gpw(id,30,1000);
     gpw(id,24,1000);
     gpm(id,-1500);
     scm(id,-1,"{00FFD0}[Done] Úspešne si si zakúpil všetky zbraňe.");
     }
    }
   }
  }
 }
 if(dialogid == 3)
 {
  if(response)
  {
   switch(listitem)
   {
    case 0:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,22);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}22");
     }
    }
    case 1:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,54);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}54");
     }
    }
    case 2:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,77);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}77");
     }
    }
    case 3:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     {
      sps(id,143);
      gpm(id,-50);
      scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}143");
     }
    }
   }
  }
 }
 if(dialogid == 6)
 {
  if(response == 1)
  {
   switch(listitem)
   {
    case 0:
    {
     spd(id,7,text,"Pridať peniaze","Napíš hodnotu: (MAX: 9 999 999$)","Give","Zrušiť");
     new hodnota = strval(inputtext);
     
     if(dialogid == 7)
     {
      if(response == 1)
      {
       spd(id,8,text,"Pridať peniaze","Napíš ID hráča:","Give","Zrušiť");
       new menoHraca = strval(inputtext);
       
       if(dialogid == 8)
       {
        if(response == 1)
        {
         GetPlayerName(menoHraca);
         GivePlayerMoney(menoHraca,hodnota);
        }
       }
      }
     }
    }
   }
  }
 }
 return 1;
}

Problém je zasa v tom, že v hre sa mi nezobrazí to druhé dialógové okno :/. Tak ja už fakt neviem ako to mám nascriptovať.

Edited by MajorGames4
Prídavok
Link to comment
Share on other sites

  • 0

Ako som spomínal, nevieš používať switch.

 

 if(dialogid == 6)
 {
  if(response == 1)
  {
   switch(listitem)
   {
    case 0:
    {
     spd(id,7,text,"Pridať peniaze","Napíš hodnotu: (MAX: 9 999 999$)","Give","Zrušiť");
     new hodnota = strval(inputtext);
     
     if(dialogid == 7)
     {

 

 if(dialogid == 6) // začiatok dialógu musí mať koniec pred tým než žačneš robiť response na ďalší dialóg
 {
  if(response == 1)
  {
   switch(listitem)
   {
    case 0: // pridať peniaze
    {
     spd(id,7,text,"Pridať peniaze","Napíš hodnotu: (MAX: 9 999 999$)","Give","Zrušiť");
     new hodnota = strval(inputtext);
    }
	case 1: // Doplniť zdravie
    { 
		//////////////////////////////////////
	}
	case 2: // Doplniť vestu
    { 
		//////////////////////////////////////
	}
	case 3: // Dať hráčovi zbraň
    { 
		//////////////////////////////////////
	}
	case 4: // pridať admin novinku
    { 
		//////////////////////////////////////
	}
   }// switch
  }// response
 }// end dialog ID 6
 if(dialogid == 7) // teraz môžeš začať nový dialog
 {
 }

 

+

 

 if(IsPlayerAdmin(id)) return spd(id,7,msg,"{FF0000}Varovanie","{FFFFFF}Toto menu slúži len pre {FF0000}Adminov! {FFFFFF}Ty nie si {FF0000}Admin!","Chápem","");

 

Teraz to admin menu bude fungovať každému, len adminovi nie.. musíš použiť negáciu tj. "if(!IsPlayerAdmin(id))"

a dialog ID č. 7 používaš aj na to varovanie aj na to pridávanie peňazí. Preto je lepšie si ID dialógov definovať hore v móde ako je to tu: http://wiki.sa-mp.com/wiki/ShowPlayerDialog a v "spd" používať definície. Takto sa nepopletieš. 

Edited by EEEE
Link to comment
Share on other sites

  • 0

Ale veď tak to aj mám.

Spoiler
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
//Definície - Základné
#define spd ShowPlayerDialog
#define scm SendClientMessage
#define sph SetPlayerHealth
#define gpw GivePlayerWeapon
#define sps SetPlayerSkin
#define gpm GivePlayerMoney
#define getpm GetPlayerMoney
#define scmta SendClientMessageToAll
#define id playerid
//Definície - ShowPlayerDialog
#define list DIALOG_STYLE_LIST
#define msg DIALOG_STYLE_MSGBOX
#define text DIALOG_STYLE_INPUT
#define pass DIALOG_STYLE_PASSWORD
//Definície - Farby
#define cervena 0xFF0000
#define modra 0x00FFD0
#define zlta 0xD9D204
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
 print("\n--------------------------------------");
 print(" Blank Filterscript by your name here");
 print("--------------------------------------\n");
 return 1;
}
public OnFilterScriptExit()
{
 return 1;
}
#else
main()
{
 print("\n----------------------------------");
 print(" Blank Gamemode by your name here");
 print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
 // Don't use these lines if it's a filterscript
 SetGameModeText("RZE *Special*");
 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
 return 1;
}
public OnGameModeExit()
{
 return 1;
}
public OnPlayerRequestClass(id, classid)
{
 SetPlayerPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraLookAt(id, 1958.3783, 1343.1572, 15.3746);
 return 1;
}
cmd(menu, id, params[])
{
 spd(id,1,list,"Hlavné Menu","{FFFFFF}Kúpiť zbraň\nKúpiť Skin\n{15FF00}Pravidlá\n{FFFFFF}Príkazy","Vybrať","Zrušiť");
 return 1;
}
cmd(amenu, id, params[])
{
 if(!IsPlayerAdmin(id)) return spd(id,7,msg,"{FF0000}Varovanie","{FFFFFF}Toto menu slúži len pre {FF0000}Adminov! {FFFFFF}Ty nie si {FF0000}Admin!","Chápem","");
 {
  spd(id,6,list,"Hlavné Menu - {FF0000}Admin Menu","Pridať peniaze\nDoplniť život\nDoplniť vestu\nDať hráčovi zbraň\n{15FF00}Pridať Admin Novinku","Vybrať","Zrušiť");
 }
 return 1;
}
public OnDialogResponse(id, dialogid, response, listitem, inputtext[])
{
 if(dialogid == 1)
 {
  if(response == 1)
  {
   switch(listitem)
   {
    case 0:
    {
     spd(id,2,list,"Kúpiť zbraň","m4(230$ - 500 Nábojov)\nak47(230$ - 500 Nábojov)\nDeagle(50$ - 500 Nábojov)\nVšetky(1 500$ - 1 000 Nábojov do všetkých)\n{15FF00}Vlastná zbraň(3 000$ - 5 000 Nábojov)","Kúpiť","Zrušiť");
    }
    case 1:
    {
     spd(id,3,list,"Kúpiť skin","Skin ID: 22 (50$)\nSkin ID: 54 (50$)\nSkin ID: 77 (50$)\nSkin ID: 143 (50$)\n{D000B0}Vlastný skin (100$)","Kúpiť", "Zrušiť");
    }
    case 2:
    {
     spd(id,4,msg,"Pravidlá servera - {11CF14}Evolve-HostingSK","Pravidlá pre náš {11CF14}Server:\n\n{FFFFFF}1. {FFF700}Nehacknuj, Necheatuj.\n{FFFFFF}2. {FFF700}Nenadávaj do chatu, nespamuj blbosti.\n{FFFFFF}3. {FFF700}Ak máš problém, kontaktuj Admina.\n{11CF14}==[Povolené módy]==\n\n{FFFFFF}1. {FFF700}Všetky povolené a doporučené módy nájdeš na našom webe!\n{00FFDD}www.evolve-hostingsk.6f.sk","Rozumiem","");
    }
    case 3:
    {
     spd(id,5,msg,"Príkazy servera {11CF14}Evolve-HostingSK","{FF00EE}Príkazy pre hráčov:\n\n{FFFFFF}/menu - Zobrazí hlavné menu\n{FF0000}Ďalšie príkazy doplňujeme!","Rozumiem","");
    }
   }
  }
 }
 if(dialogid == 2)
 {
  if(response == 1)
  {
   switch(listitem)
   {
    case 0:
    {
     if(getpm(id) < 230) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     gpw(id,31,500);
     gpm(id,-230);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: M4");
    }
    case 1:
    {
     if(getpm(id) < 230) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     gpw(id,30,500);
     gpm(id,-230);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: AK47");
    }
    case 2:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     gpw(id,24,500);
     gpm(id,-50);
     scm(id,-1,"{00FFD0}[Done] Zakúpil si si zbraň: Deagle");
    }
    case 3:
    {
     if(getpm(id) < 1500) return scm(id,cervena,"[Error] Nemáš dostatok peňazí.");
     gpw(id,31,1000);
     gpw(id,30,1000);
     gpw(id,24,1000);
     gpm(id,-1500);
     scm(id,-1,"{00FFD0}[Done] Úspešne si si zakúpil všetky zbraňe.");
    }
    case 4:
    {
     spd(id,11,text,"Vlastná zbraň","Napíš ID zbraňe, ktorú su chceš kúpiť:","Kúpiť","Zrušiť");
    }
   }
  }
 }
 if(dialogid == 3)
 {
  if(response == 1)
  {
   switch(listitem)
   {
    case 0:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     sps(id,22);
     gpm(id,-50);
     scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}22");
    }
    case 1:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     sps(id,54);
     gpm(id,-50);
     scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}54");
    }
    case 2:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     sps(id,77);
     gpm(id,-50);
     scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}77");
    }
    case 3:
    {
     if(getpm(id) < 50) return scm(id,cervena,"[Error] Na zakúpenie tohoto skinu potrebuješ 50$");
     sps(id,143);
     gpm(id,-50);
     scm(id,-1,"[Done] Úspešne si si kúpil skin s ID: {FF7700}143");
    }
        case 4:
        {
          spd(id,110,text,"Vlastný skin","Zadaj ID skinu (0 - 300)","Kúpiť","Zrušiť");
        }
   }
  }
 }
  if(dialogid == 110)
  {
    if(response == 1)
    {
      SetPlayerSkin(id,strval(inputtext));
    }
  }
 if(dialogid == 6)
 {
  if(response == 1)
  {
      switch(listitem)
      {
    case 0:
    {
     spd(id,7,text,"Pridať Peniaze","Zadaj ID hráča","Ďalej","Zrušiť");
    }
   }
  }
 }
  if(dialogid == 7)
  {
    if(response == 1)
    {
      spd(id,8,text,"Pridať Peniaze","Zadaj čiastku","Pridaj","Zrušiť");
    }
  }
  if(dialogid == 8)
  {
    if(response == 1)
    {
      new value1[5] = dialogid == 7;
      new value2[5] = dialogid == 8;
      new idhraca = strval(value1);
      new ciastka = strval(value2);
      gpm(idhraca,ciastka);
    }
  }
 if(dialogid == 11)
 {
  if(response == 1)
  {
   gpw(id,strval(inputtext),5000);
  }
 }
 return 1;
}

či?

A ako teda urobím to zistenie ID hráča po napísaní ID?

Link to comment
Share on other sites

  • 0

 new value1[5] = dialogid == 7;
      new value2[5] = dialogid == 8;
      new idhraca = strval(value1);
      new ciastka = strval(value2);

 

Úplna volovina...

V dialogu 7 si sprav

SetPVarInt(id, "IDHraca", strval(inputtext));

 

V dialogu 8 si sprav

GivePlayerMoney(GetPVarInt(id, "IDHraca"), strval(inputtext));

 

To je celé :d 

PS: nezabudni si to ošetriť (napr. aby nezadal ID neexistujúceho hráča a pod.

 

SetPVarInt(playerid, "nazov", hodnota) - teoreticky ti vytvorí premennú typu integer s názvom "nazov" a hodnotou "hodnota"

playerid je ID hráča na ktorého sa premenná vzťahuje... táto premenná sa automaticky vymaže keď sa hráč odpojí zo servera alebo sa reštartuje/vypne server

 

GetPVarInt(playerid, "nazov") - podobné ako  SetPVarInt len s tým rozdielom, že chýba parameter hodnota a funguje na to, aby si tú hodnotu vyčítal - vráti ti uchovanú hodnotu 

 

Veľký !!POZOR!! na malé a velké písmena... je rozdiel medzi "Názov" a "názov" a "Nazov" !!!

Edited by Quiter
Link to comment
Share on other sites

  • 0

Možno by bolo praktickejšie spraviť /amenu ID , tým pádom hráča už má admin vybratého a už len riešiť čo s ním... pridal by som do menu možno aj kick ban atď. 

Link to comment
Share on other sites

  • 0
před 18 hodinami, Quiter said:

 new value1[5] = dialogid == 7;
      new value2[5] = dialogid == 8;
      new idhraca = strval(value1);
      new ciastka = strval(value2);

 

Úplna volovina...

V dialogu 7 si sprav

SetPVarInt(id, "IDHraca", strval(inputtext));

 

V dialogu 8 si sprav

GivePlayerMoney(GetPVarInt(id, "IDHraca"), strval(inputtext));

 

To je celé :d 

PS: nezabudni si to ošetriť (napr. aby nezadal ID neexistujúceho hráča a pod.

  Hide contents

SetPVarInt(playerid, "nazov", hodnota) - teoreticky ti vytvorí premennú typu integer s názvom "nazov" a hodnotou "hodnota"

playerid je ID hráča na ktorého sa premenná vzťahuje... táto premenná sa automaticky vymaže keď sa hráč odpojí zo servera alebo sa reštartuje/vypne server

 

GetPVarInt(playerid, "nazov") - podobné ako  SetPVarInt len s tým rozdielom, že chýba parameter hodnota a funguje na to, aby si tú hodnotu vyčítal - vráti ti uchovanú hodnotu 

 

Veľký !!POZOR!! na malé a velké písmena... je rozdiel medzi "Názov" a "názov" a "Nazov" !!!

Diky, ale pawno mi zasa hádže "Undefined symbol "GetPVarInt"" & "undefined symbol "SetPVarInt"".

Link to comment
Share on other sites

  • 0

Zkúsil som to a nejde to. Keď dám if do nového riadka, tak mi to peniaze nepridá. Keď to dám do if-u, tak sa zasa nezobrazí to druhé menu. Môžete mi prosím poslať už hotový .pwn script prosím? Fakt už neviem ako na to...

Pokud č. 1:

Spoiler
#include <a_samp>
#include <zcmd>
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
 print("\n--------------------------------------");
 print(" Blank Filterscript by your name here");
 print("--------------------------------------\n");
 return 1;
}
public OnFilterScriptExit()
{
 return 1;
}
#else
main()
{
 print("\n----------------------------------");
 print(" Blank Gamemode by your name here");
 print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
 // Don't use these lines if it's a filterscript
 SetGameModeText("Blank Script");
 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
 return 1;
}
public OnGameModeExit()
{
 return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
 SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
 return 1;
}
cmd(test,playerid,params[])
{
  ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Testovacie menu","Pridaj peniaze","Áno","Nie");
  return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 1)
  {
    if(response == 1)
    {
  switch(listitem)
  {
   case 0:
   {
         ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Testovacie menu","Zadaj ID hráča","Ďalej","Zrušiť");
         SetPVarInt(playerid,"idhraca",strval(inputtext));
   }
  }
    }
    if(dialogid == 2)
    {
  if(response == 1)
  {
            ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Testovacie menu","Zadaj čiastku","Pridať","Zrušiť");
            GivePlayerMoney(GetPVarInt(playerid,"idhraca"),strval(inputtext));
  }
 }
  }
 return 1;
}

Pokud č. 2:

Spoiler
#include <a_samp>
#include <zcmd>
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
 print("\n--------------------------------------");
 print(" Blank Filterscript by your name here");
 print("--------------------------------------\n");
 return 1;
}
public OnFilterScriptExit()
{
 return 1;
}
#else
main()
{
 print("\n----------------------------------");
 print(" Blank Gamemode by your name here");
 print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
 // Don't use these lines if it's a filterscript
 SetGameModeText("Blank Script");
 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
 return 1;
}
public OnGameModeExit()
{
 return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
 SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
 return 1;
}
cmd(test,playerid,params[])
{
  ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Testovacie menu","Pridaj peniaze","Áno","Nie");
  return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 1)
  {
    if(response == 1)
    {
  switch(listitem)
  {
   case 0:
   {
         ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Testovacie menu","Zadaj ID hráča","Ďalej","Zrušiť");
         SetPVarInt(playerid,"idhraca",strval(inputtext));
   }
  }
    }
  }
    if(dialogid == 2)
    {
  if(response == 1)
  {
            ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Testovacie menu","Zadaj čiastku","Pridať","Zrušiť");
            GivePlayerMoney(GetPVarInt(playerid,"idhraca"),strval(inputtext));
  }
 }
 return 1;
}

A ani jedno nejde správne.

Link to comment
Share on other sites

  • 0

Čo už s tebou no. Celé to tam preskakuješ o jeden dialóg. V OnDialogResponse na id 1 ti ešte len zobrazí dialogid 2, takže nemôžeš už v tom nastaviť ten pvarint pretože v dialogid 1 predsa nemáš žiaden inputtext. Dávam ti sem správny kód, keby si niečo nechápal, tak stále môžeš napísať. BTW if(dialogid == 1 && response) ti šetrí jednu zátvorku, používaj to takto budeš mať menej zátvoriek a menšia šanca, že sa pomýliš.

 

cmd(test,playerid,params[])
{
  ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Testovacie menu","Pridaj peniaze","Áno","Nie");
  return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 1 && response)
  {
	switch(listitem)
	{
   		case 0:
   		{
     		ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Testovacie menu","Zadaj ID hráča","Ďalej","Zrušiť");
   		}
	}
  }
  if(dialogid == 2 && response)
  {
	ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Testovacie menu","Zadaj čiastku","Pridať","Zrušiť");
	SetPVarInt(playerid,"idhraca",strval(inputtext));
  }
  if(dialogid == 3 && response)
  {
  	GivePlayerMoney(GetPVarInt(playerid,"idhraca"),strval(inputtext));
  	new str[60];
	format(str,sizeof(str),"Hračovi s ID: %d bolo pridaných %d$",GetPVarInt(playerid,"idhraca"),strval(inputtext));
	SendClientMessage(playerid,-1,str);
	DeletePVar(playerid,"idhraca");
  }
  return 1;
}

 

Edited by EEEE
Link to comment
Share on other sites

  • 0

Ale predsa tu mám ešte jeden, dúfam že posledný problém. Vytvoril som si script ->

Spoiler
#include <a_samp>
#include <zcmd>
//Definície - Základné
#define spd ShowPlayerDialog
#define scm SendClientMessage
#define sph SetPlayerHealth
#define gpw GivePlayerWeapon
#define sps SetPlayerSkin
#define gpm GivePlayerMoney
#define getpm GetPlayerMoney
#define scmta SendClientMessageToAll
#define id playerid
//Definície - ShowPlayerDialog
#define list DIALOG_STYLE_LIST
#define msg DIALOG_STYLE_MSGBOX
#define text DIALOG_STYLE_INPUT
#define pass DIALOG_STYLE_PASSWORD
//Definície - Farby
#define cervena 0xFF0000
#define modra 0x00FFD0
#define zlta 0xD9D204
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
 print("\n--------------------------------------");
 print(" Blank Filterscript by your name here");
 print("--------------------------------------\n");
 return 1;
}
public OnFilterScriptExit()
{
 return 1;
}
#else
main()
{
 print("\n----------------------------------");
 print(" Blank Gamemode by your name here");
 print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
 // Don't use these lines if it's a filterscript
 SetGameModeText("RZE *Special*");
 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
 return 1;
}
public OnGameModeExit()
{
 return 1;
}
public OnPlayerRequestClass(id, classid)
{
 SetPlayerPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraPos(id, 1958.3783, 1343.1572, 15.3746);
 SetPlayerCameraLookAt(id, 1958.3783, 1343.1572, 15.3746);
 return 1;
}
cmd(menu,id,params[])
{
  spd(id,1,list,"{009900}Hráčske menu","{FFFFFF}Kúpiť zbraň\nKúpiť skin\n{FF0000}Pravidlá\n{FFFFFF}Príkazy","Ok","Zrušiť");
  return 1;
}
cmd(amenu,id,params[])
{
  if(IsPlayerAdmin(id)) return scm(id,-1,"[Error] Niesi Admin!");
  spd(id,8,list,"Menu pre {FF0000} Adminov Servera","{FFFFFF}Zabanovať hráča\nVyhodiť hráča\nPridať peniaze\nPridať zbraň\nPridať zdravie\nPridať vestu\nUdeliť pochvalu\n{0004FF}Pridať oznámenie","Vybrať","Zrušiť");
  return 1;
}
public OnDialogResponse(id, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 1 && response)
  {
    switch(listitem)
    {
      case 0:
      {
        spd(id,2,list,"Kúpiť zbraň","AK47 (500$)\nM4 (500$)\nDesert Eagle (50$)\n{6600CC}Vlastná zbraň (1 500$)","Kúpiť","Zrušiť");
      }
      case 1:
      {
        spd(id,4,list,"Kúpiť skin","Vlastný skin (100$)","Kúpiť","Zrušiť");
      }
      case 2:
      {
        spd(id,6,msg,"{FF0000}Pravidlá {FFFFFF}Servera {FF0000}Evolve-HostingSK","V prípade, že nebudete dodržiavať následujúce pravidlá, môžete byť potrestaný banom!\n\n{3300FF}Zákaz nadávať do chatu\nZákaz urážať hráčov, nadávať adminom\nAk máte problémy, vždy kontaktujte Admina na servery\nAk nájdete chybu / bug, nezneužívajte ho, nahláste ho\nZákaz používania cheatov, hackov alebo iných vychitávok ktoré vám zlepšia hru\nAdmini majú vždy pravdu\n\n{FFCC00}- Tieto pravidlá môžeme hocikedy upraviť!","Súhlasím","Zrušiť");
      }
      case 3:
      {
        spd(id,7,msg,"Príkazy dostupné na Servery","/menu - Otvorí hráčske menu\n\n.:Ďalšie príkazy doplňujeme...","Ok","Zrušiť");
      }
    }
  }
  if(dialogid == 2 && response)
  {
    switch(listitem)
    {
      case 0:
      {
        if(getpm(id) < 500) return scm(id,-1,"{FF0000}[Error] Nemáš dostatok peňazí!");
        gpm(id,-500);
        gpw(id,30,1000);
        scm(id,-1,"{006600}[Done] Úspešne si si zakúpil AK47!");
      }
      case 1:
      {
        if(getpm(id) < 500) return scm(id,-1,"{FF0000}[Error] Nemáš dostatok peňazí!");
        gpm(id,-500);
        gpw(id,31,1000);
        scm(id,-1,"{006600}[Done] Úspešne si si zakúpil M4!");
      }
      case 2:
      {
        if(getpm(id) < 50) return scm(id,-1,"{FF0000}[Error] Nemáš dostatok peňazí!");
        gpm(id,-50);
        gpw(id,24,1000);
        scm(id,-1,"{006600}[Done] Úspešne si si zakúpil Desert Eagle!");
      }
      case 3:
      {
        spd(id,3,text,"Vlastná zbraň","Zadaj ID zbraňe","Zakúpiť","Zrušiť");
      }
    }
  }
  if(dialogid == 3 && response)
  {
    if(getpm(id) < 1500) return scm(id,-1,"{FF0000} [Error] Nemáš dostatok peňazí na zakúpenie vlastnej zbrani!");
    gpw(id,strval(inputtext));
    gpm(id,-1500);
    scm(id,-1,"{006600}[Done] Úspešne si si zakúpil Vlastnú Zbraň!");
  }
  if(dialogid == 4 && response)
  {
    spd(id,5,text,"Kúpiť skin","Zadaj ID skinu","Kúpiť","Zrušiť");
  }
  if(dialogid == 5 && response)
  {
    if(getpm(id) < 100) return scm(id,-1,"{FF0000} Nemáš dostatok peňazí na zakúpenie svojho skinu!");
    sps(id,strval(inputtext));
    gpm(id,-100);
    scm(id,-1,"{006600} [Done] Úspešne si si zakúpil svoj skin!");
  }
  if(dialogid == 8 && response)
  {
    switch(listitem)
    {
      case 0:
      {
        spd(id,9,text,"Ban System","Zadaj ID hráča, ktorému chceš dať ban","Ďalej","Zrušiť");
      }
      case 1:
      {
        spd(id,11,text,"Kick System","Zadaj ID hráča, ktorého chceš vyhodiť","Ďalej","Zrušiť");
      }
      case 2:
      {
        spd(id,13,text,"Pridať peniaze","Zadaj ID hráča","Ďalej","Zrušiť");
      }
      case 3:
      {
        spd(id,15,text,"Pridať zbraň","Zadaj ID hráča, ktorému chceš pridať zbraň","Ďalej","Zrušiť");
      }
    }
  }
  if(dialogid == 9 && response)
  {
    spd(id,10,text,"Ban System","Zadaj dôvod banu","Ok","Zrušiť");
    SetPVarInt(id,"idban",strval(inputtext));
  }
  if(dialogid == 10 && response)
  {
    Ban(GetPVarInt(id,"idhraca"),strval(inputtext));
    DeletePVar(id,"idhraca");
  }
  if(dialogid == 11 && response)
  {
    spd(id,12,text,"Kick System","Zadaj dôvod vyhodenia","Ok","Zrušiť");
    SetPVarInt(id,"idvyhodeneho",strval(inputtext));
  }
  if(dialogid == 12 && response)
  {
    Kick(GetPVarInt(id,"idvyhodeneho"),strval(inputtext));
    DeletePVar(id,"idvyhodeneho");
  }
  if(dialogid == 13 && response)
  {
    spd(id,14,text,"Pridať peniaze","Zadaj čiastku (MAX: 9 999 999)","Pridať","Zrušiť");
    SetPVarInt(id,"givemoney",strval(inputtext));
  }
  if(dialogid == 14 && response)
  {
    gpm(GetPVarInt(id,"givemoney"),strval(inputtext));
    DeletePVar(id,"givemoney");
  }
  if(dialogid == 15 && response)
  {
    spd(id,16,text,"Pridať zbraň","Zadaj ID zbrane","Ok","Zrušiť");
    SetPVarInt(id,"idhraczbran",strval(inputtext));
  }
  if(dialogid == 16 && response)
  {
    gpw(GetPVarInt(id,"idhraczbran"),strval(inputtext),1000);
    DeletePVar(id,"idhraczbran");
  }
 return 1;
}

Všetko mi ide, ale to pridanie zbrani nejde. Keď zadám ID zbrani, tak mi spadne server.

Link to comment
Share on other sites

  • 0

Tak mne to ani neskompilovalo, vkuse mi zamrzol compiler. Pozeral som čo by to mohlo robiť, potom som odstránil toto:

 

       

 spd(id,6,msg,"{FF0000}Pravidlá {FFFFFF}Servera {FF0000}Evolve-HostingSK","V prípade, že nebudete dodržiavať následujúce pravidlá, môžete byť potrestaný banom!\n\n{3300FF}Zákaz nadávať do chatu\nZákaz urážať hráčov, nadávať adminom\nAk máte problémy, vždy kontaktujte Admina na servery\nAk nájdete chybu / bug, nezneužívajte ho, nahláste ho\nZákaz používania cheatov, hackov alebo iných vychitávok ktoré vám zlepšia hru\nAdmini majú vždy pravdu\n\n{FFCC00}- Tieto pravidlá môžeme hocikedy upraviť!","Súhlasím","Zrušiť");

 

A už to išlo. Nemôžeš mať taký dlhý príkaz. Musíš to naformátovať a tak to tam vložiť

new str[500];
format(str,sizeof(str),"V prípade, že nebudete dodržiavať následujúce pravidlá, môžete byť potrestaný banom!\n\n{3300FF}Zákaz nadávať do chatu\n");
format(str,sizeof(str),"Zákaz urážať hráčov, nadávať adminom\nAk máte problémy, vždy kontaktujte Admina na servery\nAk nájdete chybu / bug, nezneužívajte ho");
format(str,sizeof(str),"nahláste ho\nZákaz používania cheatov, hackov alebo iných vychitávok ktoré vám zlepšia hru\nAdmini majú vždy pravdu\n\n{FFCC00}- Tieto pravidlá môžeme hocikedy upraviť!");

spd(id,6,msg,"{FF0000}Pravidlá {FFFFFF}Servera {FF0000}Evolve-HostingSK",str,"Súhlasím","Zrušiť"); // Ako vidíš tu nedávaš potom úvodzovky medzi str, pretože by si mal v dialógu potom napísané iba "str" namiesto tvojho stringu čo si si naformátoval.

 

  if(dialogid == 3 && response)
  {
    if(getpm(id) < 1500) return scm(id,-1,"{FF0000} [Error] Nemáš dostatok peňazí na zakúpenie vlastnej zbrani!");
    gpw(id,strval(inputtext));

 

Chýba ti počet nábojov -  gpw(id,strval(inputtext),NÁBOJE);

Ban(GetPVarInt(id,"idhraca"),strval(inputtext));

http://wiki.sa-mp.com/wiki/Ban - Funkcia ban nezapisuje reason , musíš použiť http://wiki.sa-mp.com/wiki/BanEx

 

 Kick(GetPVarInt(id,"idvyhodeneho"),strval(inputtext));

http://wiki.sa-mp.com/wiki/Kick - Pri kicku môžeš ten dôvod vypísať akurát hráčom do správy, SAMP dôvod kicku nezapisuje.

if(IsPlayerAdmin(id)) return scm(id,-1,"[Error] Niesi Admin!");

Nemáš tam tu negáciu. !IsPlayerAdmin(id)

 

: warning 202: number of arguments does not match definition ==> počet polí v tvojom príkaze nesedí s počtom polí ako to je v SAMP

 

Link to comment
Share on other sites

  • 0

No a keď dáš bez negácie, tak ho môžeš použiť každý okrem RCON admina, iba RCON adminovi odošle tu správu že nemá právo použiť príkaz. Ak chceš aby tie príkazy mohlo používať viac ľudí, čiže adminov - možeš dať každému adminovi RCON, alebo spravíš ukladanie dajme tomu cez dini, kde budeš mať mená adminov, pridáš podmienky a tí to budú môcť používať. Lebo teraz ten /menua môžeš použiť každý, okrem RCON admina samozrejme... Tak máš napísanú totiž tú podmienku.

Link to comment
Share on other sites

  • 0

Může to použít jen RCON admin protože "IsPlayerAdmin" je v sampu pro Rcon Adminy... Žádný jiný admin v sampu v základu není.. Pokud máš nějáký admin systém v modu kde máš např levely,musíš si tam přidat podmínku např if(adminlevel[playerid] == 2).. podle toho jakou proměnou ten admin systém používá.

Link to comment
Share on other sites

  • 0

Nevzpomenu si přesně na princip a funkčnosti kódu, ale vzpomínám si že ještě dávno, kdy hráči, kteří si stahovali RZE módy a neměli k nim přístup ze strany zdrojového kódu, tak zjišťovali pomoci souboru uživatelé účty ve složce 'scriptfiles' následně pomocí jména (souboru) '.dudb' (už jsem si vzpomněl dudb :d) a z toho souboru získali promenu 'adminlevel' a pokud se ta hodnota rovnala jak v souboru tak i v pawnu například nějaký admin příkaz nový, tak to fungovalo. Moc mě nenapadá jak to udělat tohle jsem nikdy nezkoušel, pouze jsem to viděl nebo slyšel už nějaký ten rok zpátky, kdy ještě běželi desítky RZE serverů.

 

Tu podmínku, která je v .amx RZE stejně nezískáš a i kdyby, tak ti to stejně nepomůže, protože ukládací systém je zabudovaný v módu RZE.amx a ty ten ukládací systém nemáš, možná že existuje i jiná metoda než ta moje co jsem napsal výše, ale určitě se ozvou někteří 'pokročilejší' :)

Edited by VolfikCZ
Link to comment
Share on other sites

  • 0

Takto... ja som myslel ze tu RZE7.9.pwn ci co to je mas... pokial ju nemas a chces ajtak vytvorit filterscript s admin menu tak si tam proste musis vytvorit podmienky na ten admin level... Lenze bude to tak ze v samotnom mode jeden admin system je urobeny a ty len urobis dalsi...

Link to comment
Share on other sites

  • 0

Dobre, a ako sa pracuje s SetPVarString? Lebo chcem vytvoriť napr. textový dialog, kde napr. ked napíšem "Ahoj", tak to do chatu napíše napr. "[Oznam] Hráč servera napísal: Ahoj". Skúsil som toto:

SetPVarString(playerid,"premenna",strval(inputtext)); -> ale nejde. Píše chybu.

Link to comment
Share on other sites

  • 0

Chybu ti to píše preto, že SetPVarString má hlavičku: SetPVarString(playerid, varname[], string_value[]). Problém je v tvojom 3. argumente, miesto poľa tam dávaš číslo, ktoré ti vráti strval. Problému sa zbavíš napríklad tak, že miesto strval(inputtext) vložíš iba inputtext, prípadne miesto SetPVarString použiješ SetPVarInt. Potom môžeš nechať argumenty presne tak, ako ich máš teraz.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...