menü

Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.

Üzenetek megjelenítése menü

Témák - takehun

#1
Segítségkérés / Mi a különbség?
2013. július 23. - 12:35:17
Hali.
Lenne ez a \'funkció\' de igazából nem tudom, hogy most melyiket használjam a scriptekhez: (pl Textdraw-hoz, hogy ne bugoljon össze a playereknek, vagy timerekhez, bool, stb)
 

for (new i = 0; i < MAX_PLAYERS; i += 1)
{
    if (IsPlayerConnected(i))
    {
        //scriptek
    }
}

 
Vagy legfelül  new myTD[MAX_PLAYERS];
...és akkor mindig mellé írjuk a [playerid] -t.:
 
TextDrawDestroy(myTD[playerid]);

 
Tehát, hogy mi a különbség a 2 megoldás között?
A for típusú végig fut az összes játékoson és mindenkinek állítja az értéket, a [playerid]-s megoldás meg az összesbõl választ ki 1 játékost?
Köszi.
#2
Fogalmam sincs mitõl, de csak id0-nak adja oda a pénzt, másnak nem.:  :shurg:
 
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new targetid;
    if(newkeys == KEY_YES && IsPlayerLAdmin(playerid) == 1)
    {
        if(!IsPlayerInAnyVehicle(playerid) && ProxDetectorS(2, playerid, targetid))
        {
            GivePlayerMoney(playerid,-5000); GivePlayerMoney(targetid,5000);
            SendClientMessage(targetid, COLOR_WHITE, \"Kaptál egy admintól 5 rongyot.\");
        }
    }
    return 1;
}
stock ProxDetectorS(Float:radi, playerid, targetid)
{
    if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
    {
        new Float:posx, Float:posy, Float:posz;
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        GetPlayerPos(targetid, posx, posy, posz);
        tempposx = (oldposx -posx);
        tempposy = (oldposy -posy);
        tempposz = (oldposz -posz);
        if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
        {
            return 1;
        }
    }
    return 0;
}

 
Köszönöm.
#3
Üdv, kis DM ketrechez köllene a fent említett script, nem nagyon találtam sehol megfelelõt így ide fordulok.
Lényege: sscanf-el  /berak 3 5  és megindul id3-as játékosnak 5 perctõl a számláló. (ez a része úgy ahogy megvan megvan, csak a textdraw megvalósítás nincs)
Majd ha lejárt az idõ, SetPlayerPos-al kiteszi onnan.
Kinézet nem számít, csak használható legyen és ne akadjon össze a playereknek.
Köszönöm a segítséget!  :yes:
Szerk.: már van egy hasonló: http://samp-scripts.com/post/INC_TDCountDown-Gappy-other_include-570/maps/\" rel=\"external nofollow\">http://samp-scripts.com/post/INC_TDCountDown-Gappy-other_include-570/maps/
#4
Segítségkérés / Házrendszer probléma (Rupert)
2013. július 04. - 22:55:44
Hali, nem akar mûködni az alábbi kis módosítás amivel kiegészítettem a scriptet.  :no:
Lényege annyi lenne, hogy ha van háza az illetõnek és feljön szeróra, beírja /spawn és ott fog pl. halál után lespawnolni.
 
CMD:spawn(playerid, params[])
{
    if(GetPVarInt(playerid,\"haz_spawn\") == 0) return SetPVarInt(playerid, \"haz_spawn\", 1), SCM(playerid, COLOR_LORANGE, \"Ház spawn bekapcsolva.\");
    if(GetPVarInt(playerid,\"haz_spawn\") == 1) return SetPVarInt(playerid, \"haz_spawn\", 0), SCM(playerid, COLOR_GREY, \"Ház spawn kikapcsolva.\");
    return 1;
}
public OnPlayerSpawn(playerid)
{
    new hazacska = MelyikHaz(playerid);
    if(hazacska)
    {
        if(GetPVarInt(playerid,\"haz_spawn\") == 1)
        {
            SetPlayerPos(playerid, hInfo[hazacska][kX], hInfo[hazacska][kY], hInfo[hazacska][kZ]);
            SetPlayerInterior(playerid, hInfo[hazacska][interior]); SetPlayerVirtualWorld(playerid, hInfo[hazacska][iD]);
            hazban[playerid] = 1; mhazban[playerid] = hInfo[hazacska][iD];
            kx[playerid] = hInfo[hazacska][X]; ky[playerid] = hInfo[hazacska][Y]; kz[playerid] = hInfo[hazacska][Z];
        }
    }
    return 1;
}

 
Ha így hagyom a scriptet nem csinál semmit spawnoláskor.
Ha kiszedem az if(hazacska) -t akkor bebugol, és nem a ház pozícióhoz hanem valami farmra rakja a playert.
Ez pedig a \'MelyikHaz\' visszacsatolás:
(benne volt alapból)
 
stock MelyikHaz(playerid)
{
    for(new i;i<MAX_HOUSES;i++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 1.0, hInfo[X], hInfo[Y], hInfo[Z])) return i;
    }
    return -1;
}

 
Már mindent próbáltam és nem sikerül.  :confused:
Köszönöm!
#5
Segítségkérés / Bugos /report
2013. június 14. - 20:07:35
Hali, megpróbáltam kiszedni a ladmin report-ból az ID-t (hogy csak szöveget lehessen küldeni) de bugos, mert ha szóközt írok a jelentésbe akkor sokszor eltûnik a szöveg eleje. Vagy hiányosan írja ki.
 
dcmd_report(playerid,params[])
{
    new tmp[256], Index; tmp = strtok(params,Index);
    if(!strlen(params)) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /report [indok]\");
    if(strlen(params) > 7)
    {
        new reporter[MAX_PLAYER_NAME], str[128], hour, minute; gettime(hour, minute); GetPlayerName(playerid, reporter, sizeof(reporter));
        format(str, sizeof(str), \"< BEJELENTÉS (%d:%d) >  %s(%d) üzeni: %s\", hour, minute, reporter, playerid, params[strlen(tmp)+1]);
        MessageToAdmins(COLOR_WHITE,str);
        SaveToFile(\"ReportLog\",str);
        format(str, sizeof(str), \"< ÜZENETEK (%d:%d) > Beküldõ: %s(%d) || Szöveg: %s\", hour, minute, reporter, playerid, params[strlen(tmp)+1]);
        for(new i = 1; i < MAX_REPORTS-1; i++) Reports = Reports[i+1];
        Reports[MAX_REPORTS-1] = str;
        SendClientMessage(playerid,yellow, \"Üzeneted sikeresen elküldve az adminoknak.\");
    } else {
        SendClientMessage(playerid,red,\"Minimum 7 karakteres szöveget kell megadni.\");
    }
    return 1;
}

 
Mi lehet a probléma? :shurg:
Köszönöm!
szerk. megoldva: felesleges a \'[strlen(tmp)+1]\'
#6
Adás-Vétel / ASUS NVIDIA 9800 GT DDR3 512 MB
2013. április 18. - 21:14:46
Eladó a fent említett, jó állapotú, sérülésmentes, strapabíró kártya.
Eladás oka: kihasználatlanság.
- 1 hónap teljes körû szervíz garancia
- dobozzal, DVI átalakítóval, extra tápkábellel
- gyári, megbízható hûtéssel (terhelt állapotban sem megy a kártya 50 fok fölé)
- személyes átvétel elõnyben (hely: megbeszélés szerint)
Adatok & paraméterek a képernyõn láthatóak.
\"width=500http://kepfeltoltes.hu/130418/41268121kep1_www.kepfeltoltes.hu_.jpg\" rel=\"external nofollow\">http://kepfeltoltes.hu/130418/41268121kep1_www.kepfeltoltes.hu_.jpg[/img]
\"width=500http://kepfeltoltes.hu/130418/256277539kep2_www.kepfeltoltes.hu_.jpg\" rel=\"external nofollow\">http://kepfeltoltes.hu/130418/256277539kep2_www.kepfeltoltes.hu_.jpg[/img]
\"width=500http://kepfeltoltes.hu/130418/kep3_www.kepfeltoltes.hu_.jpg\" rel=\"external nofollow\">http://kepfeltoltes.hu/130418/kep3_www.kepfeltoltes.hu_.jpg[/img]
\"width=415http://kepfeltoltes.hu/130418/169329439info_www.kepfeltoltes.hu_.jpg\" rel=\"external nofollow\">http://kepfeltoltes.hu/130418/169329439info_www.kepfeltoltes.hu_.jpg[/img]
\"width=418http://kepfeltoltes.hu/130418/terhelt_www.kepfeltoltes.hu_.jpg\" rel=\"external nofollow\">http://kepfeltoltes.hu/130418/terhelt_www.kepfeltoltes.hu_.jpg[/img]
#7
Segítségkérés / 0.3x textdraw készítés
2013. április 16. - 14:25:29
Hali, tudna nekem valaki segíteni abban, hogy miképp lehet olyan 2D-s textdraw \'ablakot\' létrehozni? Pl. kocsi képekkel.
Vagy leírás is jó ha akad, hogy mit merre hány méter.   :-\\
Köszönöm!
#8
Segítségkérés / Random HUN rendszámtábla
2013. április 08. - 20:30:46
Hali, hogyan lehetne kialakítani azt, hogy szerver indításkor az összes jármûn (133db) lecserélje a rendszámtáblát magyar típusúra (AAA-111), illetve ha respawnol egy kocsi akkor szintén random magyar típusú rendszámot generáljon neki?
Gondolom az OnFilterScriptInit meg az OnVehicleSpawn alá kell írogatni, de fogalmam sincs, hogy mit. :no:
(+) Nem fogja laggoltatni a szerót?
Köszönöm!
szerk.: nem muszáj random, lehet mindig ugyanaz egy jármûvön ha ez könnyebb a megvalósítás szempontjából.
#9
Segítségkérés / Globális változó?
2013. április 07. - 22:50:40
Üdv, hogyan tudnék globális, több parancsban is használható játékos-változót használni?
Pl. egy fegyver eladásnál CMD:elad 3 beírja a player és az id3 vevõnek megjelenik egy dialog list, amire ha rákattint valamelyikre, megvesz egy fegyvert.
Ekkora a vevõnek lemegy -5000, az eladónak meg +5000 pénze felmegy.
Itt ugye az a probléma, hogy a CMD:elad -nál is kell egy vevo változó, és az OnDialogResponse függvényél is ugyanaz a vevo változó.
Remélem érthetõ.  :unsure:
Kösz.
SZERK.:
Már összehoztam közbe, elvileg mûködnie kell.:
CMD:elad -hoz kell a következõ:
 
SetPVarInt(vevo, \"elado\", playerid);

 
Ez pedig az OnDialogResponse részhez:
 
GivePlayerMoney(GetPVarInt(playerid, \"elado\"), 5000); //eladó kapja a zsetont
GivePlayerMoney(playerid, -5000); //vevõtõl veszi el

 
Talán...  :yes:
#10
\'Estét, olyan kérdésem lenne, hogy pl. a
 
public OnVehicleDeath(vehicleid, killerid)

 
vagy
 
public OnVehicleSpawn(vehicleid)

 
függvényeknél hogyan lehet playerid -t hozzácsatolni? Tehát, hogy bool-t is lehessen benne használni.
Teszem azt felrobban munka közben a gépjármû, és a
munkaban[playerid] = false;

 -t akarom belerakni, hogy mivel felrobban a munkajármû nem folytathatja az adott munkát tovább.
For each-el talán vagy hogyan?
Kösz!
#11
Üdv, alapvetõen 2 kérdésem lenne.:
[1.] Miként lehetne \'lefagyasztani\' a játékost, ha mondjuk beül egy kocsiba ne tudjon kiszállni? (sima Freeze -el?)
[2.] Dialog-ba kellene (MSGBOX) kilistázni a játékos egynéhány információját. Pl. mennyi pénze van. Tud esetleg valaki példa scriptet?
Köszönöm!
#12
Segítségkérés / NPC id
2013. február 13. - 14:05:47
Hali, meg lehet valahogy oldani, hogy egy 30 slotos szerón az utolsó 3 helyre kerüljön 3db NPC? Tehát a 28-29-30-as id-t foglalja el és ne a 0-1-2-t.
/Ha igen, hogyan? Esetleg van már ilyen valakinek?/  :shurg:
Köszönöm.
#13
Módolás / Törülhetõ.
2013. január 29. - 13:45:38
Törülhetõ. Téves post.
#14
Segítségkérés / Színváltás hiba
2013. január 17. - 22:54:16
\'Estét, próbáltam összedobni egy villogást de valamiért bugos. Egyszer ki tudom kapcsolni egyszer meg nem. Ráadásul a szín se marad meg ha kikapcsolom.
Hol rontottam el?  :cry3:
 

new bool:villog[MAX_PLAYERS];
new villogtimer[MAX_PLAYERS];
CMD:villog(playerid, params[])
{
new megjelolt, string[128], megjeloltNEV[MAX_PLAYER_NAME];
if(sscanf(params, \"d\", megjelolt)) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /villog [id]\");
GetPlayerName(megjelolt, megjeloltNEV, sizeof(megjeloltNEV));
alapszin[megjelolt] = GetPlayerColor(megjelolt);
if(villog[megjelolt] == false)
{
villogtimer[megjelolt] = SetTimerEx(\"szincsere\", 800, 1, \"i\", megjelolt);
        format(string,sizeof(string), \"Bekapcsoltad %s -nak/nek a villogást.\", megjeloltNEV);
SendClientMessage(playerid,COLOR_GREEN,string);
villog[megjelolt] = true;
}
else if(villog[megjelolt] == true)
{
KillTimer(villogtimer[megjelolt]); SetPlayerColor(megjelolt, alapszin[megjelolt]);
format(string,sizeof(string),\"Kikapcsoltad %s -nak/nek a villogást.\", megjeloltNEV);
        SendClientMessage(playerid,COLOR_RED,string);
        villog[megjelolt] = false;
}
return 1;
}
forward szincsere(playerid);
public szincsere(playerid)
{
if(villog[playerid] == false)
{
SetPlayerColor(playerid, 0x0000BBAA);  //kék
    villog[playerid] = true;
} else {
    SetPlayerColor(playerid, 0xFF0606FF);  //piros
    villog[playerid] = false;
}
return 1;
}
#15
Rossz helyre nyitottad. (Segítségkérés alfórum --> Script kérésekhez írd)
#16
\"Téma lezárva\" bal alsó sarok.
#17
Hali, nem nagyon találtam arra vonatkozóan információt, hogy hogyan lehet például az alábbi kikötéseket belevinni inputba.
Hallottam valami stren(?) vagy strval(?) vagy mirõl amivel meglehetne csinálni, de nem vágom pontosan.  :shurg:
Sima átutaláson dolgozok, és ahhoz kellene néhány \'if\' kikötés.
- ha a szöveg kisebb, mint 4 vagy nagyobb, mint 8 -> hiba üzenet
- ha nem ír be semmit az input-ba -> hiba üzenet
- ha nincs fent a játékos ID akinek küldeni szeretné -> hiba üzenet
- ha ID megadásnál szám helyett betût ír be az inputba -> hiba üzenetet
- ha 30-nál nagyobbat ír be az ID-hez -> hiba üzenet, mivel max 30 játékos lehet a szerón így felesleges ID 60-hoz utalást küldeni
Nagyjából ennyi lenne. Köszönöm elõre is!
#18
Segítségkérés / Dialog report
2013. január 14. - 11:33:43
Üdv, át tudná ezt nekem valaki írni / alakítani Dialog-ra? Vagy leírni, hogy mit merre alakítsak.
Egyszerûen sehogy nem megy, nem vágom ezt az imputtext dolgot.  :-[
(Ladminból van)
 
dcmd_report(playerid,params[]) {
    new reported, tmp[256], tmp2[256], Index;      tmp = strtok(params,Index), tmp2 = strtok(params,Index);
    if(!strlen(params)) return SendClientMessage(playerid, red, \"Használat: /report [játékos id] [indok]\");
reported = strval(tmp);
if(IsPlayerConnected(reported) && reported != INVALID_PLAYER_ID) {
if(PlayerInfo[reported][Level] == ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,\"HIBA: Ezt az admint nem jelentheted fel!\");
if(playerid == reported) return SendClientMessage(playerid,red,\"HIBA: Magadat nem jelentheted fel!\");
if(strlen(params) > 7) {
   new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[128], hour,minute,second; gettime(hour,minute,second);
   GetPlayerName(reported, reportedname, sizeof(reportedname));   GetPlayerName(playerid, reporter, sizeof(reporter));
   format(str, sizeof(str), \"||Új bejelentés||  %s(%d) feljelentette %s(%d)-t Indok: %s |@%d:%d:%d|\", reporter,playerid, reportedname, reported, params[strlen(tmp)+1], hour,minute,second);
   MessageToAdmins(COLOR_WHITE,str);
   SaveToFile(\"ReportLog\",str);
   format(str, sizeof(str), \"Feljelentés(%d:%d:%d): %s(%d) feljelentette  %s(%d)-t Indok: %s\", hour,minute,second, reporter,playerid, reportedname, reported, params[strlen(tmp)+1]);
   for(new i = 1; i < MAX_REPORTS-1; i++) Reports = Reports[i+1];
   Reports[MAX_REPORTS-1] = str;
   return SendClientMessage(playerid,yellow, \"A feljelentésed elküldve az adminoknak!\");
} else return SendClientMessage(playerid,red,\"HIBA: Nem írtál indokot.\");
} else return SendClientMessage(playerid, red, \"A játékos nincs csatlakozva\");
}

 
Köszönöm szépen!
#19
Segítségkérés / Benzin script (player) hiba
2013. január 11. - 23:30:37
Üdv, az alábbi benzin scripthez hozzáraktam, hogy ha kifogy a benzin (0%) akkor automatikusan kikapcsol a motor.
Felmentem szerverre egyedül, prímán mûködött. Viszont feljött még egy player, neki nem mûködött. Hogy is van ez? :no:
 
forward SubFuel();
public SubFuel()
{
    new i;
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new veh = GetPlayerVehicleID(i);
    while (i != GetMaxPlayers())
    {
        if (IsPlayerInAnyVehicle(i))
{
    new string[128];
    if(Benzin[GetPlayerVehicleID(i)] <0) Benzin[GetPlayerVehicleID(i)] = 0;
    if(IsPlayerInAnyVehicle(i))
    {
        Benzin[GetPlayerVehicleID(i)]-=1;
        format(string, 128, \"Benzin:       %d%%\", Benzin[GetPlayerVehicleID(i)]);
        TextDrawSetString(Fuel, string), TextDrawShowForPlayer(i, Fuel),
        TextDrawShowForPlayer(i, BlackBox),
        TextDrawTextSize(Moving, (354.0 - (Benzin[GetPlayerVehicleID(i)] / DIVBY)), 0.000000),
        TextDrawShowForPlayer(i, Moving);
    }
    if (Benzin[GetPlayerVehicleID(i)] < 1)
    {
        Benzin[GetPlayerVehicleID(i)] = 0;
        GameTextForPlayer(i, \"~n~~n~~n~~n~~n~~n~~n~~r~Kifogyott az üzemanyag!\", 4000, 3);
        GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
        SetVehicleParamsEx(veh,false,lights,alarm,doors,bonnet,boot,objective);
    }
}
else
{
        TextDrawHideForPlayer(i, Fuel),
        TextDrawHideForPlayer(i, BlackBox),
        TextDrawHideForPlayer(i, Moving);
}
++i;
    }
    return 1;
}

 
Én erre  \"while (i != GetMaxPlayers())\"  tippelnék...
Köszönöm!
#20
Üdv, mivel lehetne lementeni, ellenõrizni azt, ha egy játékos börtönben van és kilép szeróról majd visszajön akkor visszategye õt? (és az ideje is megmaradjon mikor visszament)
Bool-al próbáltam de az kilépésnél azt hiszem átvált 0-ra...
Ladmin4v2-ben meg nem láttam ilyen funkciót.
Köszönöm!