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

/me ve /do komutu

Başlatan Submarine, 29 Ağustos 2017, 13:27:33

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Submarine

Arkadaşlar roleplay server yazmayı planlıyorum fakat şu /me ve /do yu nasıl yazıcam mantığını kavrayamadım anlatabilirmisiniz ?


muzaffer22

Hocam bilgin varsa bana eğitim verebilir misin?


Submarine

Alıntı yapılan: muzaffer22 - 29 Ağustos 2017, 13:28:57

Hocam bilgin varsa bana eğitim verebilir misin?

Güzel kardeşim olsa kafada birşeyler verirdim .Tekrardan kb


FrankTR

Şu işinize yarayabilir, /do için de aynı şekilde yaparsınız. Oyunculara gönderdiği mesaj biçimiyle, rengiyle oynarsınız.

PAWN Kodu: Seç

if(!strcmp(cmdtext, "/me", true, 3)) // 3 is the length of /me
    {
        if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /me [action]");
        new str[128];
        GetPlayerName(playerid, str, sizeof(str));
        format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
        SendClientMessageToAll(0xFFFF00AA, str);
        return 1;
    }







Submarine

Alıntı yapılan: FrankTR - 29 Ağustos 2017, 13:32:07

Şu işinize yarayabilir, /do için de aynı şekilde yaparsınız. Oyunculara gönderdiği mesaj biçimiyle, rengiyle oynarsınız.

PAWN Kodu: Seç

if(!strcmp(cmdtext, "/me", true, 3)) // 3 is the length of /me
    {
        if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /me [action]");
        new str[128];
        GetPlayerName(playerid, str, sizeof(str));
        format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
        SendClientMessageToAll(0xFFFF00AA, str);
        return 1;
    }


Hocam yaptım ama gırınce komut çalışmıyor.zcmd ıle denedım normal komut sıstemıyle denedım unknown command dıyor.


FrankTR



Şu şekilde denediniz mi? Hangi komut işlemcisini kullanıyorsunuz?

PAWN Kodu: Seç

CMD:me(playerid, params[])

  {
    if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /me [action]");
    new str[128];
    GetPlayerName(playerid, str, sizeof(str));
    format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
    SendClientMessageToAll(0xFFFF00AA, str);
    return 1;
  }







Submarine

Alıntı yapılan: FrankTR - 29 Ağustos 2017, 14:24:23



Şu şekilde denediniz mi? Hangi komut işlemcisini kullanıyorsunuz?

PAWN Kodu: Seç

CMD:me(playerid, params[])

  {
    if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /me [action]");
    new str[128];
    GetPlayerName(playerid, str, sizeof(str));
    format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
    SendClientMessageToAll(0xFFFF00AA, str);
    return 1;
  }



Zcmd kullanmaktayım bıde sscanf2 var onları kullanıyorum.Bırde 4 error aldım .

C:\Program Files (x86)\Rockstar Games\Yeni klasör (2)\gamemodes\Untitled.pwn(8) : error 017: undefined symbol "cmdtext"
C:\Program Files (x86)\Rockstar Games\Yeni klasör (2)\gamemodes\Untitled.pwn(8) : warning 215: expression has no effect
C:\Program Files (x86)\Rockstar Games\Yeni klasör (2)\gamemodes\Untitled.pwn(8) : error 001: expected token: ";", but found "]"
C:\Program Files (x86)\Rockstar Games\Yeni klasör (2)\gamemodes\Untitled.pwn(8) : error 029: invalid expression, assumed zero
C:\Program Files (x86)\Rockstar Games\Yeni klasör (2)\gamemodes\Untitled.pwn(8) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.


Jawié

Alıntı yapılan: FrankTR - 29 Ağustos 2017, 13:32:07
PAWN Kodu: Seç

if(!strcmp(cmdtext, "/me", true, 3)) // 3 is the length of /me
    {
        if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /me [action]");
        new str[128];
        GetPlayerName(playerid, str, sizeof(str));
        format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
        SendClientMessageToAll(0xFFFF00AA, str);
        return 1;
    }



