GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: Bojnâ - 19 Ocak 2020, 13:56:09

Başlık: Bir komutu 2 farklı şekilde çalıştırmak
Gönderen: Bojnâ - 19 Ocak 2020, 13:56:09
Arkadaşlar ben roleplay sunucum için aracın motorunu çalıştırmak için bir tuş atamak istiyorum birde komutun hem /araclarim hemde /araclar olarak çalışmasını istiyorum.
Başlık: Ynt: Bir komutu 2 farklı şekilde çalıştırmak
Gönderen: Warning - 19 Ocak 2020, 15:40:49
Alıntı yapılan: TheLost - 19 Ocak 2020, 13:56:09
Arkadaşlar ben roleplay sunucum için aracın motorunu çalıştırmak için bir tuş atamak istiyorum birde komutun hem /araclarim hemde /araclar olarak çalışmasını istiyorum.

araclar, motor komutunu at ve hangı tuşla olmasını ıstıyorsun?
Başlık: Ynt: Bir komutu 2 farklı şekilde çalıştırmak
Gönderen: Bojnâ - 19 Ocak 2020, 17:36:39
Alıntı yapılan: Joker.exe - 19 Ocak 2020, 15:40:49
Alıntı yapılan: TheLost - 19 Ocak 2020, 13:56:09
Arkadaşlar ben roleplay sunucum için aracın motorunu çalıştırmak için bir tuş atamak istiyorum birde komutun hem /araclarim hemde /araclar olarak çalışmasını istiyorum.

araclar, motor komutunu at ve hangı tuşla olmasını ıstıyorsun?

PAWN Kodu: Seç
CMD:motor(playerid)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    new id = Car_GetID(vehicleid);
    if(!IsEngineVehicle(vehicleid)) return HataMesajGonder(playerid,"Bu komutu sadece araçta kullanabilirsin.");
  if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return HataMesajGonder(playerid,"Sürücü değilsin.");
  if(AracInfo[id][aracBenzin] < 0.1) return HataMesajGonder(playerid,"Bu aracın yakıtı bitmiş.");
  if(AracHasar(vehicleid) <= 300) return HataMesajGonder(playerid,"Bu araca çok fazla hasar verilmiş, motor çalışmıyor.");
  if(UsingPumpID[playerid] != -1) return HataMesajGonder(playerid, "Şu an motoru çalıştıramazsınız!");
  if (Car_IsOwner(playerid, id) || Car_Birlik(playerid, id) ||  AracInfo[id][aracTip] == 2 || AracInfo[id][aracKiralayan] == PlayerData[playerid][pID] || Arac_AnahtarVar(playerid, id) || (PlayerData[playerid][pFaction] != -1 && GetFactionType(playerid) != BIRLIK_CETE && GetFactionType(playerid) != BIRLIK_MAFYA && GetFactionType(playerid) != BIRLIK_LEGAL && AracInfo[id][aracFactionType] == GetFactionType(playerid))
  || (AracInfo[id][aracTip] == 5 && PlayerData[playerid][pVip] > 0))
  {
      switch (GetEngineStatus(vehicleid))
      {
          case false:
          {
              if(!spamProtect(playerid, "motor", 2))  return HataMesajGonder(playerid, "Bu komutu 2 saniyede bir kullanabilirsiniz.");
              SendNearbyMessage(playerid, 30.0, COLOR_CYAN, "** %s anahtarı aracın kontağına sokar ve çevirerek çalışmasını bekler.", ReturnName(playerid, 0));
              SetTimerEx("MotorCalistir", floatround(AracInfo[id][aracKM]*3), false, "ud", playerid, vehicleid);
          }
          case true:
          {
            SetEngineStatus(vehicleid, false);
            SendNearbyMessage(playerid, 30.0, COLOR_CYAN, "** %s aracın anahtarını çevirerek motoru kapatır.", ReturnName(playerid, 0));

          }
      }
  }
  else
  {
      HataMesajGonder(playerid,"Bu aracın anahtarı sizde bulunmuyor.");
  }
return 1;
}

Araç şuan y tuşuna basıca çalışıyor bunu kapatmak istiyorum sadece /motor komutunu kullanınca çalışması gerek

PAWN Kodu: Seç
CMD:araclarim(playerid)
{
new string[1000],count;
strcat(string,"ID\tModel\tPlaka\tDurum\n");
for (new i = 0; i < MAX_ARAC; i ++) if(AracInfo[i][aracExists] && AracInfo[i][aracSahip] == PlayerData[playerid][pID])
{
    format(string, sizeof(string), "%s%d\t%s\t%s\t%s\n",string, AracInfo[i][aracVehicle], ReturnVehicleModelName(AracInfo[i][aracModel]),AracInfo[i][aracPlaka],(AracInfo[i][aracDisplay]) ? ("{2ECC71}Aktif") : ("{FF0000}Pasif"));
    count++;
}
if (!count) return HataMesajGonder(playerid, "Sahip olduğunuz araç yok.");

Dialog_Show(playerid, Araclarim, DIALOG_STYLE_TABLIST_HEADERS,  "{00FF80}Araçlarınız", string, "Değiştir", "Kapat");
return 1;
}

Burda ise /araclarim ve /araclar yazınca aynı panelin çıkmasını istiyorum.
Başlık: Ynt: Bir komutu 2 farklı şekilde çalıştırmak
Gönderen: Zoxy - 19 Ocak 2020, 18:52:25
1. "if(IsPlayerInAnyVehicle(playerid) && Garage_Nearest(playerid) == -1)" bu kodları aratın ve silin

PAWN Kodu: Seç
if(IsPlayerInAnyVehicle(playerid) && Garage_Nearest(playerid) == -1)
{
      if(Garage_Inside(playerid) != -1 && IsPlayerInRangeOfPoint(playerid, 3.0, GarageInteriors[GarageData[PlayerData[playerid][pGarage]][gInterior]][intX], GarageInteriors[GarageData[PlayerData[playerid][pGarage]][gInterior]][intY], GarageInteriors[GarageData[PlayerData[playerid][pGarage]][gInterior]][intZ])) return 1;
      cmd_motor(playerid);
}

2. Komutların olduğu yere bu komutu eklemen yeterli olacaktır.

PAWN Kodu: Seç
CMD:araclar(playerid)
{
    return cmd_araclarim(playerid);
}
Başlık: Ynt: Bir komutu 2 farklı şekilde çalıştırmak
Gönderen: Bojnâ - 19 Ocak 2020, 23:27:57
Alıntı yapılan: Zoxy - 19 Ocak 2020, 18:52:25
1. "if(IsPlayerInAnyVehicle(playerid) && Garage_Nearest(playerid) == -1)" bu kodları aratın ve silin

PAWN Kodu: Seç
if(IsPlayerInAnyVehicle(playerid) && Garage_Nearest(playerid) == -1)
{
      if(Garage_Inside(playerid) != -1 && IsPlayerInRangeOfPoint(playerid, 3.0, GarageInteriors[GarageData[PlayerData[playerid][pGarage]][gInterior]][intX], GarageInteriors[GarageData[PlayerData[playerid][pGarage]][gInterior]][intY], GarageInteriors[GarageData[PlayerData[playerid][pGarage]][gInterior]][intZ])) return 1;
      cmd_motor(playerid);
}

2. Komutların olduğu yere bu komutu eklemen yeterli olacaktır.

PAWN Kodu: Seç
CMD:araclar(playerid)
{
    return cmd_araclarim(playerid);
}

Teşekkürler Zoxy sayende yaptım konu kilit.