Jump to content

Neopry

Uživatel
  • Příspěvků

    12
  • Registrován

  • Aktivní

Příspěvky posted by Neopry

  1. Ahoj,

    Potřeboval bych pomoc s pracema.
    Udělal jsem si filescript: Policie, Řidič Kamionů. (zatím jenom dvě abych vyzkoušel jestli to funguje)

    U práce "Policie" nemám problém, ale u Řidiče kamionů se mi zobrazí jenom Dialog. Když kliknu na

    "Přijmout práci" tak se nic nestane.
    Možná je to tím že, to chci mít rozdělený ve filescriptech jako každé samostané zaměstnání.

     

    Policie:

    #include <a_samp>
    
    #if defined FILTERSCRIPT
    #define 0xFF0000AA
    
    new Povolani[MAX_PLAYERS];
    new POLICIE;
    public OnGameModeInit(){
      POLICIE = CreatePickup(1581, 1, 253.1612,64.7975,1003.6406, -1);
      return 1;
    }
    
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
      if(pickupid == POLICIE) ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Policie","Přimout Práci\nPřevléknout se","Vybrat","Konec");
      return 1;
    }
    
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
      if(dialogid == 1){
        switch(listitem){
    	  case 0: {
    	    if(Povolani[playerid] == 1) return SendClientMessage(playerid,-1,"[ ! ] Tady už jsi zaměstnaný!");
        	SendClientMessage(0xFF0000AA, string);
    	    GivePlayerWeapon(playerid,24,1000);
    	    GivePlayerWeapon(playerid,25,1000);
    	    GivePlayerWeapon(playerid,3,1);
    	    SetPlayerColor(playerid,0x0066FFFF);
    	    SendClientMessage(playerid,-1,"Připojil jsi se k povolání policie");
           	SendClientMessage(0xFFFF00AA, string);
    	    Povolani[playerid] = 1;
    	  }
    
    	  case 1: {
    	    if(Povolani[playerid] != 1) return SendClientMessage(playerid,-1,"Nejsi tu zaměstnaný!");
        	SendClientMessage(0xFF0000AA, string);
    	    switch(random(3))
    	    {
    		  case 0: SetPlayerSkin(playerid,280);
    		  case 1: SetPlayerSkin(playerid,283);
    		  case 2: SetPlayerSkin(playerid,284);
    	    }
    
    	    SendClientMessage(playerid,-1,"Vzal jsi si skin povolání");
        	SendClientMessage(0xFF0000AA, string);
    	  }
        }
      }
      return 1;
    }
    #endif
    

    Řidič kamionů:

    #include <a_samp>
    
    #if defined FILTERSCRIPT
    #define 0xFF0000AA
    
    new Povolani2[MAX_PLAYERS];
    new RIDICKAMIONU;
    public OnGameModeInit(){
      RIDICKAMIONU = CreatePickup(1581, 1, 2194.0481,-2246.5322,13.5469, -1);
      return 1;
    }
    
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
      if(pickupid == RIDICKAMIONU) ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"Řidič Kamionu","Přimout Práci\nPřevléknout se","Vybrat","Konec");
      return 1;
    }
    
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
      if(dialogid == 2){
        switch(listitem){
    	  case 0: {
    	    if(Povolani2[playerid] == 1) return SendClientMessage(playerid,-1,"V tomto zaměstnání jsi již zaměstnán!");
        	SendClientMessage(0xFF0000AA, string);
    	    GivePlayerWeapon(playerid,32,1000);
    	    GivePlayerWeapon(playerid,25,1000);
    	    SetPlayerColor(playerid,0xFF00FFFF);
    	    SendClientMessage(playerid,-1,"Stal jsi se Řidičem kamionů");
         	SendClientMessage(0xFFFF00AA, string);
    	    Povolani2[playerid] = 2;
    	  }
    
    	  case 1: {
    	    if(Povolani2[playerid] != 1) return SendClientMessage(playerid,-1,"U toho zaměstání nejsi zaměstnán!");
        	SendClientMessage(0xFF0000AA, string);
    	    switch(random(3))
    	    {
    		  case 0: SetPlayerSkin(playerid,128);
    		  case 1: SetPlayerSkin(playerid,133);
    		  case 2: SetPlayerSkin(playerid,135);
    	    }
    
    	    SendClientMessage(playerid,-1,"Převléknul jsi se");
        	SendClientMessage(0xFF0000AA, string);
    	  }
        }
      }
      return 1;
    }
    #endif
    

     

  2. Ahoj,

    Dělám si příkazy pro Adminy ale mám tam problém s jedním errorem kterej nemůžu vyřešit:

    Nevíte co stím ? :d

    warning 219: local variable "string" shadows a variable at a preceding level
    

     

    Tohle je ten řádek kde je ten error

    new string[100], name[24];
    

  3. Ahoj,

    Našel jsem ve FS menutest.pwn i amx tak jsem chtěl vyzkoušet co to dělá a zjistil jsem že to je to co jsem celou tu dobu potřeboval.

    K věci, potřeboval bych aby když si hráč vybere jedno z uvedených aby mu vyjela tabulka o tom jaký si vybere menu (Např:. Vybere si menu s Příkazama, tak mu vyjedou všechny příkazy co jsou na serveru dostupný pro hráče)

    Prosím nevíte jak to tak udělat ?

    Díky předem

    #include <a_samp>
    #define TEST_MENU_ITEMS 4
    new Menu:TestMenu;
    new TestMenuStrings[4][16] = {"Příkazy", "Práce", "Peníze", "Pravidla"};
    HandleTestMenuSelection(playerid, row)
    {
    new s[256];
    
    if(row < TEST_MENU_ITEMS) {
     format(s,256,"Vybral jsi %s",TestMenuStrings[row]);
     SendClientMessage(playerid,0xFFFFFFFF,s);
    }
    }
    InitTestMenu()
    {
    TestMenu = CreateMenu("Navigace", 1, 200.0, 150.0, 200.0, 200.0);
    for(new x=0; x < TEST_MENU_ITEMS; x++) {
     AddMenuItem(TestMenu, 0, TestMenuStrings[x]);
    }
    }
    public OnFilterScriptInit()
    {
       InitTestMenu();
    }
    public OnPlayerSelectedMenuRow(playerid, row)
    {
       new Menu:PlayerMenu = GetPlayerMenu(playerid);
    
    if(PlayerMenu == TestMenu) {
     HandleTestMenuSelection(playerid, row);
    }
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/help", true)) {
     ShowMenuForPlayer(TestMenu, playerid);
     return 1;
    }
    return 0;
    }
    
    

  4. Ahoj,

    Když se hráč přihlásí a má třeba 1 000$ tak při dalším přihlášení má navíc 2 000$...

    Nevíte někdo jak to změnit tak aby dostaval tu částku kterou měl i předtím u sebe a né o 2 000 více ? :d

    Předem díky

    Používám tento FS...

    #include <a_samp>
    #define FILTERSCRIPT
    #if defined FILTERSCRIPT
    #define COLOR_GREY 0xBEBEBEAA
    #define COLOR_WHITE 0xFFFFFFAA
    #define COLOR_GREEN 0x33AA33AA
    #define COLOR_GRAD5 0xE3E3E3FF
    #define COLOR_GRAD1 0xB4B5B7FF
    #define COLOR_YELLOW 0xFFFF00AA
    forward ShowStats(playerid,targetid);
    forward OnPlayerUpdate(playerid);
    forward Encrypt(string[]);
    forward OnPlayerLogin(playerid,const string[]);
    enum pInfo
    {
    pPassword[128],
    pKills,
    pDeaths,
    pCash,
    };
    new PlayerInfo[MAX_PLAYERS][pInfo];
    new gPlayerLogged[MAX_PLAYERS];
    new gPlayerAccount[MAX_PLAYERS];
    
    public OnFilterScriptInit()
    {
    return 1;
    }
    public OnFilterScriptExit()
    {
    return 1;
    }
    public OnPlayerRequestClass(playerid, classid)
    {
    return 1;
    }
    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }
    public OnPlayerConnect(playerid)
    {
       SendClientMessage(playerid, COLOR_YELLOW, "Jste tu nový ? /register VAŠE_HESLO ");
       new playrname[MAX_PLAYER_NAME];
       new connect[128];
       GetPlayerName(playerid, playrname, sizeof(playrname));
    format(connect, sizeof(connect), "%s.cer", playrname);
    if(fexist(connect))
    {
     gPlayerAccount[playerid] = 1;
     SendClientMessage(playerid, COLOR_YELLOW, "Jste registrovaný prosím přihlašte se pomocí /login heslo ");
     return 1;
    }
    else
    {
     gPlayerAccount[playerid] = 0;
     SendClientMessage(playerid, COLOR_YELLOW, "Nejste registrovaný prosím registrujte se pomocí /register heslo");
    }
    return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
       OnPlayerUpdate(playerid);
       gPlayerLogged[playerid] = 0;
    return 1;
    }
    public OnPlayerSpawn(playerid)
    {
    return 1;
    }
    public OnPlayerDeath(playerid, killerid, reason)
    {
       new kills = PlayerInfo[playerid][pKills];
       SetPlayerScore(playerid, kills);
       new Float:Health;
       GetPlayerHealth(playerid, Health);
       if(Health == 0.0)
       {
       PlayerInfo[playerid][pDeaths] += 1;
       }
       GivePlayerMoney(killerid,0);
       PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 1;
    return 1;
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
       new cmd[256];
       new idx;
       cmd = strtok(cmdtext, idx);
       new tmp[256];
       new playername[MAX_PLAYER_NAME];
       if (strcmp(cmd, "/login", true) ==0 )
    {
     if(IsPlayerConnected(playerid))
     {
    	 new tmppass[64];
      if(gPlayerLogged[playerid] == 1)
      {
       SendClientMessage(playerid, COLOR_GREY, "Jste přihlášený.");
       return 1;
      }
      tmp = strtok(cmdtext, idx);
      if(!strlen(tmp))
      {
       SendClientMessage(playerid, COLOR_GREY, " /login heslo ");
       return 1;
      }
      strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
      Encrypt(tmppass);
      OnPlayerLogin(playerid,tmppass);
     }
     return 1;
    }
    if (strcmp(cmd, "/register", true)==0)
    {
     new string[265];
     tmp = strtok(cmdtext, idx);
     if(!strlen(tmp))
     {
      SendClientMessage(playerid, COLOR_GREY, "Napiš: /register heslo ");
      return 1;
     }
     if (gPlayerAccount[playerid] == 1)
     {
      SendClientMessage(playerid, COLOR_GREY, "  Váš nick je zaregistrovaný  ");
      return 1;
     }
     strmid(PlayerInfo[playerid][pPassword], tmp, 0, strlen(cmdtext), 255);
     Encrypt(PlayerInfo[playerid][pPassword]);
     GetPlayerName(playerid, playername, sizeof(playername));
     format(string, sizeof(string), "%s.cer", playername);
     new File: file = fopen(string, io_read);
     if (file)
     {
      SendClientMessage(playerid, COLOR_GREY, "   Váš nick je zaregistrovaný");
      fclose(file);
      return 1;
     }
     new File:hFile;
     hFile = fopen(string, io_append);
     new var[32];//
        format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(hFile, var);
        format(var, 32, "Zabití=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
        format(var, 32, "Umrtí=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
        PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
        format(var, 32, "Peníze=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
     fclose(hFile);
     SendClientMessage(playerid, COLOR_WHITE, "Nyní jste registrovaný!");
     SendClientMessage(playerid, COLOR_WHITE, "Pro  přihlášení dejte /login heslo.");
     OnPlayerLogin(playerid,PlayerInfo[playerid][pPassword]);
     return 1;
    }
    if (strcmp(cmd, "/stats", true) == 0)
    {
     if(IsPlayerConnected(playerid))
     {
      if (gPlayerLogged[playerid] != 0)
      {
       ShowStats(playerid,playerid);
      }
      else
      {
       SendClientMessage(playerid, COLOR_GRAD1, "   Nejste pryhlášen !");
      }
     }
     return 1;
    }
    return 0;
    }
    public Encrypt(string[])
    {
    for(new x=0; x < strlen(string); x++)
      {
       string[x] += (3^x) * (x % 15);
       if(string[x] > (0xff))
       {
     string[x] -= 64;
       }
      }
    return 1;
    }
    
    public OnPlayerLogin(playerid,const string[])
    {
       new pname2[MAX_PLAYER_NAME];
    new pname3[MAX_PLAYER_NAME];
    new string2[64];
    new string3[128];
    GetPlayerName(playerid, pname2, sizeof(pname2));
    format(string2, sizeof(string2), "%s.cer", pname2);
    new File: UserFile = fopen(string2, io_read);
    if (UserFile)
    {
     new valtmp[128];
     fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);
     if ((strcmp(PlayerInfo[playerid][pPassword], string, true, strlen(valtmp)-1) == 0))
     {
      new key[128],val[128];
       new Data[128];
       while(fread(UserFile,Data,sizeof(Data)))
      {
       key = ini_GetKey(Data);
    		    if( strcmp( key , "Zabití" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
    		    if( strcmp( key , "Umrtí" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
    		    if( strcmp( key , "Peníze" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
    		    GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
      }
      fclose(UserFile);
      gPlayerLogged[playerid] = 1;
      gPlayerAccount[playerid] = 1;
      new kills = PlayerInfo[playerid][pKills];
    	    SetPlayerScore(playerid, kills);
      GetPlayerName(playerid, pname3, sizeof(pname3));
      format(string3, sizeof(string3), "Vítám vas %s, jste uspěšně přyhlášený niní můžete hrát!", pname3);
      SendClientMessage(playerid, COLOR_WHITE,string3);
     }
     else
     {
      SendClientMessage(playerid, COLOR_GREY, " Heslo je špatné ");
      fclose(UserFile);
     }
    }
    return 1;
    }
    public OnPlayerUpdate(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
     if(gPlayerLogged[playerid])
     {
      new string3[32];
      new pname3[MAX_PLAYER_NAME];
      GetPlayerName(playerid, pname3, sizeof(pname3));
      format(string3, sizeof(string3), "%s.cer", pname3);
      new File: pFile = fopen(string3, io_write);
      if (pFile)
      {
       new var[32];
       format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(pFile, var);
       fclose(pFile);
       new File: hFile = fopen(string3, io_append);
       PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
       format(var, 32, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
       format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
       format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
       fclose(hFile);
      }
     }
    }
    return 1;
    }
    stock ini_GetKey( line[] )
    {
    new keyRes[128];
    keyRes[0] = 0;
       if ( strfind( line , "=" , true ) == -1 ) return keyRes;
       strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
       return keyRes;
    }
    stock ini_GetValue( line[] )
    {
    new valRes[128];
    valRes[0]=0;
    if ( strfind( line , "=" , true ) == -1 ) return valRes;
    strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
    return valRes;
    }
    
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
     index++;
    }
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
     result[index - offset] = string[index];
     index++;
    }
    result[index - offset] = EOS;
    return result;
    }
    public ShowStats(playerid,targetid)
    {
       if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
    {
     new cash =  GetPlayerMoney(targetid);
     new deaths = PlayerInfo[targetid][pDeaths];
     new kills = PlayerInfo[targetid][pKills];
     new name[MAX_PLAYER_NAME];
     GetPlayerName(targetid, name, sizeof(name));
     new Float:px,Float:py,Float:pz;
     GetPlayerPos(targetid, px, py, pz);
     new coordsstring[256];
     SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
     format(coordsstring, sizeof(coordsstring),"*** %s ***",name);
     SendClientMessage(playerid, COLOR_WHITE,coordsstring);
     format(coordsstring, sizeof(coordsstring), "Zabití:[%d] Umrtí:[%d] Peníze:[$%d]",kills,deaths,cash);
     SendClientMessage(playerid, COLOR_GRAD5,coordsstring);
     SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
    }
    }
    #endif
    

  5. Ahoj,

    Stáhnul jsem si HouseSystem ale vůbec nevím kam mám přidat domy, buď jsem slepej nebo to tam není, no posuďte sam :d

    Předem díky...

    #include <a_samp>
    #include <dini>
    #define MAX_HOUSES 50
    #define IsPlayerInRangeOfPoint
    //-------------------------------------|
    enum HOUSE_DATA
    {
    Float:p_X,
    Float:p_Y,
    Float:p_Z,
    Float:i_X,
    Float:i_Y,
    Float:i_Z,
    iin,
    Cena,
    Vlastnik[MAX_PLAYER_NAME],
    Dialog,
    Text3D:Text,
    Pickup,
    VW,
    Zamek
    }
    new HouseInfo[MAX_HOUSES][HOUSE_DATA];
    new InHouse[MAX_PLAYERS] = {-1,...};
    new HouseCount = -1;
    //------------------------------------|
    forward GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z);
    forward IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius);
    forward AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu);
    //------------------------------------|
    public AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik, iddialogu)
    {
    HouseCount ++;
    if(HouseCount < MAX_HOUSES)
    {
    HouseInfo[HouseCount][p_X] = pX;
    HouseInfo[HouseCount][p_Y] = pY;
    HouseInfo[HouseCount][p_Z] = pZ;
    HouseInfo[HouseCount][i_X] = iX;
    HouseInfo[HouseCount][i_Y] = iY;
    HouseInfo[HouseCount][i_Z] = iZ;
    HouseInfo[HouseCount][iin] = ii;
    HouseInfo[HouseCount][Cena] = Cenik;
    HouseInfo[HouseCount][VW] = 50+HouseCount;
    HouseInfo[HouseCount][Vlastnik] = 0;
    HouseInfo[HouseCount][Zamek] = 0;
    HouseInfo[HouseCount][Dialog] = iddialogu;
    new s[128];
    format(s,128,"Houses/%d.txt",HouseCount);
    if(!fexist(s)){
    dini_Create(s);
    dini_Set(s,"Owner","none");
    dini_IntSet(s,"Locked",0);
    }
    new sx[100];
    if(strcmp(dini_Get(s,"Owner"),"none",true) == 0){
    format(HouseInfo[HouseCount][Vlastnik],MAX_PLAYER_NAME,"Nikto");
    HouseInfo[HouseCount][Zamek] = 0;
    HouseInfo[HouseCount][Pickup] = CreatePickup(1273,1,pX, pY, pZ);
    format(sx,100,"Dom č.%d\r\nMajiteľ: Nikto\r\nCena: %d",HouseCount,Cenik);
    HouseInfo[HouseCount][Text] = Create3DTextLabel(sx,0xFF0000FF,pX,pY,pZ+1,50,0);
    }else{
    HouseInfo[HouseCount][Pickup] = CreatePickup(1272,1,pX, pY, pZ);
    format(HouseInfo[HouseCount][Vlastnik],MAX_PLAYER_NAME,"%s",dini_Get(s,"Owner"));
    HouseInfo[HouseCount][Zamek] = dini_Int(s,"Locked");
    format(sx,100,"Dom č.%d\r\nMajiteľ: %s",HouseCount,dini_Get(s,"Owner"));
    HouseInfo[HouseCount][Text] = Create3DTextLabel(sx,0xFF0000FF,pX,pY,pZ+1,50,0);
    }
    
    printf("Dom %d Vytvorený",HouseCount);
    }else{
    print("<!-- Kapacita AddHouse prekrocena, dum nebyl vytvoren !-->");
    }
    return 1;
    }
    //------------------------------------|
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new h=0;h<HouseCount+1;h++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]))
    {
    ShowPlayerDialog(playerid,HouseInfo[h][Dialog],DIALOG_STYLE_LIST,"Dům","Koupit\nProdat\nZamknout\nOdemknout\nInformace o domu\nVstoupit","Použít","Nic");
    }
    }
    return 1;
    }
    //------------------------------------|
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == KEY_WALK)
    {
    if(InHouse[playerid] != -1){
    new HouseId = InHouse[playerid];
    if(IsPlayerInRangeOfPoint(playerid,10,HouseInfo[HouseId][i_X],HouseInfo[HouseId][i_Y],HouseInfo[HouseId][i_Z]))
    {
    SetPlayerPos(playerid,HouseInfo[HouseId][p_X],HouseInfo[HouseId][p_Y],HouseInfo[HouseId][p_Z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    InHouse[playerid] = -1;
    }
    }
    }
    return 1;
    }
    //------------------------------------|
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    for(new h=0;h<HouseCount+1;h++)
    {
    if(dialogid == HouseInfo[h][Dialog])
    {
    if(response == 1)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) < HouseInfo[h][Cena]) return SendClientMessage(playerid, 0xFFFFFFFF, "Máš málo peněz !");
    if(!IsHouseForSale(h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům již někdo vlastní !");
    new s[128];
    format(s,128,"Houses/%d.txt",h);
    dini_Set(s,"Owner",PlayerName(playerid));
    GivePlayerMoney(playerid, -HouseInfo[h][Cena]);
    SendClientMessage(playerid, 0xFFFFFFFF, "Pořidil jsi si dům !");
    new sx[100];
    format(sx,100,"Dom č.%d\r\nMajiteľ: %s",h,dini_Get(s,"Owner"));
    Update3DTextLabelText(HouseInfo[h][Text],0xFF0000FF,sx);
    DestroyPickup(HouseInfo[h][Pickup]);
    HouseInfo[h][Pickup] = CreatePickup(1272,1,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]);
    }
    else if(listitem == 1)
    {
    if(!IsPlayerHouseOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");
    new s[128];
    format(s,128,"Houses/%d.txt",h);
    dini_Set(s,"Owner","none");
    GivePlayerMoney(playerid, HouseInfo[h][Cena]/2);
    SendClientMessage(playerid, 0xFFFFFFFF, "Dům prodán, byla ti vrácena cena !");
    new sx[100];
    format(sx,100,"Dom č.%d\r\nMajiteľ: Nikto\r\nCena: %d",h,HouseInfo[h][Cena]);
    Update3DTextLabelText(HouseInfo[h][Text],0xFF0000FF,sx);
    DestroyPickup(HouseInfo[h][Pickup]);
    HouseInfo[h][Pickup] = CreatePickup(1273,1,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]);
    }
    else if(listitem == 2)
    {
    if(!IsPlayerHouseOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");
    new s[128];
    format(s,128,"Houses/%d.txt",h);
    dini_IntSet(s,"Locked",1);
    HouseInfo[h][Zamek] = 0;
    SendClientMessage(playerid, 0xFFFFFFFF, "Dům zamknut !");
    }
    else if(listitem == 3)
    {
    if(!IsPlayerHouseOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");
    SendClientMessage(playerid, 0xFFFFFFFF, "Dům odemknut !");
    new s[128];
    format(s,128,"Houses/%d.txt",h);
    dini_IntSet(s,"Locked",0);
    HouseInfo[h][Zamek] = 1;
    }
    else if(listitem == 4)
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Informace o domu:");
    if(HouseInfo[h][Zamek] == 0)
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Zámek: Zamknutý.");
    }else{
    SendClientMessage(playerid,0xFFFFFFFF,"Zámek: Odemknutý.");
    }
    if (IsHouseForSale(h))
    {
    SendClientMessage(playerid,0xFFFFFFFF,"K Prodeji: Ano");
    }else{
    SendClientMessage(playerid,0xFFFFFFFF,"K Prodeji: Ne");
    }
    }
    else if(listitem == 5)
    {
    if(HouseInfo[h][Zamek] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům je zamknut !");
    SetPlayerPos(playerid, HouseInfo[h][i_X],HouseInfo[h][i_Y],HouseInfo[h][i_Z]);
    SetPlayerInterior(playerid, HouseInfo[h][iin]);
    SetPlayerVirtualWorld(playerid,HouseInfo[h][VW]);
    InHouse[playerid] = h;
    SendClientMessage(playerid, 0xFFFFFFFF, "Dům opustíš L.ALT !");
    }
    }
    }
    }
    return 1;
    }
    //------------------------------------|
    stock PlayerName(playerid){
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    return name;
    }
    stock IsPlayerHouseOwner(playerid,houseid)
    {
    new cesta[50];
    format(cesta,150,"Houses/%d.txt",houseid);
    if(strcmp(PlayerName(playerid),dini_Get(cesta,"Owner"), false) == 0) return true;
    return false;
    }
    stock IsHouseForSale(houseid)
    {
    new cesta[50];
    format(cesta,150,"Houses/%d.txt",houseid);
    if(strcmp("none",dini_Get(cesta,"Owner"), false) == 0) return true;
    return false;
    }
    

  6. Ahoj,

    Mám nastavený startování motoru přes TAB ale chci to změnít na Levý Alt protže TAB vám přece ukáže ve hře tabulku s online hráčema a to se mi nelíbí. Nevíte jak mám změnit ten příkaz tak aby to šlo na Levý Alt ?

     

    Startování motoru :

    forward Motor(playerid);
    new bool:MotorStarted[MAX_PLAYERS];
    #define KEY_L.ALT (1)
    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    MotorStarted[playerid] = false; //Vypne motor
    return 1;
    }
    public OnPlayerStateChange(playerid, newstate, oldstate)
    if(GetPlayerState(playerid) == 2)
    {
    TogglePlayerControllable(playerid, false);
    SendClientMessage(playerid, 0x33AA33AA, "Pro nastartování motoru, zmáčkni Levý Alt.");
    }
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    if(newkeys == KEY_L.ALT )
    {
    if(GetPlayerState(playerid) == 2)
    {
    SendClientMessage(playerid, 0x33AA33AA, "Startuji motor...");
    MotorStarted[playerid] = true;
    SetTimerEx("Motor",2000,0,"i",playerid);
    }
    }
    public Motor(playerid)
    {
    TogglePlayerControllable(playerid, true);
    SendClientMessage(playerid, 0x33AA33AA, "Motor nastartován.");
    }
    

  7. No tak se mi to už ukládá ale je tu další problém, když se přihláší odečte jim tu částku kterou měly předtím

    Např : Měly 100 000

    Přihlásí se a mají : -100 000

     

    Login/register:

    //Includes
    #include <a_samp>
    #include <dini>
    //Must login to spawn
    // 1 = yes, 0 = no
    new lspawn = 1;
    new Logged[MAX_PLAYERS] = 0;
    //Defines
    #define COLOUR_GREEN 0x33AA33AA
    #define COLOUR_RED 0xAA3333AA
    #define COLOUR_YELLOW 0xFFFF00AA
    #define COLOUR_LIGHTBLUE 0x33CCFFAA
    #define COLOUR_ORANGE 0xFF9900AA
    #define SKIN_POS 1958.3783, 1343.1572, 15.3746, 269.1425
    //Dcmd, youl love dcmd...
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    //Hasher
    adler32_hash(buf[]) {
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
     s1 = (s1 + buf[n]) % 65521;
     s2 = (s2 + s1)	 % 65521;
    }
    return (s2 << 16) + s1;
    }
    public OnFilterScriptInit()
    {
    //Credits
    print("Simple Register / Login");
    return 1;
    }
    public OnFilterScriptExit()
    {
    return 1;
    }
    public OnPlayerConnect(playerid)
    {
    return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
    new name[MAX_PLAYER_NAME], file[200];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), "\\users\\%s.ini", name);
    dini_IntSet(file, "cash", GetPlayerMoney(playerid));
    dini_IntSet(file, "score", GetPlayerScore(playerid));
    Logged[playerid] = 0;
    return 1;
    }
    public OnPlayerRequestSpawn(playerid)
    {
    //Can't spawn if your not logged in or registered...
    if(lspawn == 1 && Logged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOUR_RED, "Musis se prihlasit!");
    return 0;
    }else{
    return 1;
    }
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(register, 8, cmdtext);
    dcmd(login, 5, cmdtext);
    return false;
    }
    //Register
    dcmd_register(playerid, params[])
    {
    //Varibles
    new name[MAX_PLAYER_NAME], file[200];
    //Get there name
    GetPlayerName(playerid, name, sizeof(name));
    //Build the file name
    format(file, sizeof(file), "\\users\\%s.ini", name);
    //No registering if your logged in!
    if(Logged[playerid] == 1) return SendClientMessage(playerid, COLOUR_RED, "Uz jsi prihlasen!");
    //Make shure there not registered!
    if(dini_Exists(file)) return SendClientMessage(playerid, COLOUR_RED, "Tohle jmeno uz je registrovano! Prosim vyber si jiny Nick!");
    //Can't forget a password!
    else if(strlen(params) == 0) return SendClientMessage(playerid, COLOUR_RED, "Musis napsat sve heslo do registrace /register [Heslo]!");
    else
    {
     //Make there file
     dini_Create(file);
     //Store a encrypted copy of there password in it
     dini_IntSet(file, "password", adler32_hash(params));
     //Save there money
     dini_IntSet(file, "cash", GetPlayerMoney(playerid));
    //Save there score
     dini_IntSet(file, "score", GetPlayerScore(playerid));
     //Make them logged
    Logged[playerid] = 1;
    //Sucess
     SendClientMessage(playerid, COLOUR_YELLOW, "Byl jsi registrovan, automaticky te prihlasuji!");
    }
    return 1;
    }
    //Login
    dcmd_login(playerid, params[])
    {
    //Varibles
    new name[MAX_PLAYER_NAME], file[200];
    //Get there name
    GetPlayerName(playerid, name, sizeof(name));
    //Build there file name
    format(file, sizeof(file), "\\users\\%s.ini", name);
    //No /login abuse
    if(Logged[playerid] == 1) return SendClientMessage(playerid, COLOUR_RED, "Uz jsi prihlasen!");
    //Make shure there registered!
    if(!dini_Exists(file)) return SendClientMessage(playerid, COLOUR_RED, "Tohle jmeno je reigstrovano, prosim vyber si jiny Nick!");
    //Can't forget a password!
    else if(strlen(params) == 0) return SendClientMessage(playerid, COLOUR_RED, "Musis napsat sve heslo do registrace /register [Heslo]!");
    //Hash there password so it can be compaired
    else if(adler32_hash(params) != dini_Int(file, "password")) return SendClientMessage(playerid, COLOUR_RED, "Prihlaseni selhalo!");
    else
    {
     //Get there cash
     GivePlayerMoney(playerid, GetPlayerMoney(playerid) - dini_Int(file, "cash"));
    //Get there score
     SetPlayerScore(playerid, dini_Int(file, "score"));
     //Make them logged
     Logged[playerid] = 1;
     //Sucess
     SendClientMessage(playerid, COLOUR_YELLOW, "Byl jsi prihlasen, tve informace byly nacteny!");
    }
    return 1;
    }
    

×
×
  • Create New...