SendClientMessageToAll fonksiyonu bütün oyunculara mesaj gönderir. /me komutu yanında olan oyunculara gitmelidir. ProxDetector fonksiyonunu kullanarak bunu sağlayabilir. Ya da kendi isplayerinrangeofpoint ile yapabilir. (Aşağıda komutunu verdim)

Komutuna gelecek olursak, hata vermesinin sebebi bu forumdaki pawn tagının bozuk olmasıdır. %&; gibi bozuk karakterler gösteriyor yani. Pawn tagı yerine code tagını kullan.

Aşağıdaki komutu kullanabilirsin.

CMD:me(playerid, params[])
{
new str[128], mesaj[128], name[24], Float:x, Float:y, Float:z; GetPlayerName(playerid, name, 24);
if(sscanf(params, "s[128]", mesaj)) return SendClientMessage(playerid, -1, "*** /me (Eylem)");
GetPlayerPos(playerid, x, y, z);
for(new i=0; i <= GetPlayerPoolSize(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, x, y, z))
{
format(str, sizeof(str), "*** %s: {8C8E8F}%s", name, mesaj);
SendClientMessage(i, 0xD1D1D1FF, str);
}
}
return 1;
}

CMD:do(playerid, params[])
{
new mesaj[128];
if(sscanf(params, "s[128]", mesaj)) return SendClientMessage(playerid, -1, "*** /do (Durum)");
new str[128], name[24], Float:x, Float:y, Float:z; GetPlayerName(playerid, name, 24);
GetPlayerPos(playerid, x, y, z);
for(new i=0; i <= GetPlayerPoolSize(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, x, y, z))
{
format(str, sizeof(str), "{8C8E8F}*** %s: {D1D1D1}(( %s ))", name, mesaj);
SendClientMessage(i, 0xD1D1D1FF, str);
}
}
return 1;
}


Not: Detaylı yazmadığım için hatalar olabilir. Gelişigüzel yazdım. İyi kullanımlar.
Son düzenlenme: 29 Ağustos 2017, 19:31:14 Jawié

Submarine

Alıntı yapılan: Jawié - 29 Ağustos 2017, 18:33:55

Alıntı yapılan: FrankTR - 29 Ağustos 2017, 13:32:07
PAWN Kodu: Seç

if(!strcmp(cmdtext, "/me", true, 3)) // 3 is the length of /me
    {
        if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /me [action]");
        new str[128];
        GetPlayerName(playerid, str, sizeof(str));
        format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
        SendClientMessageToAll(0xFFFF00AA, str);
        return 1;
    }



SendClientMessageToAll fonksiyonu bütün oyunculara mesaj gönderir. /me komutu yanında olan oyunculara gitmelidir. ProxDetector fonksiyonunu kullanarak bunu sağlayabilir. Ya da kendi isplayerinrangeofpoint ile yapabilir. (Aşağıda komutunu verdim)

Komutuna gelecek olursak, hata vermesinin sebebi bu forumdaki pawn tagının bozuk olmasıdır. %&; gibi bozuk karakterler gösteriyor yani. Pawn tagı yerine code tagını kullan.

Aşağıdaki komutu kullanabilirsin.

CMD:me(playerid, params[])
{
if(!params) return SendClientMessage(playerid, -1, "*** /me (Eylem)");
new str[128], name[24], Float:x, Float:y, Float:z; GetPlayerName(playerid, name, 24);
GetPlayerPos(playerid, x, y, z);
for(new i=0; i < GetPlayerPoolSize(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, x, y, z))
{
format(str, sizeof(str), "*** %s: {8C8E8F}%s", name, params);
SendClientMessage(i, 0xD1D1D1FF, str);
}
}
return 1;
}
CMD:do(playerid, params[])
{
if(!params) return SendClientMessage(playerid, -1, "*** /do (Durum)");
new str[128], name[24], Float:x, Float:y, Float:z; GetPlayerName(playerid, name, 24);
GetPlayerPos(playerid, x, y, z);
for(new i=0; i < GetPlayerPoolSize(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, x, y, z))
{
format(str, sizeof(str), "{8C8E8F}*** %s: {D1D1D1}(( %s ))", name, params);
SendClientMessage(i, 0xD1D1D1FF, str);
}
}
return 1;
}


