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;
}
Paylaşım için teşekkürler, dcmd olarak atarmısınız ?
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;
}
Mantık`en çok güzel olmuş, araç rengi random şeklinde felan. Eline sağlık dostum..
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 :)
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.
Eline sağlık dostum..
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.
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.
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;
}
Farketmez. İkisi de doğru.
Alıntı yapılan: XpDeviL - 19 Mart 2017, 16:47:44
Farketmez. İkisi de doğru.
Çok teşekkür ederim :)
Güzel düşünmüşsün eline sağlık. Peki /renk id id şeklinde nasıl yapabiliriz paylaşırsan sevinirim.
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;
}
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. :)
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 :)
Ellerine sağlık reiz :helal:
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/)
Eline sağlık dostum :)
Eline Sğlık kardeşim :kahkaha: :kahkaha:
Yorumlarınız için teşekkürler.
Eline sağlık başarılar :helal:
Teşekkürler yararlı :)