Peršokti į turinį

[REIKIA PAGALBOS] Dėl namo pardavimo sistemos.


Recommended Posts

Sveiki, turiu šiokį tokį klausimą, kaip man čia reiktų pasidaryt, kad aš galėčiau namą parduoti "Serveriui" be ne asmeniui. 

 

COMMAND:n( playerid, params[] )
{
new
   idx,
   result[ 128 ];


  result = strtok( params, idx );


  if ( !result[ 0 ] )
{
SendClientMessage( playerid, LIGHTGREEN, "__________ Namų komandos __________" );
SendClientMessage( playerid, LIGHTGREEN, "/n pirkti, /n valdyti, /n vieta" );
return true;
}
else
{
   if ( !strcmp( result, "pirkti", true ) )
   {
for( new house = 1; house < maxhouses + 1; house++ )
{
   if( !IsPlayerInRangeOfPoint( playerid, 1, HouseInfo[house][pos][0], HouseInfo[house][pos][1], HouseInfo[house][pos][2] ) )
continue;


   if( HouseInfo[house][selling] )
{
       if( GetPVarInt( playerid, "pOHouse2" ) == 0 )
{
   if( GetPlayerMoneyA( playerid ) < HouseInfo[house][cost] )
{
SendClientMessage( playerid, WHITE, "[ > ]{FF7E7E} Atsiprašome, bet jums nepakanka pinigų!" );
return true;
}
HOUSE_BUY_DIALOG( playerid, house );
}
else
   SendClientMessage( playerid, WHITE, "[ > ]{FF7E7E} Atsiprašome, bet jūs nebegalite turėti daugiau namų!" );
   }
}
return true;
   }
else if ( !strcmp( result, "valdyti", true ) )
   {
   if( !IsPlayerInAnyVehicle( playerid ) )
{
  new houseid = GetPVarInt( playerid, "pHouse" );
   if( houseid != 0 && HouseInfo[houseid][owner] == pInfo[ playerid ][ pId ] ) {
    SetPVarInt( playerid, "pCHouse", houseid );
HOUSE_CONTROL( playerid );
return true;
   }
   for( new house = 1; house < maxhouses + 1; house++ )
{
   if( !IsPlayerInRangeOfPoint( playerid, 1, HouseInfo[house][pos][0], HouseInfo[house][pos][1], HouseInfo[house][pos][2] ) )
continue;
    if( HouseInfo[house][owner] == pInfo[ playerid ][ pId ] ) {
   SetPVarInt( playerid, "pCHouse", house );
HOUSE_CONTROL( playerid );
}
}
}
return true;
}
else if ( !strcmp( result, "vieta", true ) )
   {
    if( GPSt[ playerid ] )
{
ShowPlayerDialog( playerid, 800, DIALOG_STYLE_MSGBOX, "{FFFFFF}GPS Pranešimai", "{D4F20C}GPS pranešimas,\n \n\
{FFFFFF}Jūs jau turite nustatęs {D4F20C}poziciją{FFFFFF}.\n\
Deaktvyuokite senają poziciją prieš ieškant naujos vietos", "Uždaryti", "" );
return true;
}
new
op1 = GetPVarInt( playerid, "pOHouse1" ),
op2 = GetPVarInt( playerid, "pOHouse2" );


if( op1 == 0 )
{
SendClientMessage( playerid, RED, "* Jūs neturite nei vieno namo!" );
   return true;
}
if( GetPVarInt( playerid, "pLastHouse" ) != op1)
   SetPVarInt( playerid, "pLastHouse", op1 );
else if( op2 != 0 )
   SetPVarInt( playerid, "pLastHouse", op2 );


new Float:x, Float:y, Float:z;
GetHousePosition( GetPVarInt( playerid, "pLastHouse" ), x, y, z );
SetPlayerMapIcon( playerid, 0, x, y, z, 31, 0, MAPICON_GLOBAL );
GPSt[ playerid ] = true;
return true;
   }
   return false;
}
}

gal iš šių script gabaliuko eitų kažką surašyti? 

 

Nuoroda į komentarą
Dalintis per kitą puslapį

hah, lt-grp modas, neblogas šitas :D

Tiesiog pridėk komandą "parduoti", nustatyk namo informaciją taip, kad namo savininko nebūtų, atimk iš žaidėjo namą, duok jam dalį pinigų nuo kainos ir pakeisk 3dtextlabel.

Nuoroda į komentarą
Dalintis per kitą puslapį

if ( !strcmp( result, "parduoti", true ) )

{

for( new house = 0; house < maxhouses + 0; house++ )

{

if( !IsPlayerInRangeOfPoint( playerid, 1, HouseInfo[house][pos][0], HouseInfo[house][pos][1], HouseInfo[house][pos][2] ) )

continue;

Bent kažką į gerą puse darau? :D

Nuoroda į komentarą
Dalintis per kitą puslapį

Šiuo atveju, kai žaidėjas bus prie namo jam neis parduoti, nes tu panaudojai "continue" (gali būti, kad klystu, nes nenaudoju tokių dalykų). Daryk taip:

if( !IsPlayerInRangeOfPoint... ) return Send...."tu ne prie namo" );
Nuoroda į komentarą
Dalintis per kitą puslapį

Gerai, bandau dar rašyt.. :D

if ( !strcmp( result, "parduoti", true ) )
   {
for( new house = 0; house < maxhouses + 0; house++ )
{
   if( !IsPlayerInRangeOfPoint( playerid, 1, HouseInfo[house][pos][0], HouseInfo[house][pos][1], HouseInfo[house][pos][2]))
return SendClientMessage( playerid, WHITE, "[ > ]{FF7E7E} Atsiprašome, bet jūs ne prie savo namo!" );


   if( HouseInfo[house][owner] )
{
       if( GetPVarInt( playerid, "pOHouse2" ) == 1 )
{
  if( GivePlayerMoneyA( playerid ) < HouseInfo[house][cost] )
{
SendClientMessage( playerid, WHITE, "[ > ]{FF7E7E} Namas buvo sėkmingai parduotas!" );
return true;
}

Nu o kaip dabar?

Nuoroda į komentarą
Dalintis per kitą puslapį

if( GivePlayerMoneyA( playerid ) < HouseInfo[house][cost] )

Kas čia per nesąmonė? Tu tikrini ar duodi žaidėjui mažiau pinigų nei jo kaina. Visiškai logikos nėra čia tam kode.

Keisk į 

GivePlayerMoneyA( playerid, HouseInfo[house][cost] );
Nuoroda į komentarą
Dalintis per kitą puslapį

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

×
×
  • Sukurti naują...