GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: Lé Spîke - 06 Eylül 2017, 18:45:23

Başlık: Timerleri Bütün Oyuncular İçin Çalıştırma
Gönderen: Lé Spîke - 06 Eylül 2017, 18:45:23
Arkadaşlar Sorunum şu:

ID 0 olan kişiye saat başı 10 tl veriyor ama ben herkese vermesini istiyorum. Nasıl yapabilirim.

Buyrun kodlar:

PAWN Kodu: Seç
#include <a_samp>
#include <zcmd>
#include <foreach>

#define MAASM (1501) // Saat Başı Verilecek Olan Maaş
#define KSKOR       (1)             // Katilin Kazanacağı Skor Miktarı

#define PANELD      1               // Panel Dialog ID
#define MARKETD     2               // Market Dialog ID
#define KARAKTERD 3               // Karakter Panel Dialog ID
#define RCOND       4               // Rcon Panel Dialog ID
#define YETENEKMD   5
#define PARAMD      6
#define SANALMD     7

new MAAST;
new YTNKT;

public OnPlayerConnect(playerid)
{
MAAST = SetTimer("MAAS",360000,true);
YTNKT = SetTimer("YTNKP",1500,true);
return 1;
}

public OnPlayerDisconnect(playerid)
{
KillTimer(MAAST);
KillTimer(YTNKT);

return 1;
}

forward MAAS(playerid);
public MAAS(playerid)
{
GivePlayerMoney(playerid, MAASM);
SendClientMessage(playerid, -1, "$1501 Miktar Maaş Aldınız.");
return 1;
}

forward YTNKP(playerid);
public YTNKP(playerid)
{
new textyazisi[75];
SetPlayerScore(playerid, GetPlayerScore(playerid)+1);
format(textyazisi,sizeof textyazisi,"1 Saat Oyunda Kaldın ve +1 Yetenek Puanı Kazandın. Şimdiki Puanın %d",GetPlayerScore(playerid));
SendClientMessage(playerid, -1,textyazisi);
return 1;
}
Başlık: Ynt: Timerleri Bütün Oyuncular İçin Çalıştırma
Gönderen: Hwang - 06 Eylül 2017, 18:49:54
Tüm oyunculara vermesi için önce OnGameModeInit veya OnFilterScriptInit altına:

SetTimer("Maas", 3600000, true); //true ise 1 saat sonra tekrar verir. false ise bir daha vermez.


Modun en altına:
PAWN Kodu: Seç

forward Maas(); public Maas()
{
#define MAAS_MIKTAR (10)
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(!IsPlayerConnected(i)) continue;
GivePlayerMoney(i, MAAS_MIKTAR);
}
return true;
}


MAAS_MIKTAR karşısındaki 10, verilecek para miktarıdır.
Başlık: Ynt: Timerleri Bütün Oyuncular İçin Çalıştırma
Gönderen: Lé Spîke - 06 Eylül 2017, 18:50:47
Alıntı yapılan: Hwang - 06 Eylül 2017, 18:49:54

Tüm oyunculara vermesi için önce OnGameModeInit veya OnFilterScriptInit altına:

SetTimer("Maas", 3600000, true); //true ise 1 saat sonra tekrar verir. false ise bir daha vermez.


Modun en altına:
PAWN Kodu: Seç

forward Maas(); public Maas()
{
#define MAAS_MIKTAR (10)
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(!IsPlayerConnected(i)) continue;
GivePlayerMoney(i, MAAS_MIKTAR);
}
return true;
}


MAAS_MIKTAR karşısındaki 10, verilecek para miktarıdır.


Anladım. Deneyeceğim Teşekkürler Hwang
Başlık: Ynt: Timerleri Bütün Oyuncular İçin Çalıştırma
Gönderen: Hwang - 06 Eylül 2017, 18:52:45
... Kodlarını paylaşmadan önce bir yorum atmıştım. Verdiğin kodları herkes için çalışan olarak ayarladım:

PAWN Kodu: Seç

#include <a_samp>
#include <zcmd>
#include <foreach>

#define MAASM (1501) // Saat Başı Verilecek Olan Maaş
#define KSKOR       (1)             // Katilin Kazanacağı Skor Miktarı

#define PANELD      1               // Panel Dialog ID
#define MARKETD     2               // Market Dialog ID
#define KARAKTERD 3               // Karakter Panel Dialog ID
#define RCOND       4               // Rcon Panel Dialog ID
#define YETENEKMD   5
#define PARAMD      6
#define SANALMD     7

new MAAST;
new YTNKT;

public OnFilterScriptInit()
{
MAAST = SetTimer("MAAS",360000,true);
YTNKT = SetTimer("YTNKP",1500,true);
return 1;
}

public OnFilterScriptExit()
{
KillTimer(MAAST);
KillTimer(YTNKT);

return 1;
}

forward MAAS();
public MAAS()
{
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(!IsPlayerConnected(i)) continue;
GivePlayerMoney(i, MAASM);
SendClientMessage(i, -1, "$1501 Miktar Maaş Aldınız.");
}
return 1;
}

forward YTNKP();
public YTNKP()
{
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
new textyazisi[75];
SetPlayerScore(i, GetPlayerScore(i)+1);
format(textyazisi,sizeof textyazisi,"1 Saat Oyunda Kaldın ve +1 Yetenek Puanı Kazandın. Şimdiki Puanın %d",GetPlayerScore(i));
SendClientMessage(i, -1,textyazisi);
}
return 1;
}
Başlık: Ynt: Timerleri Bütün Oyuncular İçin Çalıştırma
Gönderen: Lé Spîke - 06 Eylül 2017, 18:53:23
Alıntı yapılan: Hwang - 06 Eylül 2017, 18:52:45

... Kodlarını paylaşmadan önce bir yorum atmıştım. Verdiğin kodları herkes için çalışan olarak ayarladım:

PAWN Kodu: Seç

#include <a_samp>
#include <zcmd>
#include <foreach>

#define MAASM (1501) // Saat Başı Verilecek Olan Maaş
#define KSKOR       (1)             // Katilin Kazanacağı Skor Miktarı

#define PANELD      1               // Panel Dialog ID
#define MARKETD     2               // Market Dialog ID
#define KARAKTERD 3               // Karakter Panel Dialog ID
#define RCOND       4               // Rcon Panel Dialog ID
#define YETENEKMD   5
#define PARAMD      6
#define SANALMD     7

new MAAST;
new YTNKT;

public OnFilterScriptInit()
{
MAAST = SetTimer("MAAS",360000,true);
YTNKT = SetTimer("YTNKP",1500,true);
return 1;
}

public OnFilterScriptExit()
{
KillTimer(MAAST);
KillTimer(YTNKT);

return 1;
}

forward MAAS();
public MAAS()
{
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(!IsPlayerConnected(i)) continue;
GivePlayerMoney(i, MAASM);
SendClientMessage(i, -1, "$1501 Miktar Maaş Aldınız.");
}
return 1;
}

forward YTNKP();
public YTNKP()
{
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
new textyazisi[75];
SetPlayerScore(i, GetPlayerScore(i)+1);
format(textyazisi,sizeof textyazisi,"1 Saat Oyunda Kaldın ve +1 Yetenek Puanı Kazandın. Şimdiki Puanın %d",GetPlayerScore(i));
SendClientMessage(i, -1,textyazisi);
}
return 1;
}



Çok sağol @Hwang Teşekkür Ederim.