Ü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 ... 69 70 [71] 72 73 ... 136
1051
Segítségkérés / Kocsi jobbrább tétele
« Dátum: 2012. április 27. - 20:02:07 »
A trigonometria nekem se az erõsségem de azt se tudom mi akar lenni ami a képen van.
Valami életszerû példa rá talán?
Most azt írod hogy a jármûvet már megfelelõ pozícióba állítja és a játékost kellene a kocsi jobb oldalára tenni?
Elsõ kérdésben meg azt vettem ki hogy a jármûveket kell jobbra tenni.
Újra átolvastam és ezt vettem ki belõle:
Valami olyasmit szeretnél hogy halad egy gépjármû egy sávban és hirtelen át dobná a másik sávba, ami tõle jobbra helyezkedik el?
Ha azt mondod hogy neked sikerült az a \"not like that\" akkor csak az elfordulási szöggel van a probléma.
Az igazság az hogy nincs ötletem hogy mire is jó ez az egész.  :angel:

1052
Segítségkérés / Kocsi jobbrább tétele
« Dátum: 2012. április 27. - 17:30:04 »
Próbáld ezt átalakítani jármûvekhez:
 
// ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ [ GetXYInFrontOfPlayer ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ // Created by Y_Less
stock
GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{
new
    Vehicle_ID = GetPlayerVehicleID(playerid),
Float:a;
if(Vehicle_ID)
{
    GetVehiclePos(Vehicle_ID,x,y,a);
    GetVehicleZAngle(Vehicle_ID, a);
} else {
GetPlayerPos(playerid, x, y, a);
GetPlayerFacingAngle(playerid, a);
}
x += (distance * floatsin(-a, degrees));
y += (distance * floatcos(-a, degrees));
}

 
Ez vissza adja elég pontosan egy jármû vagy egy játékos elõtti pozíció-t.
A jobb és bal oldali irányt meg a szög (angle) 90 vagy 270 fokkal történõ növelésével tudnád behatárolni.
Ha feltételezed hogy a 0 fok irányába nézel akkor az óramutató járásával megegyezõ irányba 90 fokra van a jobb oldal és 270 fokkal növelve van a bal oldal, 180 fokkal a hátrafelé.
Kísérletezz.  :D

1053
Leírások/Útmutatók / [Leírás]strtok (használata)
« Dátum: 2012. április 24. - 17:17:22 »
Köszönöm, említett helyesírási hiba javítva és a hangulatjel gond is.
Az strtok + (strval, floatstr) egyetlen egy integer vagy float típusú plusz paraméternél gyorsabb mint a sscanf plugin.
 
pl.:
használat : /wheater [index]
/wheater 12
A parancs megírásához strtok, strval használata javasolt.
 
[/quote]
A sscanf plugin gyorsasága a sokkal több információval rendelkezõ karakterláncok (parancsok) darabolásában mutatkozik meg.
 
pl.:
használat: /car [vehiclename/modelid] [color1] [color2]
/car infernus 124 234
A parancs megírásához sscanf plugin használata javasolt.
 
[/quote]

1054
Leírások/Útmutatók / [Leírás]strtok (használata)
« Dátum: 2012. április 23. - 23:16:16 »
Kösz.
Javítva.
Edit:
És még pár elírás is javítva.  ::|

1055
Leírások/Útmutatók / [Leírás]strtok (használata)
« Dátum: 2012. április 23. - 16:56:39 »
Idézetet írta: kurta999 date=1335183343\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"20541\" data-ipsquote-contentclass=\"forums_Topic
Szép leírás, nagyon könnyen meg lehet érteni.
Én már több, mind 3 éve scriptelek és még komolyabban a CNPC teszt scripten kívül máshol ezt nem használtam.
(Mivel kezdettõl sscanf-el kezdem, mert erre egy normális leírást sem találtam akkoriba :D)
 
