Szerző Téma: Pawno - Bytes  (Megtekintve 1356 alkalommal)

Pawno - Bytes
« Dátum: 2013. január 16. - 00:52:35 »
0 Show voters
üdv nemrég írtam 1 módot (még nincs teljesen kész) és mikor a pwn-filet executeolom akkor ezt írja ki:
 

Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
Header size:           2516 bytes
Code size:            25692 bytes
Data size:            52668 bytes
Stack/heap size:      16384 bytes; estimated max. usage=4287 cells (17148 bytes)
Total requirements:   97260 bytes

 
Ez miért van?

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Pawno - Bytes
« Válasz #1 Dátum: 2013. január 16. - 06:52:09 »
0 Show voters
Semmi gond nincs ezzel. A pawno csak összesíti a felhasznált adatmennyiséget.

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
Pawno - Bytes
« Válasz #2 Dátum: 2013. január 16. - 10:53:55 »
0 Show voters
De igen, ez baj, bár sokan nem tudják. A stack/heap az egy elõre megadott méretû tároló, és a fordító ad egy becsült értéket, hogy a moddal mennyi lesz a max használat. Nem árt 16k alatt maradni. Ne használj feleslegesen túl nagy változókat, és nem lesz gond vele :) [tapasztalat, WRP-n sem léptem túl soha, tehát nem lehetetlen..]

Nem elérhető pisti525

  • 906
  • One Shot, One Kill
    • Profil megtekintése
Pawno - Bytes
« Válasz #3 Dátum: 2013. január 16. - 14:54:47 »
0 Show voters
hát akár hiszitek akár nem nekem ezt sosem adta ki  ???

Nem elérhető krisk

  • 2380
    • Profil megtekintése
Pawno - Bytes
« Válasz #4 Dátum: 2013. január 16. - 15:03:19 »
0 Show voters
Pont errõl írtam minap egy szép kis leírást: http://sampforum.hu/index.php?topic=36790.0
Benne van mit is jelent a header, code, data, stack/heap size, meg hogy mire valók az egyes tárolók.
De bemásolom neked a te problémádra vonatkozó fejezetet:
 

A heap és a stack, stack overflow
Lehetõség van arra, hogy a stack számára elõre lefoglalt memóriát túllépjük, és beleírjunk a heap-be: ez általában nagy mennyiségû változó esetén következik be, ezt nevezzük stack overflownak.
Ez azért lehetséges, mert a heap és a stack ugyanazt a memóriaterületet kapja, de ellentétes irányban kezdõdnek: a heap egyre növekvõ, míg a stack egyre csökkenõ memóriacímeket kap.
A stack overflow tényérõl a fordító tájékoztatást ad, ez a heap/stack collision, hiszen a stack mérete a fordítás során már ismert. Jogosan felmerülhet a kérdés, hogy akkor miért nem kap az AMX automatikusan több memóriát a programhoz: ez a szám limitált. Ezt növelni a #pragma dynamic direktívával lehet.
 
[/quote]
« Utoljára szerkesztve: 2013. január 16. - 15:08:01 írta krisk »

Pawno - Bytes
« Válasz #5 Dátum: 2013. január 16. - 17:56:04 »
0 Show voters
naja ezt kerestem: \"Ezt növelni a #pragma dynamic direktívával lehet\"
De én ezt nemvágom akkor msot mit is írjak hova hogy az eltûnjön? a stringekrõl lecseréltem a [256]-ot [128]-ra de úgysem jó.
Ja meg a CMD:v meg ijenek nem mûködnek egyébként semmi hiba vagy warn nincs benne
De a zmcd-k nem mûködnek beírom a parancsot és Unknown command, meg ugye dinit használok tökéletesen megvan írva de engem zavar ez a stack/heap size akkor msot mi is a megoldás erre?
Sõt nem szarozok legyetek oly szívesek valaki javítsa kérem :)
 

