GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Mod Galerisi => Konuyu başlatan: Excision - 17 Mart 2017, 22:32:41

Başlık: eVehicleColor | Arac Rengini Degistirme
Gönderen: Excision - 17 Mart 2017, 22:32:41
Excision Arac Rengini Degistirme Sistemi

Canım sıkıldı ne yapabilirim diye düşünürken bu sistemi yapmak aklıma geldi. Freeroam lar için kullanılabilir bi sistem bence. Kodlarda hata varsa bildirmeniz yeterli.Sistemi anlatmak gerekirse; Oyuncu /vrenk yazdıktan sonra ateş etme tuşuna bastığı zamanlar aracın rengi değişecektir, yine bu komutu yazdığı zaman renk değiştirme kapanacaktır. I-ZCMD kullandım.
#include <a_samp>
#include <izcmd>

new bool:eRenk[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
eRenk[playerid] = false;
return 1;
}
CMD:vrenk(playerid, params[])
{
if(eRenk[playerid] == false)
{
    eRenk[playerid] = true;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirmek için ateş etme tuşuna basınız.");
    return 1;
}else if(eRenk[playerid] == true)
{
    eRenk[playerid] = false;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirme kapandı.");
    return 1;
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(eRenk[playerid] == true)
{
    if(newkeys & KEY_FIRE)
    {
        new vehid;
        vehid = GetPlayerVehicleID(playerid);
        if(!IsPlayerInAnyVehicle(playerid)) return 1;
        ChangeVehicleColor(vehid,random(256),random(256));
        return 1;
    }
}
return 1;
}

DCMD
#include <a_samp>

#define dcmd(%1,%2,%3) if(!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


new bool:eRenk[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
eRenk[playerid] = false;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(vrenk, 5, cmdtext);
return 1;
}
dcmd_vrenk(playerid, params[])
{
#pragma unused params
if(eRenk[playerid] == false)
{
    eRenk[playerid] = true;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirmek için ateş etme tuşuna basınız.");
    return 1;
}else if(eRenk[playerid] == false)
{
    eRenk[playerid] = false;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirme kapandı.");
    return 1;
}
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(eRenk[playerid] == true)
{
    if(newkeys & KEY_FIRE)
    {
        new vehid;
        vehid = GetPlayerVehicleID(playerid);
        if(!IsPlayerInAnyVehicle(playerid)) return 1;
        ChangeVehicleColor(vehid,random(256),random(256));
        return 1;
    }
}
return 1;
}
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Quintel - 18 Mart 2017, 10:23:12
Paylaşım için teşekkürler, dcmd olarak atarmısınız ?
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Excision - 18 Mart 2017, 11:12:06
Alıntı yapılan: Quintel - 18 Mart 2017, 10:23:12

Paylaşım için teşekkürler, dcmd olarak atarmısınız ?


Buyrun
#include <a_samp>

#define dcmd(%1,%2,%3) if(!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


new bool:eRenk[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
eRenk[playerid] = false;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(vrenk, 5, cmdtext);
return 1;
}
dcmd_vrenk(playerid, params[])
{
#pragma unused params
if(eRenk[playerid] == false)
{
    eRenk[playerid] = true;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirmek için ateş etme tuşuna basınız.");
}else
{
    eRenk[playerid] = false;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirme kapandı.");
}
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(eRenk[playerid] == true)
{
    if(newkeys & KEY_FIRE)
    {
        new vehid;
        vehid = GetPlayerVehicleID(playerid);
        if(!IsPlayerInAnyVehicle(playerid)) return 1;
        ChangeVehicleColor(vehid,random(256),random(256));
        return 1;
    }
}
return 1;
}
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: trabzon - 18 Mart 2017, 20:05:32
Mantık`en çok güzel olmuş, araç rengi random şeklinde felan. Eline sağlık dostum..
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Excision - 18 Mart 2017, 23:06:59
Alıntı yapılan: Silver - 18 Mart 2017, 20:05:32

Mantık`en çok güzel olmuş, araç rengi random şeklinde felan. Eline sağlık dostum..

Teşekkür ettim :)
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Backup - 19 Mart 2017, 01:25:56
Alıntı yapılan: Excision - 17 Mart 2017, 22:32:41

#include <a_samp>
#include <izcmd>

