GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

eVehicleColor | Arac Rengini Degistirme

Başlatan Excision, 17 Mart 2017, 22:32:41

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Excision

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;
}
Son düzenlenme: 19 Mart 2017, 14:58:36 Excision

Quintel

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


Excision

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;
}


trabzon

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


Excision

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 :)


Backup

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.


TheHunter

Bazıları gelip krallık ilan etmiş....

Unutma sen kısa paçalı don ile gezerken, biz piyasada Tanrıydık, sen yokkende biz vardık, sen gittikten sonrada burada olacağız.

-TheVeKToRs

Excision

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.


XpDeviL

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.


Excision

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;
}


XpDeviL


Excision


LanceX

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


Excision

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;
}


LanceX

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. :)