Szerző Téma: Ciklusos parancs probléma  (Megtekintve 1545 alkalommal)

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Ciklusos parancs probléma
« Dátum: 2014. Augusztus 30. - 11:57:38 »
0 Show voters
Sziasztok!
Elsõnek csináltam önnállóan egy ciklusos parancsot. Egy adott parancs mintájára próbáltam elkészítenik, de 2órás gondolkofás után sem jöttem rá mi lehet a baj.
 
CMD:spickup(playerid,params[])
{
if(Belepve[playerid])
{
    if(JatekosInfo[playerid][Tulaj] == true)
    {
        new model, type,vw;
   if(sscanf(params,\"iii\",model, type,vw)) return MSG(playerid,COLOR_LIGHTRED,\"használata: /spickup [pickupID] [typus] [vw(normál: 0]\");
   {
      new Float:posx, Float:posy, Float:posz; // Létrehozzul a változókat
      GetPlayerPos(playerid, posx, posy, posz);
      for(new i = 0; i < MAX_PICKUPS; i++)
             format(pickupmentes,sizeof(pickupmentes),\"/Pickups/%d.ini\", i); // Formázzuk a file változót a mappának megfelelõen
      if(!fexist(pickupmentes)) dini_Create(pickupmentes), break;
      else continue; // Ha létezik a file
      {
         dini_FloatSet(pickupmentes,\"PosX\",posx); // Lementjük az -X koordinátát
         dini_FloatSet(pickupmentes,\"PosY\",posy); // -Y koordinátát
         dini_FloatSet(pickupmentes,\"PosZ\",posz); // -Z koordinátát
         dini_IntSet(pickupmentes,\"Model\",model); // -A model id-jét
         dini_IntSet(pickupmentes,\"Type\",type);
         dini_IntSet(pickupmentes,\"Vw\",vw);
         SendClientMessage(playerid,COLOR_PINK,\"Pickup lementve!\");
         CreatePickup(model,type,posx,posy,posz,vw);
      }
   }
}
else MSG(playerid,COLOR_LIGHTRED,\"Nem vagy Tulajdonos!\");
}
else SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy bejelentkezve!\");
return 1;
}
« Utoljára szerkesztve: 2014. Október 19. - 16:31:17 írta Flash »

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Ciklusos parancs probléma
« Válasz #1 Dátum: 2014. Augusztus 30. - 12:03:54 »
0 Show voters
sztem
 
CMD:spickup(playerid,params[])
{
        if(Belepve[playerid])
        {
            if(JatekosInfo[playerid][Tulaj] == true)
            {
                new model, type,vw;
                        if(sscanf(params,\"iii\",model, type,vw)) return MSG(playerid,COLOR_LIGHTRED,\"használata: /spickup [pickupID] [typus] [vw(normál: 0]\");
                        {
                                new Float:posx, Float:posy, Float:posz; // Létrehozzul a változókat
                                GetPlayerPos(playerid, posx, posy, posz);
                        format(pickupmentes,sizeof(pickupmentes),\"/Pickups/%d.ini\", i); // Formázzuk a file változót a mappának megfelelõen
                            if(!fexist(pickupmentes)) dini_Create(pickupmentes);
                                dini_FloatSet(pickupmentes,\"PosX\",posx); // Lementjük az -X koordinátát
                                dini_FloatSet(pickupmentes,\"PosY\",posy); // -Y koordinátát
                                dini_FloatSet(pickupmentes,\"PosZ\",posz); // -Z koordinátát
                                dini_IntSet(pickupmentes,\"Model\",model); // -A model id-jét
                                dini_IntSet(pickupmentes,\"Type\",type);
                                dini_IntSet(pickupmentes,\"Vw\",vw);
                                SendClientMessage(playerid,COLOR_PINK,\"Pickup lementve!\");
                                CreatePickup(model,type,posx,posy,posz,vw);
                        }
                }
                else MSG(playerid,COLOR_LIGHTRED,\"Nem vagy Tulajdonos!\");
        }
        else SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy bejelentkezve!\");
        return 1;
}

 
[mod]Javítottam helyetted a

taget

tagre![/mod]
« Utoljára szerkesztve: 2014. Augusztus 30. - 12:16:28 írta Dfoglalo »

Ciklusos parancs probléma
« Válasz #2 Dátum: 2014. Augusztus 30. - 12:07:08 »
0 Show voters




if(sscanf(params,\"iii\",model, type,vw)) return MSG(playerid,COLOR_LIGHTRED,\"használata: /spickup [pickupID] [typus] [vw(normál: 0]\");
{

 
Én ezt a sort nem értem. Visszatér egy üzenettel, de mégis megnyitja az elágazást.... Ez igy mûködik?! :o

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Ciklusos parancs probléma
« Válasz #3 Dátum: 2014. Augusztus 30. - 12:54:35 »
0 Show voters
Idézetet írta: Pedró date=1409393034\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50452\" data-ipsquote-contentclass=\"forums_Topic
sztem
 
CMD:spickup(playerid,params[])
{
        if(Belepve[playerid])
        {
            if(JatekosInfo[playerid][Tulaj] == true)
            {
                new model, type,vw;
                        if(sscanf(params,\"iii\",model, type,vw)) return MSG(playerid,COLOR_LIGHTRED,\"használata: /spickup [pickupID] [typus] [vw(normál: 0]\");
                        {
                                new Float:posx, Float:posy, Float:posz; // Létrehozzul a változókat
                                GetPlayerPos(playerid, posx, posy, posz);
                        format(pickupmentes,sizeof(pickupmentes),\"/Pickups/%d.ini\", i); // Formázzuk a file változót a mappának megfelelõen
                            if(!fexist(pickupmentes)) dini_Create(pickupmentes);
                                dini_FloatSet(pickupmentes,\"PosX\",posx); // Lementjük az -X koordinátát
                                dini_FloatSet(pickupmentes,\"PosY\",posy); // -Y koordinátát
                                dini_FloatSet(pickupmentes,\"PosZ\",posz); // -Z koordinátát
                                dini_IntSet(pickupmentes,\"Model\",model); // -A model id-jét
                                dini_IntSet(pickupmentes,\"Type\",type);
                                dini_IntSet(pickupmentes,\"Vw\",vw);
                                SendClientMessage(playerid,COLOR_PINK,\"Pickup lementve!\");
                                CreatePickup(model,type,posx,posy,posz,vw);
                        }
                }
                else MSG(playerid,COLOR_LIGHTRED,\"Nem vagy Tulajdonos!\");
        }
        else SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy bejelentkezve!\");
        return 1;
}

 
Javítottam helyetted a

taget

tagre!
 
Ez így nem jó, mert nem megy végig a ciklus, és nem nézi meg az utolsó mentési számot és nem ahhoz képest ment le
 





if(sscanf(params,\"iii\",model, type,vw)) return MSG(playerid,COLOR_LIGHTRED,\"használata: /spickup [pickupID] [typus] [vw(normál: 0]\");
{

 
Én ezt a sort nem értem. Visszatér egy üzenettel, de mégis megnyitja az elágazást.... Ez igy mûködik?! :o
 

[/quote]
Igazából ez azlenne, hogyha rosszul irja be a jõátékos , akkor irja ki a megfelelõ parancsot.

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Ciklusos parancs probléma
« Válasz #4 Dátum: 2014. Augusztus 30. - 13:25:09 »
0 Show voters
***d bocs
 
CMD:spickup(playerid,params[])
{
        if(Belepve[playerid])
        {
            if(JatekosInfo[playerid][Tulaj] == true)
            {
                new model, type,vw;
                        if(sscanf(params,\"iii\",model, type,vw)) return MSG(playerid,COLOR_LIGHTRED,\"használata: /spickup [pickupID] [typus] [vw(normál: 0]\");
                        {
                                new Float:posx, Float:posy, Float:posz; // Létrehozzul a változókat
                                GetPlayerPos(playerid, posx, posy, posz);
                                pickupmentes[0] = EOS;
                                for(new i = 0; i < MAX_PICKUPS; i++) {
                     format(pickupmentes,sizeof(pickupmentes),\"/Pickups/%d.ini\", i); // Formázzuk a file változót a mappának megfelelõen
                     if(!fexist(pickupmentes)) dini_Create(pickupmentes), break;
                                else continue; // Ha létezik a file
                  }
                  if(!strlen(pickupmentes)) return 1; // nem sikerült formázni :o
                                dini_FloatSet(pickupmentes,\"PosX\",posx); // Lementjük az -X koordinátát
                                dini_FloatSet(pickupmentes,\"PosY\",posy); // -Y koordinátát
                                dini_FloatSet(pickupmentes,\"PosZ\",posz); // -Z koordinátát
                                dini_IntSet(pickupmentes,\"Model\",model); // -A model id-jét
                                dini_IntSet(pickupmentes,\"Type\",type);
                                dini_IntSet(pickupmentes,\"Vw\",vw);
                                SendClientMessage(playerid,COLOR_PINK,\"Pickup lementve!\");
                                CreatePickup(model,type,posx,posy,posz,vw);
                        }
                }
                else MSG(playerid,COLOR_LIGHTRED,\"Nem vagy Tulajdonos!\");
        }
        else SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy bejelentkezve!\");
        return 1;
}

 
[gmod]Javítottam helyetted a

taget

tagre![/gmod]
« Utoljára szerkesztve: 2014. Október 23. - 14:17:12 írta Dfoglalo »

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Ciklusos parancs probléma
« Válasz #5 Dátum: 2014. Augusztus 30. - 14:04:08 »
0 Show voters
CMD:spickup(playerid,params[])
{
        if(Belepve[playerid])
        {
            if(JatekosInfo[playerid][Tulaj] == true)
            {
                new model, type,vw;
                if(sscanf(params,\"iii\",model, type,vw)) return MSG(playerid,COLOR_LIGHTRED,\"használata: /spickup [pickupID] [typus] [vw(normál: 0]\");
                {
                    new Float:posx, Float:posy, Float:posz; // Létrehozzul a változókat
                    GetPlayerPos(playerid, posx, posy, posz);
                  pickupmentes[0] = EOS;
                     for(new i = 0; i < MAX_PICKUPS; i++)
          {
            format(pickupmentes,sizeof(pickupmentes),\"/Pickups/%d.ini\", i); // Formázzuk a file változót a mappának megfelelõen
            if(!fexist(pickupmentes)) dini_Create(pickupmentes), break;
                 else continue; // Ha létezik a file
         }
         if(!strlen(pickupmentes)) return 1; // nem sikerült formázni :o
         dini_FloatSet(pickupmentes,\"PosX\",posx); // Lementjük az -X koordinátát
                   dini_FloatSet(pickupmentes,\"PosY\",posy); // -Y koordinátát
          dini_FloatSet(pickupmentes,\"PosZ\",posz); // -Z koordinátát
          dini_IntSet(pickupmentes,\"Model\",model); // -A model id-jét
          dini_IntSet(pickupmentes,\"Type\",type);
          dini_IntSet(pickupmentes,\"Vw\",vw);
           SendClientMessage(playerid,COLOR_PINK,\"Pickup lementve!\");
                 CreatePickup(model,type,posx,posy,posz,vw);
      }
   }
            else MSG(playerid,COLOR_LIGHTRED,\"Nem vagy Tulajdonos!\");
        }
        else SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy bejelentkezve!\");
        return 1;
}
C:\\Documents and Settings\\Rendszergazda\\Asztal\\KrisT szerverÚjra\\gamemodes\\KrisT-RPG.pwn(2909) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\KrisT szerverÚjra\\gamemodes\\KrisT-RPG.pwn(2909) : warning 215: expression has no effect

 
Ezt irja
[mod]Javítottam helyetted a

taget

tagre![/mod]
« Utoljára szerkesztve: 2014. Augusztus 30. - 15:43:44 írta Flash »

Nem elérhető Erik3333

  • 945
  • SMF | phpBB | TS3 | PHP | HTML | CSS | JS | PAWN | JAVA
    • Profil megtekintése
Ciklusos parancs probléma
« Válasz #6 Dátum: 2014. Augusztus 30. - 14:07:33 »
0 Show voters
Én így képzelném el:
 
CMD:spickup(playerid,params[])
{
if(Belepve[playerid])
{
if(JatekosInfo[playerid][Tulaj] == true)
{
   new model, type,vw;
   if(sscanf(params,\"iii\",model, type,vw)) return MSG(playerid,COLOR_LIGHTRED,\"használata: /spickup [pickupID] [typus] [vw(normál: 0]\");
   new Float:posx, Float:posy, Float:posz, pickupmentes[64]; // Létrehozzul a változókat
   GetPlayerPos(playerid, posx, posy, posz);
   new bool:van = false;
   for(new i = 0; i < MAX_PICKUPS; i++)
   {
      format(pickupmentes,sizeof(pickupmentes),\"/Pickups/%d.ini\", i); // Formázzuk a file változót a mappának megfelelõen
      if(!fexist(pickupmentes)) dini_Create(pickupmentes), van = true, break;
      else continue; // Ha létezik a file
   }
   if(van)
   {
      dini_FloatSet(pickupmentes,\"PosX\",posx); // Lementjük az -X koordinátát
      dini_FloatSet(pickupmentes,\"PosY\",posy); // -Y koordinátát
      dini_FloatSet(pickupmentes,\"PosZ\",posz); // -Z koordinátát
      dini_IntSet(pickupmentes,\"Model\",model); // -A model id-jét
      dini_IntSet(pickupmentes,\"Type\",type);
      dini_IntSet(pickupmentes,\"Vw\",vw);
      SendClientMessage(playerid,COLOR_PINK,\"Pickup lementve!\");
      CreatePickup(model,type,posx,posy,posz,vw);
   }
}
else MSG(playerid,COLOR_LIGHTRED,\"Nem vagy Tulajdonos!\");
}
else SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy bejelentkezve!\");
return 1;
}

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Ciklusos parancs probléma
« Válasz #7 Dátum: 2014. Augusztus 30. - 15:07:38 »
0 Show voters
Idézetet írta: Gun22 date=1409400453\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50452\" data-ipsquote-contentclass=\"forums_Topic
Én így képzelném el:
 
CMD:spickup(playerid,params[])
{
if(Belepve[playerid])
{
if(JatekosInfo[playerid][Tulaj] == true)
{
   new model, type,vw;
   if(sscanf(params,\"iii\",model, type,vw)) return MSG(playerid,COLOR_LIGHTRED,\"használata: /spickup [pickupID] [typus] [vw(normál: 0]\");
   new Float:posx, Float:posy, Float:posz, pickupmentes[64]; // Létrehozzul a változókat
   GetPlayerPos(playerid, posx, posy, posz);
   new bool:van = false;
   for(new i = 0; i < MAX_PICKUPS; i++)
   {
      format(pickupmentes,sizeof(pickupmentes),\"/Pickups/%d.ini\", i); // Formázzuk a file változót a mappának megfelelõen
      if(!fexist(pickupmentes)) dini_Create(pickupmentes), van = true, break;
      else continue; // Ha létezik a file
   }
   if(van)
   {
      dini_FloatSet(pickupmentes,\"PosX\",posx); // Lementjük az -X koordinátát
      dini_FloatSet(pickupmentes,\"PosY\",posy); // -Y koordinátát
      dini_FloatSet(pickupmentes,\"PosZ\",posz); // -Z koordinátát
      dini_IntSet(pickupmentes,\"Model\",model); // -A model id-jét
      dini_IntSet(pickupmentes,\"Type\",type);
      dini_IntSet(pickupmentes,\"Vw\",vw);
      SendClientMessage(playerid,COLOR_PINK,\"Pickup lementve!\");
      CreatePickup(model,type,posx,posy,posz,vw);
   }
}
else MSG(playerid,COLOR_LIGHTRED,\"Nem vagy Tulajdonos!\");
}
else SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy bejelentkezve!\");
return 1;
}

 

Erre is hibát ír ki, a dini_Create sorra

Ciklusos parancs probléma
« Válasz #8 Dátum: 2014. Augusztus 30. - 15:31:04 »
0 Show voters

CMD:spickup(playerid,params[])
{
if(!Belepve[playerid]) return SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy bejelentkezve!\");
if(JatekosInfo[playerid][Tulaj] == false) return SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy Tulajdonos!\");
new model, type, vw;
if(sscanf(params,\"iii\",model,type,vw)) return SendClientMessage(playerid,COLOR_LIGHTRED,\"Használata: /spickup [PickupID] [Tipus] [vw(normál: 0]\");
new Float:posx, Float:posy, Float:posz, pickupmentes[64];
GetPlayerPos(playerid, posx, posy, posz);
new bool:van = false;
for(new i = 0; i < MAX_PICKUPS; i++)
{
format(pickupmentes,sizeof(pickupmentes),\"/Pickups/%d.ini\", i);
if(!dini_Exists(pickupmentes))
{
dini_Create(pickupmentes);
van = true;
break;
}
else continue;
}
if(van)
{
dini_FloatSet(pickupmentes,\"PosX\",posx);
dini_FloatSet(pickupmentes,\"PosY\",posy);
dini_FloatSet(pickupmentes,\"PosZ\",posz);
dini_IntSet(pickupmentes,\"Model\",model);
dini_IntSet(pickupmentes,\"Type\",type);
dini_IntSet(pickupmentes,\"Vw\",vw);
SendClientMessage(playerid,COLOR_PINK,\"Pickup lementve!\");
CreatePickup(model,type,posx,posy,posz,vw);
}
return 1;
}

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Ciklusos parancs probléma
« Válasz #9 Dátum: 2014. Augusztus 30. - 21:08:25 »
0 Show voters
Idézetet írta: .RäNÐoM. date=1409405464\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50452\" data-ipsquote-contentclass=\"forums_Topic


CMD:spickup(playerid,params[])
{
if(!Belepve[playerid]) return SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy bejelentkezve!\");
if(JatekosInfo[playerid][Tulaj] == false) return SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy Tulajdonos!\");
new model, type, vw;
if(sscanf(params,\"iii\",model,type,vw)) return SendClientMessage(playerid,COLOR_LIGHTRED,\"Használata: /spickup [PickupID] [Tipus] [vw(normál: 0]\");
new Float:posx, Float:posy, Float:posz, pickupmentes[64];
GetPlayerPos(playerid, posx, posy, posz);
new bool:van = false;
for(new i = 0; i < MAX_PICKUPS; i++)
{
format(pickupmentes,sizeof(pickupmentes),\"/Pickups/%d.ini\", i);
if(!dini_Exists(pickupmentes))
{
dini_Create(pickupmentes);
van = true;
break;
}
else continue;
}
if(van)
{
dini_FloatSet(pickupmentes,\"PosX\",posx);
dini_FloatSet(pickupmentes,\"PosY\",posy);
dini_FloatSet(pickupmentes,\"PosZ\",posz);
dini_IntSet(pickupmentes,\"Model\",model);
dini_IntSet(pickupmentes,\"Type\",type);
dini_IntSet(pickupmentes,\"Vw\",vw);
SendClientMessage(playerid,COLOR_PINK,\"Pickup lementve!\");
CreatePickup(model,type,posx,posy,posz,vw);
}
return 1;
}

 

Mûködik, köszönöm! :)

Elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Ciklusos parancs probléma
« Válasz #10 Dátum: 2014. Augusztus 30. - 22:33:14 »
0 Show voters
[mod]Zárok![/mod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal