Ü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 - Zsolesszka

Oldalak: 1 ... 130 131 [132] 133 134 ... 136
1966
Segítségkérés / Score vétel
« Dátum: 2011. április 08. - 16:26:00 »
Idézetet írta: KDDomi date=1302271412\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7400\" data-ipsquote-contentclass=\"forums_Topic
Hello Forumózók!
Olyat akarnék csinálni csak nem tudom hogy oldjam meg hogy ha valaki beirja /score és akor dialogba listába a pontokat 1 2 3 4 5 6 7 8 9 10-ig és hozzáadja a scoreját a mostanihoz de nem muszálj dialogba majd azt én megcsinálnám Elöre is Köszönöm
 
What?
Pontosíts kérlek ha lehetne, lista érthetõ mit adjon hozzá mihez?
Ennyi leírásból senki nem fogja tudni mit is akarsz készíteni!
Többszöri átolvasás után, arra jutottam hogy kellene egy lista amiben szerepelnek 1-tõl 10-ig a számok (dialog list) és amelyikre kattint azt hozzá adná saját maga score pontjaihoz?

1967
Segítségkérés / Túl hosszú dialog sor
« Dátum: 2011. április 07. - 20:46:54 »
Össze kell fûzni a karakterláncokat vagy strcat vagy format függvény segítségével.
A probléma abban rejlik hogy a pawn fordítónak van egy korlátja ami egy sor hosszának limitje.
Pontosan nem tudom az értékét de asszem 500, vagyis egy sorban maximum 500 karaktert írhatsz amibe beleszámítanak a szóközök is.

