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

Oldalak: 1 ... 26 27 [28] 29 30 ... 121
406
Szkript kérések / Automata hostnév váltó
« Dátum: 2015. május 28. - 15:14:08 »
Idézetet írta: Nátha date=1432814143\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"54511\" data-ipsquote-contentclass=\"forums_Topic


de lehet egy adott verzióra zárni   :)
 
Hogy \"zárod\" egy adott verzióra?
A timer és a SendRconCommand szinte a legelső SAMP verzióktól megtalálhatók és az összes verzió értelmezi a kódot.
 
[/quote]
le lehet kérdezni a szerver verzióját és így kódban meg lehet adni, hogy csak egy bizonyos verzióval működjön...
igaz értelme nem sok van, de lehetséges...

407
Segítségkérés / Felvono próbléma
« Dátum: 2015. május 28. - 09:00:29 »
Tesztelni nem tudtam, majd írd meg milyen :)
 
#include <a_samp>
#define NUM_SHIP_ROUTE_POINTS   2
#define SHIP_OBJECT_ID          5837 // pirate ship
#define SHIP_DRAW_DISTANCE      800.0
forward StartShipTimer();
forward MoveShip();
// Hajó Object
new ShipObject;
// Hajó aktuális útvonal
new ShipRoute;
// Útvonal adatszerkezet
enum RouteData
{
Float:Pos[3],
Float:Rot[3],
Float:Speed,
StopTime
};
// Útvonal Adatok
new Float:ShipRoutePoints[NUM_SHIP_ROUTE_POINTS][RouteData] =
{
// 0
{
    // Pos
{-2102.3003, -2226.0457, 33.7934},
// Rot
{-0.0400, 0.0000, -219.9600},
// Speed
40.0,
// StopTime (millisec)
30000
},
// 1
{
    // Pos
{-2279.5198, -1818.1901, 484.2934},
// Rot
{-0.0400, 0.0000, -219.9600},
4.0,
// StopTime (millisec)
30000
}
};
// Amikor betöltődik a script
public OnFilterScriptInit()
{
// Hajó létrehozása
ShipRoute = 0;
    ShipObject = CreateObject(SHIP_OBJECT_ID,ShipRoutePoints[shipRoute][Pos][0],ShipRoutePoints[shipRoute][Pos][1],ShipRoutePoints[shipRoute][Pos][2],ShipRoutePoints[shipRoute][Rot][0],ShipRoutePoints[shipRoute][Rot][1],ShipRoutePoints[shipRoute][Rot][2],SHIP_DRAW_DISTANCE);
// Hajó időzítő indítása
StartShipTimer();
return 1;
}
// Amikor kitöltődik a script
public OnFilterScriptExit()
{
DestroyObject(ShipObject);
return 1;
}
// Amikor megállt egy tárgy
public OnObjectMoved(objectid)
{
// HA a mozgatott tárgy a Hajó
if(objectid == ShipObject)
{
    // Hajó időzítő indítása
    StartShipTimer();
}
return 1;
}
// Hajó mozgatása
public MoveShip()
{
// Következő útvonalra ugrás
    ShipRoute++;
// Ha végig ment akkor újra kezdi
if(ShipRoute >= NUM_SHIP_ROUTE_POINTS) { ShipRoute = 0; }
// Hajó mozgatása
MoveObject(ShipObject,ShipRoutePoints[shipRoute][Pos][0],ShipRoutePoints[shipRoute][Pos][1],ShipRoutePoints[shipRoute][Pos][2],ShipRoutePoints[shipRoute][speed],ShipRoutePoints[shipRoute][Rot][0],ShipRoutePoints[shipRoute][Rot][1],ShipRoutePoints[shipRoute][Rot][2]);
return 1;
}
// Hajó időzítő indítása
public StartShipTimer()
{
// HA NEM kell állnia
if(ShipRoutePoints[shipRoute][stopTime] == 0)
{
    // Hajó mozgatása
    MoveShip();
}
// HA állnia kell
else
{
    // Állás után Hajó mozgatása
       SetTimer(\"MoveShip\",ShipRoutePoints[shipRoute][stopTime],false);
}
}

408
Segítségkérés / Mit jelent "pazarlóan" megírni egy játékmódot?
« Dátum: 2015. május 27. - 13:45:26 »
erőforrásnál:
- 256 cellás tömbök
Chat max 128 karaktert jelenít meg, szóval nagyrészt felesleges!
De pl amikor 8-10 karaktert raknak bele oda is 256 cellát hoznak létre, mert úgy szokták meg.
pl:
 
format(string,sizeof(string),\"%s kinyitotta a kocsiját. (Jármű: %d)\",name,vehid);

 
\" kinyitotta a kocsiját. (Jármű: )\" = 33
name = 20 (max hosszal számolva!)
vid = 4 (2000-es limit mellett!)
szöveg végi \\0 = 1
szóval: 33+20+4+1=58
 
new string[256];
//helyett:
new string[58];

 
Annyi cellát hoznék létre amennyire tényleg szükség van.
- 30-50-100 slotos szerveren 1000x futó ciklusok (MAX_PLAYERS)
Elég lenne egy 30 slotos szerveren 0-29-ig futni, de a legjobb az lenne ha mondjuk 10 játékos van fent (pl: 0-9 ID akkor 9-ig futna, ha 0-13 között vannak az ID-k akkor 13-ig, szóval a legnagyobb ID-jú játékosig)
Újra kell definiálni a MAX_PLAYERS-t SLOT számra és a mód/script indulásnál ellenőrizni, hogy a slot nagyobb e mint az új érték...
És itt megemlíteném még a MAX_VEHICLES és a többi sokáig futó ciklust...házaknál, üzleteknél...
Ezeknél is el lehetne tárolni az utolsó ID-t...
Én pl amibe utoljára belekezdtem mód abban már az első és az utolsó ID + az első \"lyukas\" ID is el volt tárolva, hogy sebességet nyerjek...persze memóriát foglalok, de a processzort kímélem...
- Több azonos ciklus egymás alatt, nem végig gondolt kód
Arra gondolok, hogy 3x egymás alatt végig megy az összes játékoson...GFRP-ben találkoztam olyan kóddal, hogy 3-4x volt egymás alatt az összes játékoson végig haladó ciklus
Egy ciklusba kellene rakni
- Sok időzítő
Ez egyértelmű szerintem, ami sokszor kiváltja, hogy pl OnPlayerConnect alatt indul időzítő a játékosnak, DE SEHOL nincs KillTimer...tehát minden loginnál SetTimer, fut a szerver leállásáig...
Itt vagy KillTimer-el kell leállítani az időzítőt, vagy nem kell annyit indítani!
- Több if egymás alatt return nélkül
Parancsnál ha valaki ezt rosszul használja akkor végig ellenőrzi az összes parancsot minden parancs beírásánál
 
if(...)
{
// kód, végén nincs return!
}
if(...)
{
// kód, végén nincs return!
}
if(...)
{
// kód, végén nincs return!
}

 
Van amikor erre van szükség! Csak sokszor mondjuk dialog id-kat látok így.
Itt else if-et ajánlom, vagy a return használatát
- Többször lekérdezett adat
Mondjuk van egy CountPlayerHouses függvény ami végig megy az összes házon és összeszámolja a játékos házainak számát
 
for(new i = 0; i < CountPlayerHouses(playerid); i++)

 
Legyen mondjuk 500 ház és legyen a játékosnak 3 háza: 1500x fut le a kód
Ciklus előtt kérdezzük le:
 
new count = CountPlayerHouses(playerid);
for(new i = 0; i < count; i++)

 
Ez még fokozható, ha végig megy 100 játékoson és mellette átlagban lefut 500x a CountPlayerHouses
 
- Felesleges kódok

 
Tegnap egy példában olyannal találkoztam, hogy GetPlayerName-el lekérdezte a játékos nevét egy tömbbe aztán a következő sorban format-al felülírta, de nem használta a saját értékét a formázás során, szóval feleslegesen kérte le a nevet.
Ezeket mellőzni
- SQL queryk
Bonyolult SQL query-k amiket egyszerűbben is meglehetne oldani.
Többször lekérdezni az adatokat, akár egy táblából le lehetne kérdezni egy query-ben azt 4 helyen kérdezi le külön szedve.
Query-k optimalizálása ajánlott
Hirtelen ezek jutottak eszembe...
\"jó lesz az úgy\" hozzáállás nem magyar mentalitású! a hanyag, vagy épp másra koncentráló programozók is vétenek ilyeneket...például egy német scripter ismerősöm csinált egy HQ-t és a parancsot úgy csinálta meg, hogy mindenki tudta nyitni a kaput, nem csak a tulajok...azért így, mert nem akart 20mp rászánni arra, hogy beírja feltételnek, hogy a adminok és a tulajok tudják nyitni...
Régen GFRP-ben volt a \"Date Hack\", amikor regisztrációnál \"99/99/999999999\" szöveggel hazalehetett vágni az egész szervert. Ma már nem hiszem, hogy 1%-nál több szerveren jelen lenne ez a bug. Ez talán nem hanyagságból, hanem hozzá nem értésből, vagy nem számításból következett be. Sajnos a GFRP tele van szeméttel. Én személy szerint sok rossz szokást vettem át onnan, amiknek nagy részét szerencsére már kisöpörtem az agyamból...tanulni jó volt szép volt, de egy bizonyos szint után elég csúnya az a kód :)
Még a német scripter példájához hasonlókat is találtam már és én magam is vétettem hasonló hibákat. Ez azonnal nem mindig akkora probléma, viszont később nagy gondot okozhat...
Sokan (én is szokszor :D) az új fejlesztésekre hajtanak és nem javítják a bugokat.
 
Scripter: óóóó de jó lesz ez az új ház rendszer
Játékos: de bugos a jármű rendszer, eltűnnek kocsik
Scripter: majd az is javítva lesz
- 1 év múlva -
Scripter: óóóó de jó lesz ez az új sebzés rendszer
Játékos: de bugos a jármű rendszer, eltűnnek kocsik
Scripter: majd az is javítva lesz
...
[/quote]
A másik legnagyobb probléma amivel szembesültem már többször is (és a másik oldalával is ami szintén negatív kicsit!) amikor valaki kezdő, vagy csak nem tud megoldani egy problémát és ül a problémán vagy nem érdekli a dolog és nem is fejleszt, mert megtorpan (másik oldal amikor mindent kérdez). Sokan nem mernek kérdezni, mert \"az annyira gáz, hogy nem tudom megoldani\"...
Vagy valakinek nagy ötlete van, sokkal nagyobb ötlet mint amit megtud valósítani és nem kérdez, hanem csinál egy képességeihez mérten sokkal gyengébb kódot, mert elveszi a kedvét, hogy nem tudja olyan szinten kidolgozni...
Ajánlom figyelembe mindenkinek az aláírásomban található linkeket, nekem segítettek :) Amikor scripteltem nap mint nap használtam a wiki-t :)
Google a barátod,
Wiki a barátnőd,
Youtube a szeretőd :D

