Ü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 / Checkpoint
« Dátum: 2011. április 10. - 16:44:50 »
Nem hiszem hogy lehetséges checkpoint-ot rátenni egy jármûre esetleg ha az épp nem egy object, ami látszik a térképen.
Próbálkozz a SetVehicleParamsEx  objective részével.
Az látszik a jármûvön és a térképen is, csak nem piros.
Vagy tegyél bele egy npc playert és a színét állítsd pirosra.

1967
Segítségkérés / Hiba a kocsilekérõben
« Dátum: 2011. április 10. - 16:36:43 »
Idézetet írta: Epsilon date=1302433190\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7444\" data-ipsquote-contentclass=\"forums_Topic


 

for(x = 0; x < 212; x++)
{
      format(string,64,\"/%s\", VehicleNames
  • );

}

 
De fogalmam sincs milyen kód akar ez lenni. a fordító két jel felcserélése miatt reklamált.
)};   helyett ); }
 
Vehiclename (Infernus,bullet)  -> parancs: /infernus, /bullet
 
[/quote]
Így se értem mindegy.   :D Neked meg nem kell leírnom hogy ebben a kódban mekkora *****ság van.
De azért mégis for ciklus 0 tól 211-ig majd a format függvény segítségével beágyazzuk a string deklarációba a VehicleNames adat tömb adatait egyesével de mindig felülírással, a végeredmény meg az lesz hogy a string tartalma a VehicleNames[211] lesz.
DareDevil miért nem írod le pontosan hogy mit is akarsz csinálni?
A második hsz-ed után lehetett kivenni hogy te arra készülsz hogy olyan parancsot gyárts amelyik segítségével jármûvet lehet lekérni, jármû modelid (/v 411) vagy jármû név (/v infernus) beírásával.

1968
Segítségkérés / Hiba a kocsilekérõben
« Dátum: 2011. április 10. - 12:16:16 »

for(x = 0; x < 212; x++)
{
      format(string,64,\"/%s\", VehicleNames
  • );

}

 
De fogalmam sincs milyen kód akar ez lenni. a fordító két jel felcserélése miatt reklamált.
)};   helyett ); }

1969
SA-MP: Szerverfejlesztés / Score Vétel
« Dátum: 2011. április 08. - 19:26:48 »
Valóban sokkal egyszerûbben meg lehet oldani íme megírtam én is egy változatot, és nem teszteltem bízok annyira magamban hogy mûködik gond nélkül, persze a túlzott mennyiségû használt filterscript esetében 99.9% az esély arra hogy a beírt parancs nem mûködik.
(ezért javaslom meglévõ gamemódba helyezni annak aki használni kívánja, egyetlen egy parancsért egy darab filterscript az túlzás)
Íme:
 

#include <a_samp>
#define DIALOG_SCORE   6678
public
OnFilterScriptInit()
{
print(\"Készítõ neve és funkciójának megfelelõ filterscript név.\");
return 1;
}
public
OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(\"/score\", cmdtext, true) == 0)
{
ShowPlayerDialog(playerid, DIALOG_SCORE, DIALOG_STYLE_LIST, \"Pont vétel:\",\"\\
1 pont [10000$]\\n\\
2 pont [20000$]\\n\\
3 pont [30000$]\\n\\
4 pont [40000$]\\n\\
5 pont [50000$]\\n\\
6 pont [60000$]\\n\\
7 pont [70000$]\\n\\
8 pont [80000$]\\n\\
9 pont [90000$]\\n\\
10 pont [100000$]\",
\"Megvesz\", \"Mégse\");
return 1;
}
return 0;
}
public
OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_SCORE)
{
if(response)
{
   new
      price = 10000 * (listitem + 1), // tároljuk a price változóban azt hogy mennyibe kerül a kiválasztott score ez esetben szerencsénk van mivel 10 ezresenként növekszik az ára, így csak szorozni kell.
      str[64];
   if(GetPlayerMoney(playerid) < price) 
   {
      format(str, sizeof str, \"%d score pont megvételéhez  %d$ kell és neked nincs ennyi!\", (listitem + 1), price);
      SendClientMessage(playerid, 0x0000FFAA, str);
   } else {      
      SetPlayerScore(playerid, GetPlayerScore(playerid) + listitem + 1);
      GivePlayerMoney(playerid, -price);
      format(str, sizeof str, \"Vettél %d pontot magadnak. %d$ -ért\", listitem + 1, price);
      SendClientMessage(playerid, 0xFF0000FF, str);
   }
}
return 1;
}
return 0;
}

 
Természetesen ez esetben óriási szerencse hogy a score pontok ára 10 ezres nagyságrendekkel növekszik, így csak szorozni kell.
Viszont ez nem azt jelenti hogy csak így lehet megoldani mint látni lehet sokaknak más elképzelése van, csak egy ilyen egyszerû dolog esetében is.
Kicsit átláthatóbb formába próbáltam tenni, emellett minden meglévõ tulajdonságot megõrizni is, (kevés pénz esetében kiírni mennyibe kerül a kiválasztott score, tájékoztatni a játékost arról mit is vett meg és mennyiért) remélem sikerült.
Edit: jha igen és a biztató szavak, csak így tovább lesz ez még jobb is.  :D

1970
Segítségkérés / Score vétel
« Dátum: 2011. április 08. - 16:40:24 »
Idézetet írta: Mambo date=1302272915\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7400\" data-ipsquote-contentclass=\"forums_Topic
azt kérte, igen.
 
Ennél egyszerûbb dolgot.  :D
Tess:
 

COMMAND:score(playerid, params[])
{
ShowPlayerDialog(playerid, 12345, DIALOG_STYLE_LIST, \"Score\", \"1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9\\n10\", \"Hozzáad\", \"Mégse\");
return 1;
}
public
OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 12345)
{
if(response)
{
   SetPlayerScore(playerid, GetPlayerScore(playerid) + listitem + 1);
}
}
return 1;
}

 
De 95 % arra, hogy nem így gondolta. :amazed:

1971
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?

1972
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.

1973
SA-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.

1974
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.

1975
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;
}

1976
SA-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>

1977
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\"

1978
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.

1979
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

1980
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]

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