1968
SA-MP / Open.mp: Szerverfejlesztés / IsPlayerCheater
« Dátum: 2011. április 07. - 20:29:14 »
Hát én is látok pár szörnyûséget.  :(
Tanácsként fogadd el hogy tesztelni sosem árt, akkor nem kerülnének ki a kezed közül ennyire tré kódok.
Ezért pár apróságot leírok.
Láttam egy ilyen részt kérdezném tudod-e hogy ez mit is csinál?
 

new bool:Cheat[MAX_PLAYERS] = {false,true};

 
Ne találgass, leírom.
Ezzel a sorral létrehoztál egy bool típusú változót melynek true és false értéke lehet, \"Cheat\" néven majd ezt megsokszoroztad a MAX_PLAYERS definícióval(500), majd adtál értéket a 0 cellának false és az 1-es cellának true-t.
Tehát ha ki printelnénk a tartalmát a következõ eredményt kapnánk.
 

Cheat[0] = false;
Cheat[1] = true;
Cheat[2] = false;
Cheat[3] = false;
Cheat[4] = false;
Cheat[5] = false;
Cheat[6] = false;
...
Cheat[498] = false;
Cheat[499] = false;

 
Ebbõl már látszik hogy ennek így semmi értelme.
Itt egy kis kód ennek a mûködésének tesztelésére:
 

new
pelda[20] = { 1, 0, 2, ... };
printf(\"pelda változó kiíratása cellánként\");
for(new i; i < sizeof pelda; i++)
{
printf(\"cell: %d | %d\", i, pelda);
}

 
Akkor más, ez most tényleg jó így?
 

    for(new i; i < MAX_PLAYERS; i++)
   {
       SetTimerEx(\"OnPlayerCheat\", 2500, true, \"i\", i);
   }

 
Ezzel nem kevesebb mint 500 darab timer-t indítasz el.
Nem lenne elég ha OnPlayerConnectnél indulna el egy darab timer és OnPlayerDisconnectnél meg leállításra kerülne?
Vagy legyen egy állandó timer és a meghívott funkcióban legyen egy ciklus amely lefut MAX_PLAYERS értékig vagy még jobb ha foreach van alkalmazva.
És nézd meg azt ahogy Stricica írta meg.

1969
Segítségkérés / Jármû elõtti pozíció kiszámítása
« Dátum: 2011. április 05. - 17:12:57 »
Ezt nézd meg.

1970
Segítségkérés / Ha más valaki van a közeledben...
« Dátum: 2011. április 05. - 16:47:12 »
Kritika megengedett.  :amazed:
Látom születnek az átgondolatlan kódok.
 

   foreach(Player, i)
   {
      if(IsPlayerInRangeOfPlayer(playerid, i) && gTeam[playerid] == TEAM_ZSARU)
                     return SendClientMessage(playerid, 0xFFFFFFFF, \"Nem használhatsz parancsot rendõr közelében.\");
   }

 
Átfutási folyamat:
for ciklus a szerveren lévõ online playerid értékekkel.
 

foreach(Player, i)

 
Én kis naiv játékos beírok egy parancsot, most rendõr team tagjaként.
Hah.
Leellenõrzõm hogy más játékos közelében vagyok-e, sõt még azt is hogy saját magamhoz képest is.
 

if(IsPlayerInRangeOfPlayer(playerid, i)

 
Na igen elég közel vagyok saját magamhoz.
Akkor megnézem rendõr vagyok-e?
 

gTeam[playerid] == TEAM_ZSARU

 
Teszem mind ezt rendõrként aztán erre az jön ki, elég közel vagyok magamhoz sõt rendõr team tagja is vagyok és erre kapom ezt az üzenetet:
 
Nem használhatsz parancsot rendõr közelében.[/quote]
Írtam egy változatot tesztelni nem teszteltem, ha nem jól mûködik jelezd javítani fogom.
Mivel én se tudom milyen változót használsz ezért én is gTeam[MAX_PLAYERS] deklarációval írtam meg.
 

stock
kozelembenvanerendor(const playerid, Float:korsugar = 6.0)
{
new
Float:px,
Float:py,
Float:pz;
GetPlayerPos(playerid, px, py, pz); // Játékos pozició lekérdezés
foreach(Player, i)
{
if(i == playerid) continue;
if(gTeam == TEAM_RENDOR) // Az online játékosok közül megkeressük a rendõr teamhez tartozókat
{
   if(IsPlayerInRangeOfPoint(i, korsugar, px, py, pz)) // a versenyzõ koordináta pontjához képest (adott gömb alakú tér melynek radiusza a korsugar deklaráció) tartózkódik-e rendõr játékos
   {
      return true; // Oh igen van egy a közeledben
   }
}
}
return false;
}
COMMAND:mycmd(playerid, params[])
{
if(gTeam[playerid] == TEAM_RENDOR) return SendClientMessage(playerid, -1, \"Rendõr vagy.\");
if(kozelembenvanerendor(playerid)) return SendClientMessage(playerid, -1, \"Van rendõr a közeledben\");
//   használni kívánt parancs többi kódja..
return 1;
}

1971
SA-MP / Open.mp: Szerverfejlesztés / Autómatikus kocsi javító(letiltható)
« Dátum: 2011. április 04. - 11:48:42 »
Idézetet írta: DrAkE date=1301903857\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7267\" data-ipsquote-contentclass=\"forums_Topic
Csak annyit fûznék hozzá hogy semmi értelme olyan Timert használni ami 1 másodpercenként megjavítaná a kocsikat (tudtommal senkinek se javítaná a kocsiját, mivel a kocsijavit(playerid) prototípusban nem hiovatkoztál rá hogy melyik playeridnek a kocsiját javítsa meg, ezáltal nem javítaná mindenkinek, hacsak egy for ciklussal mindenkinek megjavítanád) mikor értelmesebben is meglehet oldani.
Itt egy jobb, kevésbé terhelõ, picivel gyorsabb verzió, tömör verzió:
 
#include <a_samp>
#include <zcmd>
#define COLOR_SIKERES 0x000080AA
#define COLOR_SIKERTELEN 0xFF0000AA
public OnFilterScriptInit() print(\" Autómatikus kocsi javító betöltve\");
public OnFilterScriptExit() print(\" Autómatikus kocsi javító kivéve\");
public OnPlayerConnect(playerid) SetPVarInt(playerid, \"javito\", 0);
public OnPlayerDisconnect(playerid, reason) SetPVarInt(playerid, \"javito\", 0);
public OnVehicleDamageStatusUpdate(vehicleid, playerid) if(GetPVarInt(playerid, \"javito\")) RepairVehicle(vehicleid);
CMD:repairletilt(playerid,params[]) // A játékos letilthatja magának
{
    if(!GetPVarInt(playerid, \"javito\")) SetPVarInt(playerid, \"javito\", 1),
SendClientMessage(playerid,COLOR_SIKERES,\"Sikeresen letiltottad az autód javítását, ha összetöröd nem javul meg!\"),
SendClientMessage(playerid,COLOR_SIKERES,\"Ha újra törhetetlenné akarod tenni: /repairenged \");
else SendClientMessage(playerid,COLOR_SIKERTELEN,\"Már le volt tiltva neked az autómatikus javítás!!!\");
return 1;
}
CMD:repairenged(playerid,params[]) // A játékos engedélyezheti
{
    if(GetPVarInt(playerid, \"javito\")) SetPVarInt(playerid, \"javito\", 0),
SendClientMessage(playerid,COLOR_SIKERES,\"A kocsid törhetetlen újra! Ha akarod hogy \'törékeny\' legyen, /repairletilt\");
else SendClientMessage(playerid,COLOR_SIKERTELEN,\"Neked eddig is engedélyezve volt a kocsi törhetetlenség!\");
return 1;
}

 

Valóban DrAkE megoldása sokkal jobb, nincs plusz felesleges timer.
Egyet felejtettetek el mivel zcmd-t használtok és filterscriptként írtátok meg.
 

Note #1: If you want to use zcmd in a filterscript, put this define before including:
 

#define FILTERSCRIPT

 

[/quote]

ZCMD
Tehát helyesen:
 

#include <a_samp>
#define FILTERSCRIPT
#include <zcmd>

1972
Segítségkérés / Itt kérdezz object ID-t!
« Dátum: 2011. április 01. - 22:06:44 »
Jó ez a topic nem akarom ezzel a hozzászólással feleslegessé tenni csak segítõ jellegû.
JernelJ által és a SA-MP team segítségével létrejött egy editor ami 0.3c-s objeceteket is kezel.
REAL MAP EDITOR
Emellett bármelyik samp object ID-t megjelenít, melyet csak az egérmutatóval és egy bal egérgomb kattintással kijelölünk.
\"mapeditormsolata.jpg\"

1973
Segítségkérés / Pawno
« Dátum: 2011. március 31. - 16:21:55 »
Érdekes a helyzet más lehetõség nem maradt küld el valakinek a fájlt hátha nála is ez a helyzet, elküldheted nekem is. Én utálom a roleplayt, emiatt nem kell félned, meg megvan a saját módom.
Ha tényleg ennyire olvashatatlan, én se megyek vele semmire.
Közben eszembe jutott:
Van még egy lehetõség notepad++, -nál
\"Kódolás\" ikont keress ott próbálgass még valamit állítani.

1974
Segítségkérés / Pawno
« Dátum: 2011. március 31. - 10:47:20 »
Pontosan milyen fájlt mentettél a másik winchesterre?
Neve, kiterjesztése, mérete? (jobb klikk, tulajdonságok)
És szedj le egy másik pawn szerkesztõ programot. (egész samp szerver pakkot amiben benne van)
Elõtte törölj minden pawn programot ami a gépeden van, majd letöltés után csomagold ki egy mappába az egész letöltött samp szervert, ezután keress egy másik helyen egy .pwn kiterjesztésû fájlt:
 
  • Jobb klikk.
  • Társítás
  • Alapértelmezett program választása..
  • Tallozás.. (megkeresed a frissen letöltött pawno alkalmazást)
  • Megnyítás
  • Ok

1975
Leírások/Útmutatók / Mapok berakása könnyedén
« Dátum: 2011. március 29. - 00:02:40 »
Idézetet írta: BigMan date=1301249694\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7142\" data-ipsquote-contentclass=\"forums_Topic
Letöltjük a MTA SA 1.0.4 programot.
 
Khm, honnan?
http://mtavc.com/
Igaz itt most már 1.0.5 van ez nem jó?
Amúgy jó kis leírás, bár számomra furcsa kifejezéssekkel tarkított.
 

Távcsõ icon // talán CTRL + F?  Keresés
Kék play icon  // talán F5?  (compile)
Hát ennyi lenne Kék play icon és mentés után és egy szerver restart ha megy vagy ha nem akkor indítás és már menni fog. // mi? mit? merre? hogyan? mikor? mi megy? és ki?
 
[/quote]

1976
Leírások/Útmutatók / Automata reklám script készítése
« Dátum: 2011. március 28. - 19:34:33 »
Idézetet írta: ChuckNorris date=1301327569\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7173\" data-ipsquote-contentclass=\"forums_Topic
Ennyi,a leírás csakis elméleti,mivel nem teszteltem le a gyakorlatban, nem tudom mûködik-e.(Fórumban írtam)
Hozzáadhatunk vagy elvehetünk híreket,semmi mást nem kell módosítani,viszont az utolsó hír után nem kell vesszõ,a többi után igen.
 
Építõ jellegû kritika következik:
A leírás szép és jó de ha van annyi idõd hogy elkészíts egy ilyen leírást akkor legalább mûködõképes formában tennéd.
Nekem volt pár percem letesztelni és már elsõ ránézésre is a léptetés funkció hibás.
Ugye 3 darab hirdetés van aminek az indexe 0, 1, és 2.
A sizeof érték darabszámot ad vissza ami 3 ebben az esetben.
 

new cReklam[][] =
{
   \"Pulyka nem Tyúk húsleves csak 40 000 Ft. a LIDL-ben!\", // index: 0
   \"Akciós FA termékeink: Rozsdamentes acél házikó,most csak 200 000 000 000 000 Ft!\", // index: 1
   \"Csodálatos STRAND helyek kiadók!Érdeklõdnia CÁPA VESZÉLY-t jelzõ tábla mellet a bódéban!\" // index: 2
};
printf(\"sizeof érték: %d\", sizeof(cReklam));
// eredmény: sizeof érték: 3

 
És most jön a léptetésre írt kód:
Ugye csak 0 1 2 indexen szerepel hirdetés tehát már eleve 2-nél nagyobb értéke nem lehet az indexként használt \"cReklamStatus\" változónak.
 

if(cReklamStatus > sizeof(cReklam))  // index nagyobb-e mint 3

 
Itt viszont azt vizsgálod hogy az indexként használt cReklamStatus értéke nagyobb-e mint 3 (ugye sizeof érték), de 3 se lehet, 3 darab hirdetés esetében, mert az indexelés 0-val kezdõdik.
Persze azt gondolná az ember hogy akkor egyszerû a megoldás.
Nem 3 ra kell vizsgálni hanem egyel kisebbre hogy ne legyen 2-nél nagyobb
 

if(cReklamStatus > sizeof(cReklam) - 1)  // index nagyobb-e mint 2

 
De te tovább nézve a dolgot így oldottad meg:
 

if(cReklamStatus > sizeof(cReklam) - 1)
cReklamStatus = 0;
else cReklamStatus++;

 
Most akkor azt gondolnánk helyesen tettük hogy azt vizsgáljuk nagyobb-e mint 2 az indexünk \"cReklamStatus\"
Mivan akkor ha az indexünk értéke 2?
Persze 2 nem nagyobb mint 2, így jön az else utáni rész, amivel máris megnöveltük az értékét 3-ra, amit szeretnénk elkerülni.
Szerintem elég lesz ennyi ha elolvasom lehet én se értem amit leírtam, kijavítottam a funkciót íme:
 

public cReklamozas()
{
   if(cReklamStatus >= sizeof(cReklam) - 1)
      cReklamStatus = 0;
   else cReklamStatus++;
   return SendClientMessageToAll(0,cReklam[cReklamStatus]);
}

 
Szándékosan nem írtam át másmilyen logikai menetre, maradjon az általad elképzelt folyamat.
Viszont a reklám szövegeken jót nevettem.  :D

1977
SA-MP / Open.mp: Szerverfejlesztés / Csak magyarok
« Dátum: 2011. március 28. - 18:09:10 »
Idézetet írta: Iceaac date=1301326228\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7097\" data-ipsquote-contentclass=\"forums_Topic


ChuckNorris Edition:
http://pastebin.com/dVxP7sNV
Nem teszteltem.
 
// Ha true dialog jelenik meg,ha true akkor kickelve lesz

 
 ;D
 
[/quote]
 
new bool:dialog = true; // Ha true dialog jelenik meg,ha true akkor kickelve lesz[/quote]
Ezen én is rágódtam egy darabig mit is akar jelenteni,
de erre a következtetésre jutottam:
Ha a dialog típusú változónak true értéket adunk akkor egy dialog panel jelenik azoknak akik nem magyarországi IP-rõl csatlakoznak, ha false értéket adunk akkor a nem Magyarországi IP-rõl csatlakozókat kickeli automatikusan.
(Ez aztán a vendég szeretet, szegény vakarhatja a fejét ugyan miért lett kidobva.)

1978
SA-MP / Open.mp: Szerverfejlesztés / IsPrime
« Dátum: 2011. március 27. - 20:50:05 »
Jó ötlet, majd lehet szánok arra is egy kis idõt, jó kis elfoglaltság lesz az is. :amazed:

1979
Segítségkérés / mi a jó szerver titka?
« Dátum: 2011. március 27. - 20:46:57 »
Hát amit én tapasztalok le kell szedni egy rakás filterscriptet meg valami rp módot és csak annyi tudás kell hogy elindítsd, már jönnek is a playerek.
Nem számít hogy akad minden nem az a lényeg megy és kész admin jogot adsz mindenkinek és már ott is ülnek a nap 24 órájából 25-öt a gép elõtt.
Valakinek olvastam sigjét:
A legkevesebb játékos azon a szerveren van amelyikben a legtöbb munka fekszik.
Sajnos ez így van :(

1980
SA-MP / Open.mp: Szerverfejlesztés / IsPrime
« Dátum: 2011. március 27. - 17:58:52 »
Idézetet írta: Jex date=1301240944\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7086\" data-ipsquote-contentclass=\"forums_Topic
nem vágom, hol hagytam le az = jelet?
és mi az a (value & 0b1)?
 


for(new i = 3; i<val;i+=2)
for(new i = 3; i<=val;i+=2)

 
Bitenkénti és össze hasonlítás.
Binary kódként minden páratlan szám elsõ bitje 1.
Itt egy szemléltetõ példa:
 

for(new i; i < 100; i++)
{
printf(\"Binary: %b | %d\", i, i);
}

 
(Egyébként hibáztam nem teszteltem negatív értékre javítva vannak.)

Oldalak: 1 ... 130 131 [132] 133 134 ... 136
SimplePortal 2.3.7 © 2008-2026, SimplePortal