409
Segítségkérés / Mit jelent "pazarlóan" megírni egy játékmódot?
« Dátum: 2015. május 27. - 08:16:46 »
itt az erőforrás pazarlásra gondolsz? vagy az igénytelenségre, hogy \"jó lesz az úgy\" hozzáállás miatt akkora bugok és át nem gondolt dolgok vannak a kódban ami már szégyen?

410
Segítségkérés / /fix parancs probléma!
« Dátum: 2015. május 26. - 12:53:42 »
public Kocsijavito(playerid, vehicleid)

 

Javitas = SetTimer(\"Kocsijavito\", 800, true);

 
ez így nagyon nem jó...főleg ha 2x írod be akkor 2x indul el a timer...
 
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage (playerid,0xFFFF00FF,\"Ezt a parancsot, csak kocsiban használhatod!\");
{

 
itt nem kell blokkot nyitni, mivel az if-hez tartozó kód a return SendClientMessage
alakítsd át, hogy vagy 1 timer legyen és akkor abban ciklussal javítasz, vagy játékosonként timer de akkor SetTimerEx-et használd!
http://wiki.sa-mp.com/wiki/SetTimerEx

411
Segítségkérés / Névváltás parancsal
« Dátum: 2015. május 26. - 08:32:49 »
Az elején így kezded a feltételeket aztán váltasz:
 
if(FELTÉTEL)
{
// kód
}
else
{
    return SendClientMessage(...);
}

 
Itt a { felesleges, mivel szöveget írsz ki...el van írva, 1700 pontot ellenőrzöl és 1600-at írsz ki a szövegben...
 
if (APlayerData[playerid][PlayerScore] < 1700) return SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000} Sajnos 1600 pont kell ahoz hogy nevet tudj változtatni!\");
{

 
Itt van még egy elírás:
 
if(strlen(params) > 20) return SendClientMessage(playerid, -1, \"{FFFF00}Maximum 24 karakter lehet a neved!\");

 
van még pár elírás azokat nem sorolom fel...
 
GetPlayerName(playerid, NovoNick, sizeof(NovoNick));
if(sscanf(params,\"s[20]\", NovoNick)) return SendClientMessage(playerid, 0x00FF99AA, \"Hásznalat: {FF0000}/nick [másik neved]\");

 
felesleges lekérned a játékos nevét GetPlayerName-el ha a következő sorban felülírod...
Itt a helyedben az elfogadható karaktereket sorolnám fel...mert rengeteg olyan van amit az SA-MP nem fogad el...
 
for(new asd; asd < sizeof(badnames); ++asd)
{
if(strfind(NovoNick,badnames[asd]) != -1)
{
 return SendClientMessage(playerid,-1,\"{FF0000}[ERRO] Ilyen karaktert nem írhatsz a nevedbe. Mert csatlakozáskor nem fogja engedni a samp hogy csatlakozz!\");
}
}

 
Vagy simán az átnevezés visszatérési értéke alapján írnék ki egy üzenetet...
http://wiki.sa-mp.com/wiki/SetPlayerName
A háznál direkt törölted a járműveket? ha igen akkor azt a részt rakd vissza, mert töröltem...
Ezt nézd meg, hogy jó e:
 
COMMAND:nick(playerid, params[])
{
// HA NINCS bejelentkezve
if(APlayerData[playerid][LoggedIn] == false){ return SendClientMessage(playerid, -1, \"{FFFF00}[HIBA]Parancs használatához lépj be a profilodba!\"); }
// HA NEM engedélyezte a tulajdonos a névváltást
if(MudarNick[playerid] == false)         { return SendClientMessage(playerid, -1, \"{FF0000}[HIBA] Tulajdonosnak engedélyezni kell a parancs használatatát!\"); }
// HA NINCS 1700 pontja
if (APlayerData[playerid][PlayerScore] < 1700) return SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000} Sajnos 1700 pont kell ahoz hogy nevet tudj változtatni!\");
// Beírt paraméter ellenőrzés (írt e be és, hogy 4-20 karakter között van e)
new NovoNick[21];
if(sscanf(params,\"s[20]\", NovoNick) || !(4 <= strlen(NovoNick) <= 20)) return SendClientMessage(playerid, 0x00FF99AA, \"Hásznalat: {FF0000}/nick [másik neved (4-20 karakter)]\");
//
new Name[21], str[128], OldFile[45], NewFile[45];
GetPlayerName(playerid, Name, sizeof(Name));
//
format(OldFile, sizeof(OldFile), \"ServerData/Players/%s.ini\", Name);
if(fexist(OldFile) || SetPlayerName(playerid, NovoNick) != 1) { return SendClientMessage(playerid, -1, \"{FF0000}Nem lehet az új nevedre módosítani mert már használatba van vagy nem megfelelő a név!\"); }
//
format(NewFile, sizeof(NewFile), \"ServerData/Players/%s.ini\", NovoNick);
APlayerData[playerid][PlayerName] = NovoNick;
frename(OldFile, NewFile);
PlayerFile_Save(playerid);
//
format(OldFile, sizeof(OldFile), PlayerFile, Name);
if (fexist(OldFile)) { fremove(OldFile); }
//
format(OldFile, sizeof(OldFile), BankFile, Name);
if (fexist(OldFile))
{
BankFile_Save(playerid);
fremove(OldFile);
}
BankFile_Load(playerid);
//
SendClientMessage(playerid, -1, \" \");
format(str,sizeof(str),\"Nick neved sikeresen módosítva erre: {FFFF00}%s {FF0000}Relogolj és gyere fel az új nick neveddel\", NovoNick);
SendClientMessage(playerid, 0xFF0000AA, str);
SendClientMessage(playerid, 0xFFFF0000, \"3.000.000$\");
SendClientMessage(playerid, 0xFFFF0000, \"Ne felejtsd el az új nick nevedet!.\");
SendClientMessage(playerid, 0xFFFF0000, \"Szerver levont 1700 pontot a név módosításért!!\");
SendClientMessage(playerid, -1, \" \");
//
RewardPlayer(playerid, -3000000, 0);
RewardPlayer(playerid, 0, -1600);
//
new hid, bid;
// Házak
for (new h; h < MAX_HOUSESPERPLAYER; h++)
{
hid = APlayerData[playerid][Houses][h];
if (hid != 0)
{
   format(AHouseData[hid][Owner], 24, NovoNick);
   HouseFile_Save(hid);
   House_UpdateEntrance(hid);
}
}
// Üzletek
for (new b; b < MAX_BUSINESSPERPLAYER; b++)
{
bid = APlayerData[playerid][business];
if (bid != 0)
{
   format(ABusinessData[bid][Owner], 24, NovoNick);
   BusinessFile_Save(bid);
   Business_UpdateEntrance(bid);
}
}
//
MudarNick[playerid] = false;
return true;
}

 
nem tudom fordításnál lehet e hiba, mert munkahelyen vagyok, nincs pawno-m :)

412
Segítségkérés / [MySQL] Hibás parancs
« Dátum: 2015. május 20. - 07:40:41 »
`%s`

 
helyett:
 
\'%s\'

 
a mező neveknél kell `, az értékeknél \' kell

413
Segítségkérés / [MySQL] Hibás parancs
« Dátum: 2015. május 18. - 08:40:37 »
\'username\', \'int1\', \'int2\', \'int3\'

 
itt nem \' kell hanem ` vagy üresen hagyhatod...de jobb ` (ALT GR + 7) közé tenni, mert vannak olyan mező nevek amik parancsot jelölhetnek a nyelvben és akkor megint hiba lép fel...

414
RolePlay / Fallout - Role Play
« Dátum: 2015. május 08. - 13:34:55 »
Én a 3-at játszottam ki 2x is...az alap történet mint kb minden általam ismert \"komolyabb\" RPG játékban: rövid...
Maga a történet ötletes...pl a kutya meg a saját mutáns ötlet tetszik...maga a különböző ruhák is tetszenek...régi korabeli fegyverek is megtalálhatóak...te dönthetsz arról, hogy felrobbantod e az atombombát vagy sem...meg a végén, hogy hős leszel e vagy sem...multiplayer-ben is próbáltam házi szerverrel...mint az SA-MP...üres játéktér...

415
Segítségkérés / Leggazdagabb Játékos
« Dátum: 2015. május 08. - 08:45:54 »
kódot tudok adni ha ez segít :)
 
for(var i = 0; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
   money = GetPlayerMoney(i);
   // 1.
   if(money > GetPlayerMoney(gazd[0]))
   {
      gazd[2] = gazd[1];
      gazd[1] = gazd[0];
      gazd[0] = i;
   }
   // 2.
   else if(money > GetPlayerMoney(gazd[1]))
   {
      gazd[2] = gazd[1];
      gazd[1] = i;
   }
   // 3.
   else if(money > GetPlayerMoney(gazd[2]))
   {
      gazd[2] = i;
   }
}
}

416
Segítségkérés / Attacholós-editelős beírós cucc
« Dátum: 2015. május 02. - 15:29:54 »
inputtext az string és oda intet vár...
 
strval(inputtext)

 
de még ellenőrizném is, hogy nagyobb e mint 0...

417
Társalgó / Crew Hosting[FREE]
« Dátum: 2015. április 30. - 11:20:01 »
\"Webadmin\" erre a linkre mutat:
 
http://starliferpg.esy.es/37.221.209.85/webadmin

 
gondoltam jelzem ezt a hibát is...
am meg a \"román\" szöveg az egy random szöveg:
http://hu.lipsum.com/

418
Egyéb / PHP
« Dátum: 2015. április 30. - 08:10:18 »
Idézetet írta: ProPeti date=1430327371\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"54017\" data-ipsquote-contentclass=\"forums_Topic
Sziasztok!
Van egy kis gondom az e-amil küldéssel, ugyanis nem akarja elküldeni az e-mailt, viszont nem ad 1 errort se és lövésem sincs, hogy mi lehet a probléma.
Ezeket a kódokat használom:
 

    function email($to, $subject, $body){
       mail($to, $subject, $body, \'From: NonameRPG\');
    }
     
    email($register_data[\'email\'], \'Aktivációs levél\',\"
       Hello \". $register_user[\'username\'] . \"!\\n\\n
       );
     
     
    $register_data = array(
             \'felhasznalonev\'   => $_POST[\'username\'],
             \'jelszo\'          => $_POST[\'password\'],
             \'email\'          => $_POST[\'email\'],
             \'regdatum\'         => date(\'Y-m-d\'),
             \'regido\'         => date(\'H:i:s\'),
             \'email_code\'      => sha1($_POST[\'username\'] + microtime()),
          );

 
Minden más működik, mielőtt felvetné valaki, hogy nem kéri le az array-ből, mert sql-be meg beírja a dolgokat amiket kell.
Valakinek valami ötlet, hogy miért nem küldi el? :/ (Próbáltam localhostról is és 000webhostról is.)
 

email($register_data[\'email\'], \'Aktivációs levél\',\"Hello \". $register_user[\'username\'] . \"!\\n\\n);

 

. \"!\\n\\n);

 
a szöveg végén nincs \"

419
Segítségkérés / Samp Sorompó nem zárle
« Dátum: 2015. április 29. - 18:15:14 »
mivel ugyanaz a 2 koordináta...

420
Segítségkérés / Samp Sorompó nem zárle
« Dátum: 2015. április 29. - 16:36:50 »
Nyit
 
MoveDynamicObject(rkapu,-954.7742, 2710.1985, 45.7119, 5);

 
Zár
 
MoveDynamicObject(hatarkapu,-954.7742, 2710.1985, 45.7119,5);

 
Ugyanaz a koordináta...de más-más kaput mozgatsz...biztos így akartad?

Oldalak: 1 ... 26 27 [28] 29 30 ... 121
SimplePortal 2.3.7 © 2008-2024, SimplePortal