Ü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 ... 12 13 [14] 15 16 ... 136
196
Segítségkérés / TextDrawSetString, timer, format()
« Dátum: 2013. augusztus 26. - 23:35:22 »
Akkor gyakorlatilag egy olyanra lenne szükséged hogy 8 darab random kérdést adjon a játékosnak, ismétlõdés nélkül? ( ne legyen még egyszer egy olyan kérdés ami már volt.
Ami azt jelenti hogy 8 darab random érték kell számodra ami nem egyezik, hát van egy eps szkriptjében fellelt kód amit feltudnál használni erre a célra, mellesleg a poker szkriptben is alkalmaztam mivel egyszerûbb annál amit használtam.
 
stock
Randomvalue(array[], size = sizeof array)
{
new
bool:e[24] = { false, ... }; // A 24-esek helyére a létrehozott kérdések számát kell megadnod.
for(new p = 0; p < size; p++)
{
do
   array[p] = random(24);
while(e[array[p]]);
e[ array[p] ] = true;
}
}

 
Majd kell egy 8-as méretû változó melyet elküldesz ennek a funkciónak. (persze minden játékosnak külön)
 
new
     randkerdes[MAX_PLAYERS][8];
Randomvalue(randkerdes[playerid], 8);

 
Így kapni fogsz most a példában szereplõ érték szerint 8 darab -1 és 24 közé esõ számot, vagyis 0-tól 23-ig, azaz 24 darab érték közül 8-at. :D :D
Ezt tudod felhasználni a kérdések megjelenítésére.
Ha ezen változót a kérdés megválaszolása után megváltoztatod mondjuk -1-re azt már újra ellenõrizheted -1-e az értéke és ha igen nem jeleníted meg a kérdést vagy megválaszoltnak tekinted sõt példaként lehetne -1 a megfelelõ válasz -2 a nem megfelelõ válasz érték, de ez már rajtad múlik.

197
Segítségkérés / TextDrawSetString, timer, format()
« Dátum: 2013. augusztus 26. - 19:26:57 »
Nem értem, mi ez a sok változó ask1, ask2, ask3 ... ?
Mit szeretnél létrehozni, milyen második kérdés?

198
Segítségkérés / TextDrawSetString, timer, format()
« Dátum: 2013. augusztus 26. - 13:26:11 »
Az elsõ tartalmazza a szöveget amit nullával kell jelölni, a második a megoldást amit egyel (1).
 
Kerdesek[ ask1[playerid] ][ 0 ]

199
Segítségkérés / TextDrawSetString, timer, format()
« Dátum: 2013. augusztus 26. - 12:12:04 »
Valószínû ez nem kell oda mivel az egész karakterláncot szeretnéd megjeleníteni nem egy betût.
Kerdesek[ask1[playerid]][1]
Ui.:
De ez csak tipp mivel nem látom a kérdésekkel létrehozott tömböt.

200
Segítségkérés / tárgy hozzá adás majd elvétele![javítva]
« Dátum: 2013. augusztus 26. - 11:45:48 »
Az ilyen több tárgyas dolgokat hasonlóképpen szokás megoldani mint a regisztrációs adatokat.
Tehát létrehozol egy felsorolást (enum) a tárgyak neveivel, és egy változót minden egyes játékosnak [MAX_PLAYERS] a létrehozott felsorolással.
 
enum ITEMS
{
cso,
tegla,
mag
};
new
     targyak[MAX_PLAYERS][iTEMS];

 
Majd növeled illetve csökkented az értéküket ha megszerzi vagy eladja/leteszi a tárgyat.
 

targyak[playerid][cso]++; // Egyet hozzá ad.
targyak[playerid][cso]--;  // Egyet levon.

 
Majd ellenõrzésként megkérdezed van-e nála az adott tárgyból elegendõ mennyiség.
 
if(targyak[playerid][cso] > 0) Send..( , ,\"Van nálad csõ.\");

201
Azt nem tudod megoldani, maximum akkor tudnád ha a visszatérésben az inputtext-et veszed figyelembe és nem azt hogy milyen értékkel tér vissza a listitem.
Mert meg kell írnod azt hogy mi történjen akkor ha bizonyos lista elemre kattint a játékos, ha azt már tudod hogy akkor mi történjen akkor már pontosan tudod azt is mennyi a listaelemek száma, így nem lehet véletlenszerû.
Viszont ha a listában szereplõ szövegre gondolsz, akkor az visszatérésként vissza is küldi az inputtext változóban a kiválasztott sorban szereplõ szöveget/karakterláncot.
Példaként lenne egy jármû lekérõ véletlenszerû list_item-es dialog, melynek listitem száma is random szerû és a jármûvek típusa is.
Akkor akármelyikre kattint akkor az OnDialogResponse alatt az inputtext vissza adja a jármû nevét így létre tudod hozni a megfelelõ jármûvet számára. Akármelyiket választja a véletlen sorrendben felsorolt jármûvek közül, mert hát nem a listitem-et használod hanem a sorban szereplõ karakterláncot (inputtext).
Ui.:
Lehet kicsit bonyolultnak tûnik így leírva( az én fogalmazásommal meg fõleg :D ), de ha megérted akkor már nem lesz az.

202
Segítségkérés / code fordítás zcmd->strcmp(cmd-re
« Dátum: 2013. augusztus 24. - 16:05:38 »
Idézetet írta: TengeriMalac date=1377349048\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"41814\" data-ipsquote-contentclass=\"forums_Topic
lassabb, bonyolultabb, nem mûködik vele az sscanf.. minek neked strcmp? o.O
 
Miért nem mûködik vele a sscanf?
A sscanf bármilyen karakterláncot képes feldarabolni a megadott karakter/-ek mentén (általában szóköz).

203
Segítségkérés / CP Keveredés
« Dátum: 2013. augusztus 22. - 22:30:44 »
Nem lehet túl bonyolult a hiba, csak a logikáját nem érted.
Használj információ megjelenítést (hiba keresést / debug) hogy lásd mi történik a szkriptedben és az alapján talán rájössz mi a hiba és talán ki is tudod javítani.
Egyébként elég nehéz sõt szinte lehetetlen kettõ munkát elvállalni egyszerre mivel csak egy checkpoint jeleníthetõ meg egy idõben.
 
public OnPlayerEnterCheckpoint(playerid)
{
new
    str[128];
format(str, sizeof str, \"Út: %d, Kuka: %D\", UttJob[playerid], KukaJob[playerid]);
SendClientMessage(playerid, -1, str);
if(UttJob[playerid] == 1){ ........

204
Segítségkérés / string hiba
« Dátum: 2013. augusztus 22. - 14:25:35 »
Lekérni lekéred a jatekosid nevét:
 
                        new nev2[64];
                        GetPlayerName(jatekosid,nev2,sizeof(nev2));

 
Csak nem használod, és nem a megfelelõ változót írtad be a format eljáráshoz!
 
format(indok,64,\"<Szerver>%s kickelte %s-t. Indok: %s\",nev, nev2, indok);

205
Segítségkérés / Ékezetes szöveg kisbetûssé alakítása
« Dátum: 2013. augusztus 21. - 12:15:15 »
Ez egy érdekes dolog egyébként, az egész az írásjelek/betûk értékén alapul.
Nézd meg az ascii táblázatot:
\"asciifull.gif\"
Látni fogod miért is 32-t kell hozzá adni.
65 A
97 a
Ha megnézed a második táblát akkor látni fogod miért nem mûködik az ékezetes karaktereknél.
\"extend.gif\"

206
Segítségkérés / foreach és az iterátor használata, pontosan mi a légyege?
« Dátum: 2013. augusztus 20. - 08:33:17 »
Pedig leírtad a lényegét. (nem légyegét :D)
Alapjában véve egy for ciklus, viszont nem csak egymás utáni értékeket futtat le.
Ha megadod neki a következõ számsort 2, 6, 12, 23 akkor 4 szer fut le és ezeket az értékeket adja a változónak, egy sima for ciklussal ezt nem tudod megvalósítani.
A játékosok illetve az npc-re azért nem kell létrehoznod mert ezek már létre lettek hozva a függvénykönyvtárban, így már csak alkalmaznod kell, másra azért kell létrehoznod mert nincs létrehozva, sajnos a készítõje nem tudja hogy te még mire szeretnéd használni így nem hozott létre több Iterator-t a Player, Bot, Character,-en kívül.
 
new
       Iterator:Player<MAX_PLAYERS>;
new
       Iterator:Bot<MAX_PLAYERS>,
       Iterator:Character<MAX_PLAYERS>;

 
Szerintem nincs különbség a kettõ közt, mindegy melyik megoldást használod.
Tehát gyakorlatilag a lényege annyi hogy egy olyan for ciklust hozhatsz vele létre ami képes olyan ismétlõdéssel mûködni, ami nem csak meghatározott értéknöveléssel fut le (1++), hanem olyan értékekkel amiket megadsz neki.

207
Segítségkérés / Objectek betöltésének távolsága
« Dátum: 2013. augusztus 18. - 20:22:43 »
Másik funkciónál tudod azt állítani:
 
native CreateDynamicObjectEx(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:drawdistance = 0.0, Float:streamdistance = 200.0, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);

 
Ott van amit keresel drawdistance, annyi van hogy át kell írnod az objecteket erre a funkcióra.
Edit:
A sima CreateObjectnél csak streamdistance van, streamer plugin verzió 2.6.1:
 
CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0);

208
Nem is értem miért csodálkozol rajt.
Egy sort illeszt be az insert into a példádban, miért is kellene több értéket mutatni a cache_affected_rows-nak?
Próbáld így:
 
INSERT INTO tabla (mezo1, mezo2, ...) VALUES
(\'adat11\', \'adat21\', ...),
(\'adat21\', \'adat22\', ...),
(\'adag31\', \'adat32\', ...);

 
Átírva:
 
INSERT INTO players (name,pass,regip) VALUES 
(\'Béla\',\'123\',\'127.0.0.1\'),
(\'Aladár\',\'1234\',\'127.0.0.2\'),
(\'László\',\'12345\',\'127.0.0.3\');

 
Itt már elméletileg 3-as értéket kellene visszaadnia.

209
Segítségkérés / Warnol a textdraw
« Dátum: 2013. augusztus 18. - 09:45:44 »
Kettõ kicsit más elven mûködõ texdrawot próbálsz együtt használni azért írja ezt a hibát.
Tehát kettõ van és mindegyikhez tartozik egy elõtag ami megkülönbözteti a hozzájuk alkalmazható többi textdraw eljárást:
Text:TextDrawCreate(..
PlayerText:CreatePlayerTextDraw(..
Te a kettõt próbálod keverni ami nem is fog mûködni és ezért jelez ilyen hibát, ha törlöd az elõtagot a pawn nem jelez hibát de nem fog mûködni.
Nyisd meg az ( a_samp.inc )-t 140. sortól látod a a TextDrawCreate és alatta a hozzá alkalmazható eljárásokat.
A másikat az ( a_player.inc ) fájlban találod a 135. sortól.
Ne keverd a kettõ eljárást egymással mivel nem kombinálható, ezért is más az elõtag elõttük (Text: , PlayerText:).

210
Mentsd sima számként.
Ha szeretnéd esetleg kiíratni a hexadecimális értéket üzenetként, akkor:
 
printf(\"0x%x\", int);

 
Edit.:
Sõt az is elõfordulhat ha számként adod meg az értéket mysql-nek és az adatsor hex-nek van megadva lehet át is alakítja gond nélkül.

Oldalak: 1 ... 12 13 [14] 15 16 ... 136
SimplePortal 2.3.7 © 2008-2026, SimplePortal