Kösz, igyekeztem érthetõre írni, amúgy én is sscanf-et használok, csak van pár publikált filterscript amibe nem akartam azt használni.
(felesleges egy két parancsért egy plugin (sscanf.dll/so), ha meg lehet oldani másképp)
Így 90 százalék az esély arra, hogy még 3-4 év múlva is mûködõképes a publikált script amiben csak strtok van használva sscanf plugin helyett.  ;D

1056
Segítségkérés / Strtok
« Dátum: 2012. április 22. - 19:42:49 »
Írtam az strtok használatáról egy kis szösszenetet, ha gondolod olvasd el, hátha az én leírásom alapján könnyebben megérted használatát.
http://sampforum.hu/index.php?topic=24788.msg261637#msg261637

1057
Leírások/Útmutatók / [Leírás]strtok (használata)
« Dátum: 2012. április 22. - 19:40:39 »
Tudom létezik több száz leírás de írok egyet én is.
Az strtok nem más mint egy karakterlánc feldarabolására használatos eljárás.
A kód:
 
stock strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= \' \'))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > \' \') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

 
Használata eléggé egyszerû: (fontos megjegyezni hogy ezen verzió maximálisan 20 karakternyi karakterláncokra darabolja a bevitt adatainkat. (new result[20];)
Példaként egy parancsot használnék, legyen a parancsunk a:
 
/nem fogod használni 1 percet sem ezt a parancsot

 
Ha mi ezt beírnánk játék közben akkor ez visszahívásként megjelenne nekünk az OnPlayerCommandText cmdtext[] változójában.
 

public
OnPlayerCommandText(playerid, cmdtext[])
{
new
PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, sizeof PlayerName);
printf(\"(%d %s) - %s\", playerid, PlayerName, cmdtext);
return 1;
}

 
Miután játék közben beírtuk a parancsot, a fenti kód sorozat az azonosító számunkat(playerid) a játékosnevünket(PlayerName) és a beírt parancsunkat(cmdtext[]) kiírja konzolba és menti a server_log.txt fájlba, a következõképp:
 
(0 Zsolesszka) - /nem fogod használni 1 percet sem ezt a parancsot

 
Innen láthatjuk hogy a használt parancsot a cmdtext[] változó tárolja számunkra.
Nekünk ezt fel kell darabolni hogy feltudjuk használni minden egyes paraméterét külön, konzolban egymás alá kifogjuk íratni a parancsunk elemeit, erre használhatjuk az strtok függvényt de erre a célra több eljárás is létezik, a legismertebb és a legtöbbet használt Y_Less sscanf pluginja által biztosított sscanf( ) eljárás.
Azt tudjuk már hogy a cmdtext[] változó tárolja a parancsot.
Ezt kell nekünk strcmp-vel le ellenõriztetnünk. Amirõl még nem ejtettem szót az az hogy az strtok az a space karakter mentén darabolja parancsukat.
Ezt persze meg is lehet változtatni, de alap esetben és legtöbbet a space-t használjuk még ebben a leírásban is a szavak elválasztására használom.  :laugh:
Az strcmp-hez szokás legelsõnek feldaraboltatni strtok-kal minden bejövõ adatot amit a (cmdtext[]) tárol, mert ha nem tennénk, akkor a következõ ellenõrzést hajtaná végre, ami hamis eredményhez vezethet.
 
strcmp(cmdtext, \"/nem\", true)
strcmp(\"/nem fogod használni 1 percet sem ezt a parancsot\", \"/nem\", true)

 
A cmdtext tartalmát behelyettesítettem az strcmp-be és így láthatjuk hogy az összehasonlítás nem megfelelõ számunkra. Mert csak a legelsõ résszel kellene össze hasonlítást végeztetnünk.
 
public
OnPlayerCommandText(playerid, cmdtext[])
{
new
idx = 0,
str[20];
str = strtok(cmdtext, idx);
if(strcmp(str, \"/nem\", true) == 0)
//   if(strcmp(\"/nem\", \"/nem\", true) == 0)
{
return 1;
}
return 0;
}

 
Az strtok vissza tért nekünk a \"/nem\" karakterekkel és elmentette az (str[20];) változóba, miközben a (cmdtext[]) még mindíg tárolja számunkra a komplett parancsunkat. Így már az strcmp egyezést fog találni és megfelelõ eredményt ad vissza ami a program futását megfelelõ írányba engedi tovább.
Az idx változó pedig tárolja a space karakterek pozicióját számunkra. (az str változónak 20-as értéket adtam meg, mert felesleges nagyobb a példában, mert az strtok is 20 karakternyi értékkel tér vissza (new result[20];).
A parancsunk többi paraméterét az strtok többszöri használatával tudjuk feldaraboltatni, amit egy komplett példával szemléltetnék.
 
public
OnPlayerCommandText(playerid, cmdtext[])
{
//   cmdtext = \"/nem fogod használni 1 percet sem ezt a parancsot\";  // Ezt tartalmazza a cmdtext változó
new
idx = 0, // space karakter poziciójának tárolása
str[20]; // Az strtok által visszatért adat tárolása 20 karakternyi az strtok maximálisan annyival tér vissza ami elég szokott lenni (new result[20];)
str = strtok(cmdtext, idx); // strtok által visszatért adat str = \"/nem\"  idx = 4; (a \"/nem\" karakterlánc utáni space vagy null karakter \'\\0\' pozíciója)
if(strcmp(str, \"/nem\", true) == 0) // strcmp(\"/nem\", /nem\", true);
{
printf(\"%s idx: %d\", str, idx); // nem
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 4);
printf(\"%s idx: %d\", str, idx); // fogod
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 10);
printf(\"%s idx: %d\", str, idx); // használni
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 20);
printf(\"%s idx: %d\", str, idx); // 1
printf(\"strval: %d\", strval(str));  // 1
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 22);
printf(\"%s idx: %d\", str, idx); // percet
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 29);
printf(\"%s idx: %d\", str, idx); // sem
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 33);
printf(\"%s idx: %d\", str, idx); // ezt
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 37);
printf(\"%s idx: %d\", str, idx); // a
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 39);
printf(\"%s idx: %d\", str, idx); // parancsot
return 1;
}
return 0;
}

 
Ebbõl láthatjuk hogy az idx változónk a space karakterek pozicióját tárolja.
A pawn nyelv 0-tól számol sok mindent, ezért a per jelünk (/) a nulladik karakter.
/nem(4)fogod(10)használni(20)1(22)percet(29)sem(33)ezt(37)a(39)parancsot(49)
Remélem így már kicsit érthetõbb lesz  pár személynek, az strtok használata.

1058
Segítségkérés / RUMTIME ERROR!!!!
« Dátum: 2012. április 21. - 21:32:34 »
:D
Az runtime és nem rumtime.
Futási(run) idõben(time) keletkezett hiba. (\"futás közbeni hiba\")
A rum-ot a kocsmában mérik, vagy boltban lehet megvenni.

1059
Fórum Archívum (Témák/Fórumok) / IG Bug reporter ( Fálj alapú )
« Dátum: 2012. április 19. - 18:43:19 »
Fail: http://sampforum.hu/index.php?topic=13658.msg157308#msg157308
Letöltöttem és mit látok benne?
 
/*
Tedd/csinálj a scriptfiles mappába egy  note  nevû jegyzettömböt!
Scriptet készítette: Mr.M[aa]rK
2010/7/19
*/
#include a_samp
#define bugdialog 23
#define red            0xFB0000FF
public OnFilterScriptInit(){
print(\"\\n--==================================--\");
print(\" Bug reporter by Mr.M[aa]rK\");
print(\"--==================================--\\n\");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[]){
if (strcmp(cmdtext, \"/bug\", true)==0){
if(!fexist(\"bug.txt\")) return SendClientMessage(playerid,red,\"Nincs jegyzet fájl! Próbáld meg késöbb!\");
ShowPlayerDialog(playerid,bugdialog,DIALOG_STYLE_INPUT,\"BUG/Hibák jelentése\", \"Kérlek írd le a problémát:\", \"Elküld\", \"Mégse\");
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
if(dialogid == bugdialog && response){
    if(!inputtext[0]) return ShowPlayerDialog(playerid,bugdialog,DIALOG_STYLE_INPUT,\"BUG/Hiba jelentése\", \"Nem írtál be szöveget!\",\"Elküld\",\"Mégse\");
new string[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof name);
        new File:pos=fopen(\"bug.txt\", io_append);
//====Dátum=====
        new Year, Month, Day;
getdate(Year, Month, Day);
//====Idõ=====
new Hour, Minute, Second;
gettime(Hour, Minute, Second);
        format(string, 256, \"\\n\\r[Dátum: %02d/%02d/%d][idõ: %02d:%02d:%02d]  %s bejelentése: %s\\n\\r\",Day, Month, Year, Hour, Minute, Second, name, inputtext);
        fwrite(pos, string);
        fclose(pos);
SendClientMessage(playerid,0xFFFF00AA,\"Jelentés elküldve!\");
return 1;
}
return 1;
}

 
Kitiltás járna érte de 20 % figyelmeztetés kapsz.

1060
Archívum / [HUN] nHistory RolePlay - Egy új történet
« Dátum: 2012. április 16. - 15:14:31 »
Idézetet írta: Nocoxil date=1334516345\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"18503\" data-ipsquote-contentclass=\"forums_Topic
\"width=500http://a5.sphotos.ak.fbcdn.net/hphotos-ak-ash4/s720x720/305693_344418012282541_100001430360472_976616_652618390_n.jpg[/img]
Ha engem kérdeztek, ilyeneknek már sajnos felesleges mûködtetni a szervert...
Üdv. Nocoxil™
 
:laugh: :laugh:
Hát milyen admin mód van, hogy saját magát is kitudja tiltani (ban) az ember?

1061
SA-MP / Open.mp: Szerverfejlesztés / Teleport (Textdraw) 0.3e
« Dátum: 2012. április 15. - 10:12:38 »
[gmod]Nem akarlak megbántani de túl sokat nem módosítottál rajt. Ezért az eredeti linket is ki kellett volna tenni. Mivel kiírtad hogy leírás szerint készítetted, ezért csak a leírás linkjét teszem ki.[/gmod]
http://forum.sa-mp.com/showthread.php?t=328267

1062
Archívum / FayRPG 2.0
« Dátum: 2012. április 13. - 21:11:47 »
Idézetet írta: Indi date=1334323108\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"14205\" data-ipsquote-contentclass=\"forums_Topic
[mod]Mivel kiemelt téma, ezért 10 kerek napot vártam az elõtagra, de nem lett kirakva.Zárok!(Ha admin úgy gondolja, hogy kiemeltet nem kellene, akko nyissa meg!)[/mod]
 
Én kitettem valamit, csak ne legyen lezárva már kiemelt téma, ezt a pár témát ami kiemelésre került kitehetnéd az elõtagot te magad, jobban értesz hozzá mint én.  :D

1063
Segítségkérés / Kocsik betöltése...
« Dátum: 2012. április 13. - 20:58:24 »
Több infót \"smiley-vault-signs-078.gif\"

1064
Segítségkérés / Teleport és lassú object betöltés
« Dátum: 2012. április 13. - 20:49:52 »
Ahol lassan tölti be az objecteket ott nyomj egy F5 gombot és tartsd lenyomva majd olvasd le az \"ObjectSlotsUsed\" értékét, és írd ide.

1065
Hangszerek és előadók / Mit hallgatsz most vol. 2
« Dátum: 2012. április 13. - 19:52:13 »

Oldalak: 1 ... 69 70 [71] 72 73 ... 136
SimplePortal 2.3.7 © 2008-2026, SimplePortal