new bool:eRenk[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
eRenk[playerid] = false;
return 1;
}
CMD:vrenk(playerid, params[])
{
if(eRenk[playerid] == false)
{
    eRenk[playerid] = true;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirmek için ateş etme tuşuna basınız.");
}else
{
    eRenk[playerid] = false;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirme kapandı.");
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(eRenk[playerid] == true)
{
    if(newkeys & KEY_FIRE)
    {
        new vehid;
        vehid = GetPlayerVehicleID(playerid);
        if(!IsPlayerInAnyVehicle(playerid)) return 1;
        ChangeVehicleColor(vehid,random(256),random(256));
        return 1;
    }
}
return 1;
}


Komut hatalı. Return değeri vererek komutu döndürmelisin çünkü erenk false ise true yapıyorsun ve alttaki else de diyorsun ki erenk false değilse şunları yap.
Komutu girince iki şartıda okuyacaktır.
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: TheHunter - 19 Mart 2017, 03:33:34
Eline sağlık dostum..
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Excision - 19 Mart 2017, 14:57:25
Alıntı yapılan: _Backup - 19 Mart 2017, 01:25:56

Alıntı yapılan: Excision - 17 Mart 2017, 22:32:41

#include <a_samp>
#include <izcmd>

new bool:eRenk[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
eRenk[playerid] = false;
return 1;
}
CMD:vrenk(playerid, params[])
{
if(eRenk[playerid] == false)
{
    eRenk[playerid] = true;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirmek için ateş etme tuşuna basınız.");
}else
{
    eRenk[playerid] = false;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirme kapandı.");
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(eRenk[playerid] == true)
{
    if(newkeys & KEY_FIRE)
    {
        new vehid;
        vehid = GetPlayerVehicleID(playerid);
        if(!IsPlayerInAnyVehicle(playerid)) return 1;
        ChangeVehicleColor(vehid,random(256),random(256));
        return 1;
    }
}
return 1;
}


Komut hatalı. Return değeri vererek komutu döndürmelisin çünkü erenk false ise true yapıyorsun ve alttaki else de diyorsun ki erenk false değilse şunları yap.
Komutu girince iki şartıda okuyacaktır.

Farkettim. Teşekkür ederim farkettirdiğiniz için. Düzelttim komutu.
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: XpDeviL - 19 Mart 2017, 15:49:37
Alıntı yapılan: _Backup - 19 Mart 2017, 01:25:56

Alıntı yapılan: Excision - 17 Mart 2017, 22:32:41

#include <a_samp>
#include <izcmd>

new bool:eRenk[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
eRenk[playerid] = false;
return 1;
}
CMD:vrenk(playerid, params[])
{
if(eRenk[playerid] == false)
{
    eRenk[playerid] = true;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirmek için ateş etme tuşuna basınız.");
}else
{
    eRenk[playerid] = false;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirme kapandı.");
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(eRenk[playerid] == true)
{
    if(newkeys & KEY_FIRE)
    {
        new vehid;
        vehid = GetPlayerVehicleID(playerid);
        if(!IsPlayerInAnyVehicle(playerid)) return 1;
        ChangeVehicleColor(vehid,random(256),random(256));
        return 1;
    }
}
return 1;
}


Komut hatalı. Return değeri vererek komutu döndürmelisin çünkü erenk false ise true yapıyorsun ve alttaki else de diyorsun ki erenk false değilse şunları yap.
Komutu girince iki şartıda okuyacaktır.


Komut hatalı falan değil. Komutu girdiği zaman sorgu gönderilir. Ordaki if kontrolü gönderilen sorguyu denetler ve biter. If parantezinin içindeki değiştirilen değer kontrolü etkilemez. Eğer eRenk false ise false olarak kontrol edilir. True'da yapsan, değer de versen farketmez. Sorguyu tekrarlamaz yani.
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Excision - 19 Mart 2017, 16:18:02
Alıntı yapılan: XpDeviL - 19 Mart 2017, 15:49:37

Alıntı yapılan: _Backup - 19 Mart 2017, 01:25:56

Alıntı yapılan: Excision - 17 Mart 2017, 22:32:41

#include <a_samp>
#include <izcmd>

new bool:eRenk[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
eRenk[playerid] = false;
return 1;
}
CMD:vrenk(playerid, params[])
{
if(eRenk[playerid] == false)
{
    eRenk[playerid] = true;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirmek için ateş etme tuşuna basınız.");
}else
{
    eRenk[playerid] = false;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirme kapandı.");
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(eRenk[playerid] == true)
{
    if(newkeys & KEY_FIRE)
    {
        new vehid;
        vehid = GetPlayerVehicleID(playerid);
        if(!IsPlayerInAnyVehicle(playerid)) return 1;
        ChangeVehicleColor(vehid,random(256),random(256));
        return 1;
    }
}
return 1;
}


Komut hatalı. Return değeri vererek komutu döndürmelisin çünkü erenk false ise true yapıyorsun ve alttaki else de diyorsun ki erenk false değilse şunları yap.
Komutu girince iki şartıda okuyacaktır.


Komut hatalı falan değil. Komutu girdiği zaman sorgu gönderilir. Ordaki if kontrolü gönderilen sorguyu denetler ve biter. If parantezinin içindeki değiştirilen değer kontrolü etkilemez. Eğer eRenk false ise false olarak kontrol edilir. True'da yapsan, değer de versen farketmez. Sorguyu tekrarlamaz yani.

Yani bu doğru mu ? Ne yapayım bilemedim cidden :(
#include <a_samp>
#include <izcmd>

new bool:eRenk[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
eRenk[playerid] = false;
return 1;
}
CMD:vrenk(playerid, params[])
{
if(eRenk[playerid] == false)
{
    eRenk[playerid] = true;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirmek için ateş etme tuşuna basınız.");
}else
{
    eRenk[playerid] = false;
    SendClientMessage(playerid, -1,"Aracınızın rengini değiştirme kapandı.");
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(eRenk[playerid] == true)
{
    if(newkeys & KEY_FIRE)
    {
        new vehid;
        vehid = GetPlayerVehicleID(playerid);
        if(!IsPlayerInAnyVehicle(playerid)) return 1;
        ChangeVehicleColor(vehid,random(256),random(256));
        return 1;
    }
}
return 1;
}
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: XpDeviL - 19 Mart 2017, 16:47:44
Farketmez. İkisi de doğru.
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Excision - 19 Mart 2017, 16:48:45
Alıntı yapılan: XpDeviL - 19 Mart 2017, 16:47:44

Farketmez. İkisi de doğru.

Çok teşekkür ederim :)
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: LanceX - 19 Mart 2017, 19:31:25
Güzel düşünmüşsün eline sağlık. Peki /renk id id şeklinde nasıl yapabiliriz paylaşırsan sevinirim.
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Excision - 19 Mart 2017, 20:08:16
Alıntı yapılan: SelimBasKaN - 19 Mart 2017, 19:31:25

Güzel düşünmüşsün eline sağlık. Peki /renk id id şeklinde nasıl yapabiliriz paylaşırsan sevinirim.

#include <a_samp>
#include <izcmd>
#include <sscanf2>

CMD:renk(playerid, params[])
{
new C1, C2;
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1,"Araçta olmalısınız.");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, -1,"Sürücü değilsiniz.");
if(sscanf(params,"ii", C1, C2)) return SendClientMessage(playerid, -1,"/renk id id.");
ChangeVehicleColor(GetPlayerVehicleID(playerid), C1, C2);
SendClientMessage(playerid, -1,"Aracın rengini başarıyla değiştirdiniz.");
return 1;
}
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: LanceX - 20 Mart 2017, 20:14:26
Alıntı yapılan: Excision - 19 Mart 2017, 20:08:16

Alıntı yapılan: SelimBasKaN - 19 Mart 2017, 19:31:25

Güzel düşünmüşsün eline sağlık. Peki /renk id id şeklinde nasıl yapabiliriz paylaşırsan sevinirim.

#include <a_samp>
#include <izcmd>
#include <sscanf2>

CMD:renk(playerid, params[])
{
new C1, C2;
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1,"Araçta olmalısınız.");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, -1,"Sürücü değilsiniz.");
if(sscanf(params,"ii", C1, C2)) return SendClientMessage(playerid, -1,"/renk id id.");
ChangeVehicleColor(GetPlayerVehicleID(playerid), C1, C2);
SendClientMessage(playerid, -1,"Aracın rengini başarıyla değiştirdiniz.");
return 1;
}



Teşekkürler. :)
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Excision - 07 Mayıs 2017, 21:13:36
Alıntı yapılan: SelimBasKaN - 20 Mart 2017, 20:14:26