Not: Detaylı yazmadığım için hatalar olabilir. Gelişigüzel yazdım. İyi kullanımlar.

C:\Program Files (x86)\Rockstar Games\Yeni klasör (2)\gamemodes\grandlarc.pwn(14) : error 033: array must be indexed (variable "params")
C:\Program Files (x86)\Rockstar Games\Yeni klasör (2)\gamemodes\grandlarc.pwn(30) : error 033: array must be indexed (variable "params")

Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
hataları alıyorum


Jawié

CMD:me(playerid, params[])
{
new str[128], mesaj[128], name[24], Float:x, Float:y, Float:z; GetPlayerName(playerid, name, 24);
if(sscanf(params, "s[128]", mesaj)) return SendClientMessage(playerid, -1, "*** /me (Eylem)");
GetPlayerPos(playerid, x, y, z);
for(new i=0; i <= GetPlayerPoolSize(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, x, y, z))
{
format(str, sizeof(str), "*** %s: {8C8E8F}%s", name, mesaj);
SendClientMessage(i, 0xD1D1D1FF, str);
}
}
return 1;
}

CMD:do(playerid, params[])
{
new mesaj[128];
if(sscanf(params, "s[128]", mesaj)) return SendClientMessage(playerid, -1, "*** /do (Durum)");
new str[128], name[24], Float:x, Float:y, Float:z; GetPlayerName(playerid, name, 24);
GetPlayerPos(playerid, x, y, z);
for(new i=0; i <= GetPlayerPoolSize(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, x, y, z))
{
format(str, sizeof(str), "{8C8E8F}*** %s: {D1D1D1}(( %s ))", name, mesaj);
SendClientMessage(i, 0xD1D1D1FF, str);
}
}
return 1;
}


Submarine

Alıntı yapılan: Jawié - 29 Ağustos 2017, 19:30:44

CMD:me(playerid, params[])
{
new str[128], mesaj[128], name[24], Float:x, Float:y, Float:z; GetPlayerName(playerid, name, 24);
if(sscanf(params, "s[128]", mesaj)) return SendClientMessage(playerid, -1, "*** /me (Eylem)");
GetPlayerPos(playerid, x, y, z);
for(new i=0; i <= GetPlayerPoolSize(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, x, y, z))
{
format(str, sizeof(str), "*** %s: {8C8E8F}%s", name, mesaj);
SendClientMessage(i, 0xD1D1D1FF, str);
}
}
return 1;
}

CMD:do(playerid, params[])
{
new mesaj[128];
if(sscanf(params, "s[128]", mesaj)) return SendClientMessage(playerid, -1, "*** /do (Durum)");
new str[128], name[24], Float:x, Float:y, Float:z; GetPlayerName(playerid, name, 24);
GetPlayerPos(playerid, x, y, z);
for(new i=0; i <= GetPlayerPoolSize(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, x, y, z))
{
format(str, sizeof(str), "{8C8E8F}*** %s: {D1D1D1}(( %s ))", name, mesaj);
SendClientMessage(i, 0xD1D1D1FF, str);
}
}
return 1;
}


Teşekkürler.Çalıştı fakat do da ooc konusmayı yapmışsınız.Artık onu da /b ye adarım artık.


Jawié

Alıntı yapılan: kerematayy - 29 Ağustos 2017, 19:47:51
Teşekkürler.Çalıştı fakat do da ooc konusmayı yapmışsınız.Artık onu da /b ye adarım artık.


Yazıyı düzenlemek zor olmasa gerek. Kendinize göre düzenleyebilirsiniz.