GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: narancs741 - 2013. Július 17. - 00:56:06

Cím: Timer
Írta: narancs741 - 2013. Július 17. - 00:56:06
Sziasztok ehez hogyan tudnék timert fûzni?
 
    SetPlayerWeather(playerid, -66);
Cím: Timer
Írta: anorennia - 2013. Július 17. - 03:32:30
#define WeatherTime 10 // 10 millisec (ez lehet egy kicsit gyors :D)
public OnGameModeInit()
{
SetTimer(\"ChangeWeather\", WeatherTime, true);
return 1;
}
forward ChangeWeather(playerid);
public ChangeWeather(playerid)
{
switch(random(10))
{
    case 0:
    {
   SetPlayerWeather(playerid, -66);
}
case 1:
{
            SetPlayerWeather(playerid, 666);
}
case 2:
{
            SetPlayerWeather(playerid, 10000);
}
}
return 1;
}

 
Ha erre gondoltál...
Cím: Timer
Írta: narancs741 - 2013. Július 17. - 04:43:27
És Ha pl ugy zseretném hoyg Be irja hoyg /sziv és akk utána egy ideig tartson aztán már ne?Azt mehlehet?
Cím: Timer
Írta: anorennia - 2013. Július 17. - 05:29:47
#include <a_samp>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
dcmd_sziv(playerid,params[])
{
#pragma unused params
    SetPlayerWeather(playerid, -66); // átállítja arra a drogosra (-66)
SetTimer(\"Beszivva\", 60000, false); // 1 perc false = nem ismétli
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(sziv,4,cmdtext);
return 0;
}
forward Beszivva(playerid);
public Beszivva(playerid)
{
SetPlayerWeather(playerid, 1); // 1 perc múlva visszaállítja 1-re a weatherid-t
return 1;
}
Cím: Timer
Írta: James4 - 2013. Július 17. - 09:09:18
Idézetet írta: anorennia date=1374031787\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"39928\" data-ipsquote-contentclass=\"forums_Topic

#include <a_samp>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
dcmd_sziv(playerid,params[])
{
#pragma unused params
    SetPlayerWeather(playerid, -66); // átállítja arra a drogosra (-66)
SetTimer(\"Beszivva\", 60000, false); // 1 perc false = nem ismétli
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(sziv,4,cmdtext);
return 0;
}
forward Beszivva(playerid);
public Beszivva(playerid)
{
SetPlayerWeather(playerid, 1); // 1 perc múlva visszaállítja 1-re a weatherid-t
return 1;
}

 

Köszönöm ez nekem is jól jött :)
Cím: Timer
Írta: Zsolesszka - 2013. Július 17. - 09:14:03
Annyi a baj hogy csak a 0 ID-vel jelölt játékosnak mûködnek a fenti kódok.
Ez helyett:
 
 SetTimer(\"Beszivva\", 60000, false);

 
ez:
 
 SetTimerEx(\"Beszivva\", 60000, false, \"i\", playerid);
Cím: Timer
Írta: narancs741 - 2013. Július 17. - 11:17:42
Ez a rész fontos?Mert dcmd ésé Zcmd ben írom.
 
public OnPlayerCommandText(playerid, cmdtext[])
{
        dcmd(sziv,4,cmdtext);
        return 0;
}
Cím: Timer
Írta: Flash - 2013. Július 17. - 12:49:29
Akkor ez nem szükséges.. Akkor így kell:
 
CMD:sziv(playerid) {
      SetPlayerWeather(playerid, -66); // átállítja arra a drogosra (-66)
    SetTimerEx(\"Beszivva\", 60000, false, \"i\", playerid); // 1 perc false = nem ismétli
    return 1;
}