Alıntı yapılan: Excision - 19 Mart 2017, 20:08:16

Alıntı yapılan: SelimBasKaN - 19 Mart 2017, 19:31:25

Güzel düşünmüşsün eline sağlık. Peki /renk id id şeklinde nasıl yapabiliriz paylaşırsan sevinirim.

#include <a_samp>
#include <izcmd>
#include <sscanf2>

CMD:renk(playerid, params[])
{
new C1, C2;
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1,"Araçta olmalısınız.");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, -1,"Sürücü değilsiniz.");
if(sscanf(params,"ii", C1, C2)) return SendClientMessage(playerid, -1,"/renk id id.");
ChangeVehicleColor(GetPlayerVehicleID(playerid), C1, C2);
SendClientMessage(playerid, -1,"Aracın rengini başarıyla değiştirdiniz.");
return 1;
}



Teşekkürler. :)
İyi kullanımlar :)
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Xchatt - 07 Mayıs 2017, 21:16:55
Ellerine sağlık reiz  :helal:
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Guardian - 05 Haziran 2017, 15:11:43
Elinize sağlık güzel olmuş  :helal:

(http://www.game-state.com/94.23.208.199:9858/n-560x95_FFFFFF_FC7C05_000000_000000.png) (http://www.game-state.com/94.23.208.199:9858/)
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: BeOSD - 09 Haziran 2017, 02:28:21
Eline sağlık dostum :)
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Nyks - 09 Haziran 2017, 21:01:16
Eline Sğlık kardeşim  :kahkaha: :kahkaha:
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Excision - 13 Haziran 2017, 16:29:20
Yorumlarınız için teşekkürler.
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Gorkem. - 13 Haziran 2017, 20:24:45
Eline sağlık başarılar  :helal:
Başlık: Ynt: eVehicleColor | Arac Rengini Degistirme
Gönderen: Wendiassa - 19 Mayıs 2022, 01:33:18
Teşekkürler yararlı :)