#include <a_samp>
#include <dini>
#include <sscanf>
#include <zcmd>
#define COLOR_RED 0xAA3333AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_FIRE 0xAA3333AA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_RED1 0xFF0000AA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_LIGHTBLUED 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_DARKGOLD 0x808000AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_ROYALBLUE 0x4169FFAA
#define COLOR_DEADCONNECT 0x808080AA
#define COLOR_GOLD 0xB8860BAA
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_ERROR 0xD2691EAA
#define COLOR_NAVY 0x000080AA
#define COLOR_DBLUE 0x2641FEAA
#define TEAM_POLICE 0
#define TEAM_CIVIL 1
#define TEAM_GANGSTER 2
#define DIALOG_RULES 8621
 
#define POLICE -1616.1700,681.5549,7.1875,182.8109,24,50,25,100,31,300
#define CIVIL -2622.2449,1400.4200,7.1016,199.4732,0,0,0,0,0,0
#define GANGSTER -2622.2449,1400.4200,7.1016,199.4732,0,0,0,0,0,0
enum pInfo
{
Level,
Wanted,
Money,
Jail,
JailTime,
Score,
Warn,
Jogsi,
CarID,
posX,
posY,
posZ,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
new gTeam[MAX_PLAYERS];
new Text:connect;
new vCar[MAX_PLAYERS];
new file[128];
new playerColors[100] = {
0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF,0xFFD720FF,
0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,
0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,
0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF,
0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,
0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,
0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,
0x9F945CFF,0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
0x3FE65CFF
};
forward MFizetes(playerid);
main()
{
print(\"\\n----------------------------------\");
print(\" RPG mod by Filip\");
print(\"----------------------------------\\n\");
}
 
public OnGameModeInit()
{
SetTimer(\"MFizetes\", random(30000-210000), true);
SetGameModeText(\"HUN Roleplay Gamemode\");
//Sün
AddPlayerClass(280, POLICE);
AddPlayerClass(285, POLICE);
AddPlayerClass(287, POLICE);
//Civil
AddPlayerClass(208, CIVIL);
AddPlayerClass(29, CIVIL);
AddPlayerClass(2, CIVIL);
//Banda
AddPlayerClass(149, GANGSTER);
AddPlayerClass(108, GANGSTER);
AddPlayerClass(104, GANGSTER);
return 1;
}
public MFizetes(playerid) {
new rmoney = random(1500-8500);
new cmoney = random(1000-3500);
new string[128];
    if(gTeam[playerid] == TEAM_POLICE) {
        format(string, sizeof(string), \"[Fizetés]: (Rendõr munka) Kaptál: %d$-t.\", rmoney);
SendClientMessage(playerid, COLOR_GREEN, string);
GivePlayerMoney(playerid,rmoney);
    }
   
    if(gTeam[playerid] == TEAM_CIVIL) {
        format(string, sizeof(string), \"[Fizetés]: (Civil) Kaptál: %d$-t.\", cmoney);
SendClientMessage(playerid, COLOR_GREEN, string);
GivePlayerMoney(playerid,cmoney);
    }
   
    if(gTeam[playerid] == TEAM_GANGSTER) {
        SendClientMessage(playerid, COLOR_GREEN, \"[Fizetés]: Ideje rabolni kicsikét..\");
    }
    return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
switch (classid)
{
    case 1..3:
{
    gTeam[playerid] = TEAM_POLICE;
   SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid,-1990.3877,153.1194,27.5391);
     SetPlayerFacingAngle(playerid, 163.2391);
      SetPlayerCameraPos(playerid,-1992.2867,146.8129,27.5391);
    SetPlayerCameraLookAt(playerid,-2176.0840,650.8286,49.4375);
    ApplyAnimation(playerid,\"PED\",\"IDLE_CHAT\",4.0,1,1,1,1,1);
   SetPlayerColor(playerid,playerColors[playerid]);
   GameTextForPlayer(playerid, \"~y~Rendor\", 1000, 3);
}
 
case 4..6:
{
    gTeam[playerid] = TEAM_CIVIL;
   SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid,-1990.3877,153.1194,27.5391);
     SetPlayerFacingAngle(playerid, 163.2391);
      SetPlayerCameraPos(playerid,-1992.2867,146.8129,27.5391);
    SetPlayerCameraLookAt(playerid,-1990.3877,153.1194,27.5391);
    ApplyAnimation(playerid,\"PED\",\"IDLE_CHAT\",4.0,1,1,1,1,1);
            SetPlayerColor(playerid,playerColors[playerid]);
   GameTextForPlayer(playerid, \"~y~Civil\", 1000, 3);
}
case 7..9:
{
    gTeam[playerid] = TEAM_GANGSTER;
   SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid,-1990.3877,153.1194,27.5391);
     SetPlayerFacingAngle(playerid, 163.2391);
      SetPlayerCameraPos(playerid,-1992.2867,146.8129,27.5391);
    SetPlayerCameraLookAt(playerid,-1990.3877,153.1194,27.5391);
    ApplyAnimation(playerid,\"PED\",\"IDLE_CHAT\",4.0,1,1,1,1,1);
            SetPlayerColor(playerid,playerColors[playerid]);
   GameTextForPlayer(playerid, \"~y~Bunozo\", 1000, 3);
}
}
return 1;
}
public OnPlayerConnect(playerid)
{
TogglePlayerClock(playerid,1);
    new name[MAX_PLAYER_NAME];
new wtf_str[2048];
 
format(wtf_str, 2048, \"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\",
\"{FFFFFF}Üdvözöllek a szerveren.\\n\",
\"{ED4747}Ahoz, hogy elkezd a játékot el kell fogadnod a szabályzatot.\\n\",
\"{00FF00}Csatlakozáskor a kékduna rádiót hallhatod.\\n\",
\"{00FF00}Ha mégsem szólna akkor az audió beállításaidnál a rádió hangskála le van húzva.\\n\",
\"{00FF00}Ha azt szeretnéd hogy szóljon a rádió az audióbeállításoknál add fel a hangot ellenkezõ esetben vedd le.\\n\",
\"\\n\",
\"{ED4747}Szabályzat:\\n\",
\"{ED4747}• Tilos a chat-ben Spam-elni/Flood-olni. (A szerver automatikusan kidob ellenkezõ esetben max az admin.\\n\",
\"{ED4747}• Tilos cheatelni, és SA:MP-on kívül más kliens-el csatlakozni a szerverre. (Ellenkezõ esetben bannolva leszel a szerverrõl!)\\n\",
\"{ED4747}• Tilos Glitch-elni, és C-Bug-olni. (Ha észreveszi admin, akkor Figyelmeztetést kapsz.)\\n\",
\"{ED4747}• Tilos jármûvezetõi pozícióban játékost ölni. (Ez DB-nek számít, és Figyelmeztetést kapsz érte.)\\n\",
\"{ED4747}• Tilos spawnhelyen játékost ölni. (Ellenkezõ esetben az áldozat jelentése után figyelmeztetésben részesülsz.)\\n\",
\"{ED4747}• A szerveren tilos hírdetni. (Ellenkezõ esetben bannolva leszel a szerverrõl!)\\n\",
\"{ED4747}• Tilos a szerveren káromkodni, anyázni. (Ellenkezõ esetben figyelmeztetésben részesülsz.)\\n\",
\"{ED4747}• Tilos a szerveren más nemzetiségeket szidni. (Ellenkezõ esetben figyelmeztetést kapsz.)\\n\",
\"\\n\",
\"{00FF00}A szabályok alól semmi sem menthet fel senkit sem.\");
    ShowPlayerDialog(playerid, DIALOG_RULES, DIALOG_STYLE_MSGBOX, \"Szabályzat és Információk\", wtf_str, \"Elfogad\", \"Nemérdekül\");
 
//Bekapcsoljuk a rádiót
PlayAudioStreamForPlayer(playerid, \"http://www.kekduna.hu/listen_gyor.m3u\");
 
new string[128];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), \"%s csatlakozott a szerverhez. Jó játékot kíván az admincsapat.\",name);
SendClientMessageToAll(COLOR_WHITE, string);
 
    format(file,sizeof(file),\"%s.ini\",name);
    if(!fexist(file))
{
        dini_Create(file);
    dini_IntSet(file,\"Level\", PlayerInfo[playerid][Level] = 0);
    dini_IntSet(file,\"Wanted\", 0);
    dini_IntSet(file,\"Money\", PlayerInfo[playerid][Money] = 0);
    dini_IntSet(file,\"Jail\", PlayerInfo[playerid][Jail] = 0);
    dini_IntSet(file,\"JailTime\", PlayerInfo[playerid][JailTime] = 0);
    dini_IntSet(file,\"Jogsi\", PlayerInfo[playerid][Jogsi] = 0);
    dini_IntSet(file,\"Score\", PlayerInfo[playerid][score] = 0);
    dini_IntSet(file,\"Warn\", PlayerInfo[playerid][Warn] = 0);
    dini_IntSet(file,\"CarID\", PlayerInfo[playerid][CarID] = 0);
    dini_FloatSet(file, \"posX\", 0);
dini_FloatSet(file, \"posY\", 0);
dini_FloatSet(file, \"posZ\", 0);
    GivePlayerMoney(playerid, 10000);
    SetPlayerScore(playerid, 5);
}
    if(fexist(file))
    {
    new Float:x,Float:y,Float:z;
    new carid;
    PlayerInfo[playerid][Level] = dini_Int(file,\"Level\");
    PlayerInfo[playerid][Wanted] = dini_Int(file,\"Wanted\");
    GivePlayerMoney(playerid, dini_Int(file,\"Money\"));
    PlayerInfo[playerid][Money] = dini_Int(file,\"Money\");
    PlayerInfo[playerid][Jail] = dini_Int(file,\"Jail\");
    PlayerInfo[playerid][JailTime] = dini_Int(file,\"JailTime\");
    PlayerInfo[playerid][Jogsi] = dini_Int(file,\"Jogsi\");
    SetPlayerScore(playerid, dini_Int(file,\"Score\"));
    PlayerInfo[playerid][Warn] = dini_Int(file,\"Warn\");
carid = dini_Int(file,\"CarID\");
if(carid == 0) {
   return 1;
} else {
    x = dini_Float(file, \"posX\");
   y = dini_Float(file, \"posY\");
   z = dini_Float(file, \"posZ\");
   CreateVehicle(carid,x,y,z,0,0,0,30);
}
    }
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    new name[MAX_PLAYER_NAME];
    new string[128];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), \"%s elhagyta a szervert. Viszont látásra.\",name);
SendClientMessageToAll(COLOR_RED, string);
if(fexist(file))
{
    dini_IntSet(file,\"Level\", PlayerInfo[playerid][Level]);
    dini_IntSet(file,\"Wanted\", GetPlayerWantedLevel(playerid));
    dini_IntSet(file,\"Money\", PlayerInfo[playerid][Money]);
    dini_IntSet(file,\"Jail\", PlayerInfo[playerid][Jail]);
    dini_IntSet(file,\"JailTime\", PlayerInfo[playerid][JailTime]);
    dini_IntSet(file,\"Jogsi\", PlayerInfo[playerid][Jogsi]);
    dini_IntSet(file,\"Score\", GetPlayerScore(playerid));
    dini_IntSet(file,\"Warn\", PlayerInfo[playerid][Warn]);
}
return 1;
}
public OnPlayerSpawn(playerid)
{
    if(gTeam[playerid] == TEAM_POLICE) {
        SetPlayerInterior(playerid,0);
       GivePlayerWeapon(playerid,3,1);
        GivePlayerWeapon(playerid,24,120);
   GivePlayerWeapon(playerid,25,18);
   GivePlayerWeapon(playerid,31,90);
   GivePlayerWeapon(playerid,34,24);
   GivePlayerWeapon(playerid,45,1);
   SendClientMessage(playerid, COLOR_BLUE, \"A rendõrök csapata mellett döntöttél.\");
   return 1;
    }
if(gTeam[playerid] == TEAM_CIVIL) {
        SetPlayerInterior(playerid,0);
       SendClientMessage(playerid, COLOR_BLUE, \"Civilként éled az életed..\");
   return 1;
    }
if(gTeam[playerid] == TEAM_GANGSTER) {
        SetPlayerInterior(playerid,0);
        GivePlayerWeapon(playerid,4,1);
        GivePlayerWeapon(playerid,39,2);
   GivePlayerWeapon(playerid,24,120);
   GivePlayerWeapon(playerid,28,340);
   GivePlayerWeapon(playerid,44,1);
   SendClientMessage(playerid, COLOR_BLUE, \"A bûnözõk csapata mellett döntöttél.\");
   return 1;
    }
 
    //Ha a játékos börtönben van
    if(PlayerInfo[playerid][Jail] == 1)
{
   SetPlayerInterior(playerid, 6);
   SetPlayerPos(playerid,264.6288,77.5742,1001.0391);
   SendClientMessage(playerid, COLOR_RED1, \"Várd meg még lejár a fogdaidõ, csak az után szabadulhatsz.\");
   return 0;
    }
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
    SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid)+1);
SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
return 1;
}
//==============================================================================
//==============================================================================
//==============================================================================
 
 
public OnPlayerCommandText(playerid, cmdtext[])
{
return 0;
}
//==============================================================================
CMD:v(playerid, params[])
{
        new id;
if (sscanf(params, \"i\", id)) SendClientMessage(playerid, 0xFF0000AA, \"[Használat]: /v [iD]\");
        
        if(vCar[playerid] != -1)
{
    DestroyVehicle(vCar[playerid]);
}
        new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
        vCar[playerid] = CreateVehicle(id, x, y, z, 0, 0,0, -1);
        PutPlayerInVehicle(playerid, id, 0);
        return 1;
}
CMD:kocsi(playerid, params[])
{
    #pragma unused params
   
    if(IsPlayerInAnyVehicle(playerid))
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);
PlayerInfo[playerid][CarID] = GetPlayerVehicleID(playerid);
 
if(fexist(file))
{
    dini_IntSet(file,\"CarID\", PlayerInfo[playerid][CarID]);
    dini_FloatSet(file, \"posX\", x);
   dini_FloatSet(file, \"posY\", y);
   dini_FloatSet(file, \"posZ\", z);
} else {
    SendClientMessage(playerid,COLOR_RED,\"Nem ûlsz jármûben!\");
}
}
return 1;
}
CMD:kill(playerid, params[])
{
    #pragma unused params
    SetPlayerHealth(playerid, 0);
return 1;
}
 
//==============================================================================
//==============================================================================
//==============================================================================
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
    new SkinID = GetPlayerSkin(playerid);
    if(SkinID == 280 || SkinID == 285 || SkinID == 287)
    {
        if(GetPlayerScore(playerid) >= 150)
{
        gTeam[playerid] = TEAM_POLICE;
        return 1;
        } else if(GetPlayerScore(playerid) < 500) {
        GameTextForPlayer(playerid, \"~g~Nincs el¾g pontod!~r~~n~(150pont kell)\", 750, 3);
        return 0;
        }
}
else if(SkinID == 208 || SkinID == 29 || SkinID == 2)
    {
        gTeam[playerid] = TEAM_CIVIL;
   return 1;
}
else if(SkinID == 149 || SkinID == 108 || SkinID == 104)
    {
        gTeam[playerid] = TEAM_GANGSTER;
   return 1;
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_RULES)
{
    TextDrawHideForPlayer(playerid, connect);
    if(response == 1)
        {
        SendClientMessage(playerid, 0xFFFFFFFF, \"Elfogadtad a szabályzatot, jó játékot kíván az Admin Team.\");
    }
    else
    {
   new string_[128];
   new name_[24];
   GetPlayerName(playerid, name_, 24);
   format(string_, sizeof(string_), \"SERVER: %s nem fogadta el a szabályzatot, ezért ki lett rúgva a szerverrõl.\", name_);
   SendClientMessageToAll(0xFF0000AA, string_);
        SendClientMessage(playerid, 0xFFFFFFF, \"Nem fogadtad el a szabályzatot! Ki lettél rúgva a szerverrõl!\");
        Kick(playerid);
    }
}
return 1;
}

 

Dupla hozzászólás automatikusan összefûzve. ( 2013. január 16. - 18:25:12 )

itt a bünös: :)
\"new wtf_str[2048];\" <--- Lejebbvettem \"new wtf_str[1024];\"
« Utoljára szerkesztve: 2013. január 16. - 18:25:12 írta filip95 »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal