Jump to content
View in the app

A better way to browse. Learn more.

GTAGames.nl - De Nederlandse Grand Theft Auto Community!

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

property (een paar foutjes)

ik heb hier een script en volgens mij een best goede voor huizen en property's

alleen een paar foutjes

dit zijn ze:

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(55) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(106) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(111) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(123) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(149) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(168) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(189) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(230) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(250) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(251) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(253) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(259) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(260) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(271) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(272) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(274) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(279) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(295) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(296) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(298) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(300) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(337) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(338) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(340) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(345) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(346) : warning 217: loose indentation

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(354) : error 025: function heading differs from prototype

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(360) : warning 217: loose indentation

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

1 Error.

en dit is het script ik ben er niet zo goed in dus miss kan iemand er mee helpen.

//required includes
#include <a_samp> //everything needs it 
#include <dini> //dini
#include <dudb> //dudb

//requiered defines

#define dcmd(%1,%2,%3) if ((strcmp(%3, "/%1", true, %2+1) == 0)&&(((%3[%2+1]==0)&&(dcmd_%1(playerid,"")))||((%3[%2+1]==32)&&(dcmd_%1(playerid,%3[%2+2]))))) return 1

//required functions

//properties files are called by their propid, so less memory used as we dont need to udb_encode() it
stock propfile(prop)
{
new string[256];
format(string, sizeof(string), "%d.prop", prop);
return string;
}

//what your players login files are.
//change it, if yours are different
stock playerfile(playerid)
{
new string[256];
format(string, sizeof(string), "%s.sav", udb_encode(Playername(playerid)));
return string;
}

stock GetDistanceBetweenTwoPoints(Float:x,Float:y, Float:x1,Float:y1)
{
new Float:tmpdis;
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(
y,y1)),2));
return floatround(tmpdis);
}

//less params then SendClientMessage()
stock SendPlayerText(playerid, const text[])
{
return SendClientMessage(playerid, 0x35FFC2AA, text);
}

//required to get the owner of the property that has been bought.
stock GetPlayerid(name[])
{
   for (new i = 0; i < MAX_PLAYERS; i++)
   {
       if (IsPlayerConnected(i))
       {
           if(strcmp(Playername(i), name, true) == 0)
           {
               return i;
           }
}
}
return INVALID_PLAYER_ID;
}

/*
NOTE:
   Not all these functions are by me. If you want to find the original authors,
   look in the useful functions thread or around sa-mp forum.
*/

//required forwards

forward ConstFunctions();

//required stats

enum PLAYER_PARAMS
{
proparea,
       bool:Logged
}

new PlayerParameters[MAX_PLAYERS][PLAYER_PARAMS];

//------------------------------------------------------------------------------

//checkpoint stuff

#define MAX_PROPS 1000 //if you have 1000+ properties, just change it

new PropInfo[MAX_PROPS];

new InfoPoint[MAX_PROPS][256];

//------------------------------------------------------------------------------

//add property
//adds a property (each property creates its own file, so dont change the propid after youve started the mode once.

stock AddProperty(playerid, Float:x, Float:y, Float:z, name[], price, bool:forsale, propid, size)
{
   if(!fexist(propfile(propid)))
   {
   dini_Create(propfile(propid));
   dini_Set(propfile(propid), "name", name);
   dini_IntSet(propfile(propid), "price", price);
   dini_FloatSet(propfile(propid), "x", x);
   dini_FloatSet(propfile(propid), "y", y);
   dini_FloatSet(propfile(propid), "z", z);
   if(forsale)
{
dini_IntSet(propfile(propid), "forsale", 1);
} else {
dini_IntSet(propfile(propid), "forsale", 0);
}
   }

new Float:xp, Float:yp, Float:zp;
GetPlayerPos(playerid, xp, yp, zp);
if(GetDistanceBetweenTwoPoints(x,y, xp,yp) < 40)
{
   if(PlayerParameters[playerid][proparea]!=propid)
   {
   SetPlayerCheckpoint(playerid, x, y, z, size);
   PlayerParameters[playerid][proparea]=propid;
   }
} else if(PlayerParameters[playerid][proparea]==propid)
   {
       PlayerParameters[playerid][proparea]=0;
DisablePlayerCheckpoint(playerid);
}

PropInfo[propid]=1;
return 1;
}

//------------------------------------------------------------------------------

//add info point
//adds a checkpoint which, when walked into, tells the player information

stock AddInfoPoint(playerid, Float:x, Float:y, Float:z, line[], infoid, size)
{
new Float:xp, Float:yp, Float:zp;
GetPlayerPos(playerid, xp, yp, zp);
if(GetDistanceBetweenTwoPoints(x,y, xp,yp) < 40)
{
   if(PlayerParameters[playerid][proparea]!=infoid)
   {
   SetPlayerCheckpoint(playerid, x, y, z, size);
   PlayerParameters[playerid][proparea]=infoid;
   }
} else if(PlayerParameters[playerid][proparea]==infoid)
   {
       PlayerParameters[playerid][proparea]=0;
DisablePlayerCheckpoint(playerid);
}

PropInfo[infoid]=2;
set(InfoPoint[infoid], line);
return 1;
}

//------------------------------------------------------------------------------

//this is where to add properties or info points
stock PropertyCheckpointUpdate(playerid)
{
   AddProperty(playerid,2024.6274,1007.8792,10.8203, "Four Dragons Casino", 20000000, true, 1, 5/2);
   AddProperty(playerid,1680.5830,1447.9042,10.7735, "The Airport", 50000000, false, 2, 5/2);
   AddProperty(playerid,1607.0425,1819.7314,10.8280, "Hospital", 150000, false, 3, 5/2);

   //Bank
   AddInfoPoint(playerid,2418.9380,1123.6112,10.8203, "BANK: You can safely store your money in the bank", 4, 5/2);
return 1;
}

//------------------------------------------------------------------------------

//what happens when someone enters the checkpoint.
public OnPlayerEnterCheckpoint(playerid)
{
new string[256], propid;
propid=PlayerParameters[playerid][proparea];
if(PropInfo[propid]==1)
{
format(string, sizeof(string), "-- %s --", dini_Get(propfile(propid), "name"));
SendPlayerText(playerid, string);
format(string, sizeof(string), "Price: %d", dini_Int(propfile(propid), "price"));
SendPlayerText(playerid, string);
if(dini_Int(propfile(propid), "forsale") == 1) SendPlayerText(playerid, "Forsale: Yes");
if(dini_Int(propfile(propid), "forsale") == 0) SendPlayerText(playerid, "Forsale: No");
if(dini_Isset(propfile(propid), "owner"))
{
   format(string, sizeof(string), "Owner: %s", dini_Get(propfile(propid), "owner"));
SendPlayerText(playerid, string);
}
} else if(PropInfo[propid]==2)
{
   SendPlayerText(playerid, InfoPoint[propid]);
}

return 1;
}

//------------------------------------------------------------------------------

//Playername (not created by me, but required)
stock Playername(playerid) {
 new name[MAX_PLAYER_NAME];
 GetPlayerName(playerid, name, MAX_PLAYER_NAME);
 return name;
}

//------------------------------------------------------------------------------

//converts integer into string (easier to type then valstr())
stock str(value)
{
new string[256];
format(string, sizeof(string), "%d", value);
return string;
}

//------------------------------------------------------------------------------

//one function, created so you can run constant functions off one timer
public ConstFunctions()
{
   for (new i = 0; i < MAX_PLAYERS; i++)
   {
       if (IsPlayerConnected(i))
       {
PropertyCheckpointUpdate(i);
   }
}
return 1;
}

//------------------------------------------------------------------------------

public OnGameModeInit()
{
SetTimer("ConstFunctions", 400, 1); //loops the function (you may want to make it higher if you have alot of properties in your server)
//other stuff
return 1;
}

//------------------------------------------------------------------------------

//put the property up for sale
dcmd_sell(playerid, params[])
{
#pragma unused params

   if(!PlayerParameters[playerid][Logged]) return SendPlayerText(playerid, "ERROR: You must be logged in");
new propid = PlayerParameters[playerid][proparea];
   if(!IsPlayerInCheckpoint(playerid) || PropInfo[propid]!=1) return SendPlayerText(playerid, "ERROR: You must be in a property checkpoint");

if(!dini_Isset(propfile(propid), "owner")) return SendPlayerText(playerid, "ERROR: You don't own this property");

if(strcmp(dini_Get(propfile(propid), "owner"), Playername(playerid), true) == 0)
{
//     if(!strlen(params)) return SendPlayerText(playerid, "USAGE: /sell [price]");
     if(dini_Int(propfile(propid), "forsale") == 1) return SendPlayerText(playerid, "ERROR: Property is already for sale");
       dini_IntSet(propfile(propid), "forsale", 1);
SendPlayerText(playerid, "PROPERTY: Set for sale");
} else {
   SendPlayerText(playerid, "ERROR: You don't own this property");
}
return 1;
}

//change the price of the property (if you own it)
dcmd_value(playerid, params[])
{
   if(!PlayerParameters[playerid][Logged]) return SendPlayerText(playerid, "ERROR: You must be logged in");
new propid = PlayerParameters[playerid][proparea];
   if(!IsPlayerInCheckpoint(playerid) || PropInfo[propid]!=1) return SendPlayerText(playerid, "ERROR: You must be in a property checkpoint");

if(!dini_Isset(propfile(propid), "owner")) return SendPlayerText(playerid, "ERROR: You don't own this property");

if(strcmp(dini_Get(propfile(propid), "owner"), Playername(playerid), true) == 0)
{
   if(!strlen(params)) return SendPlayerText(playerid, "USAGE: /value [price]");
new string[256];
format(string, sizeof(string), "PROPERTY: Set value to $%d", strval(params));
SendPlayerText(playerid, string);

dini_IntSet(propfile(propid), "price", strval(params));
} else {
   SendPlayerText(playerid, "ERROR: You don't own this property");
}
return 1;
}

//buy a property
dcmd_buy(playerid, params[])
{
   #pragma unused params
       if(!PlayerParameters[playerid][Logged]) return SendPlayerText(playerid, "ERROR: You must be logged in");
new propid = PlayerParameters[playerid][proparea];
   if(!IsPlayerInCheckpoint(playerid) || PropInfo[propid]!=1) return SendPlayerText(playerid, "ERROR: You must be in a property checkpoint");

       if(strcmp(dini_Get(propfile(propid), "name"), Playername(playerid), true) == 0) return SendPlayerText(playerid, "ERROR: You already own this property");
       if(dini_Int(propfile(propid), "forsale") == 0) return SendPlayerText(playerid, "ERROR: Property is not for sale");
new price;
price=dini_Int(propfile(propid), "price");
if(price > GetPlayerMoney(playerid)) return SendPlayerText(playerid, "ERROR: Not enough money");

new string[256];
if(dini_Isset(propfile(propid), "owner"))
{
format(string, sizeof(string), "PROPERTY: You have bought %s off %s", dini_Get(propfile(propid), "name"), dini_Get(propfile(propid), "owner"));
SendPlayerText(playerid, string);

new sellerid = GetPlayerid(dini_Get(propfile(propid), "owner"));
if(IsPlayerConnected(sellerid))
{
GivePlayerMoney(sellerid, price);
format(string, sizeof(string), "PROPERTY: Your property \"%s\" has been bought buy %s", dini_Get(propfile(propid), "name"), Playername(playerid));
SendPlayerText(sellerid, string);
} else {
   dini_IntSet(udb_encode(dini_Get(propfile(propid), "owner")), "money", price + dini_Int(udb_encode(dini_Get(propfile(propid), "owner")), "money"));
}
} else {
format(string, sizeof(string), "PROPERTY: You have bought %s", dini_Get(propfile(propid), "name"));
SendPlayerText(playerid, string);
}

dini_IntSet(propfile(propid), "forsale", 0);

GivePlayerMoney(playerid, price * -1);
dini_Set(propfile(propid), "owner", Playername(playerid));
return 1;
}

//pulls the property off the market
dcmd_unsell(playerid, params[])
{
   #pragma unused params

   if(!PlayerParameters[playerid][Logged]) return SendPlayerText(playerid, "ERROR: You must be logged in");
new propid = PlayerParameters[playerid][proparea];
   if(!IsPlayerInCheckpoint(playerid) || PropInfo[propid]!=1) return SendPlayerText(playerid, "ERROR: You must be in a property checkpoint");

if(!dini_Isset(propfile(propid), "owner")) return SendPlayerText(playerid, "ERROR: You don't own this property");

if(strcmp(dini_Get(propfile(propid), "owner"), Playername(playerid), true) == 0)
{
     if(dini_Int(propfile(propid), "forsale") == 0) return SendPlayerText(playerid, "ERROR: Property is already not for sale");
       dini_IntSet(propfile(propid), "forsale", 0);
SendPlayerText(playerid, "PROPERTY: Set to not for sale");
} else {
   SendPlayerText(playerid, "ERROR: You don't own this property");
}
return 1;
}

//------------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[], text[])
{
   dcmd(sell,4,cmdtext);
   dcmd(buy,3,cmdtext);
   dcmd(unsell,6,cmdtext);
   dcmd(value,5,cmdtext);
return 0;
}

Featured Replies

Zou je niet in het SA-MP scripting topic kijken? Niet heel veel kans dat mensen je hier kunnen helpen, denk ik.

Edit: laat maar, Donwell had dit ook al gezegd in één van je andere topics zie ik nu.

Edited by K.O.

Wel als er iemand onder de naam Donwell hier eventjes komt kijken en ook redelijk verstand heeft van scripting hoor... :engel:

Maar goed, zonder gekheid. Kun je misschien de regeltjes die de warning hebben eventjes apart neerzetten, met 3 à 4 regels erboven/onder? Dat maakt het wat overzichtelijker dan het hele script doorspitten namelijk. ;)

  • Author

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(55) : warning 217: loose indentation

}

}

}

(55)return INVALID_PLAYER_ID;

}

/*

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(106) : warning 217: loose indentation

if(!fexist(propfile(propid)))

{

dini_Create(propfile(propid));

dini_Set(propfile(propid), "name", name);

dini_IntSet(propfile(propid), "price", price);

dini_FloatSet(propfile(propid), "x", x);

dini_FloatSet(propfile(propid), "y", y);

dini_FloatSet(propfile(propid), "z", z);

if(forsale)

{

dini_IntSet(propfile(propid), "forsale", 1);

(106)} else {

dini_IntSet(propfile(propid), "forsale", 0);

}

}

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(111) : warning 217: loose indentation

{

dini_IntSet(propfile(propid), "forsale", 1);

} else {

dini_IntSet(propfile(propid), "forsale", 0);

}

}

(111)new Float:xp, Float:yp, Float:zp;

GetPlayerPos(playerid, xp, yp, zp);

if(GetDistanceBetweenTwoPoints(x,y, xp,yp) < 40)

{

if(PlayerParameters[playerid][proparea]!=propid)

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(123) : warning 217: loose indentation

SetPlayerCheckpoint(playerid, x, y, z, size);

PlayerParameters[playerid][proparea]=propid;

}

} else if(PlayerParameters[playerid][proparea]==propid)

{

PlayerParameters[playerid][proparea]=0;

(123)DisablePlayerCheckpoint(playerid);

}

PropInfo[propid]=1;

return 1;

}

ik ga ze nie allemaal doen want dat duurt me te lang. dadelijk zijn het van die makkelijke dingen die je allemaal het zelfde moet worden verandert.

dus ik laat het hierbij ik zal de andere er neer zetten als die het dan ook nie doen.

Edited by r3v3rz3

  • Author

of moet ik het met pastebin effe doen dan zie je al die nummers enzo.

Het probleem is dus de uitlijning, en ik geloof dat jij een behoorlijk grote code hebt dus het is nogal veel werk om het zo even te doen. Ik denk dat je het zelf ook wel kunt, dus hierbij een uitleg wanneer je in moet springen, en waneer je weer terug moet springen.

Als er een { staat, moet je één keer op Tab drukken. Staat er een } dan moet je weer één niveau omlaag. Voorbeeld:

f(!fexist(propfile(propid)))
{
dini_Create(propfile(propid));
dini_Set(propfile(propid), "name", name);
dini_IntSet(propfile(propid), "price", price);
dini_FloatSet(propfile(propid), "x", x);
dini_FloatSet(propfile(propid), "y", y);
dini_FloatSet(propfile(propid), "z", z);
if(forsale)
{
	dini_IntSet(propfile(propid), "forsale", 1);
}
else
{
	dini_IntSet(propfile(propid), "forsale", 0);
}
}

Zoals je ziet blijven de accolades, de { en }, op dezelfde plek, maar springt de code erna één niveau in. Ik denk dat je hiermee wel vooruit kunt, veel succes met het veranderen.

Edited by VWO-er

}
 }
 }
	 return INVALID_PLAYER_ID; //Regel 55
 }

 /*

if(!fexist(propfile(propid))){

		dini_Create(propfile(propid));
		 dini_Set(propfile(propid), "name", name);
		 dini_IntSet(propfile(propid), "price", price);
		 dini_FloatSet(propfile(propid), "x", x);
		 dini_FloatSet(propfile(propid), "y", y);
		 dini_FloatSet(propfile(propid), "z", z);
		 if(forsale) {

			dini_IntSet(propfile(propid), "forsale", 1);
			 } else { //Regel 106
			 dini_IntSet(propfile(propid), "forsale", 0);
			 }
				  }

{
   dini_IntSet(propfile(propid), "forsale", 1);
   } else {
   dini_IntSet(propfile(propid), "forsale", 0);
 }
	 }

 new Float:xp, Float:yp, Float:zp; //Regel 111
 GetPlayerPos(playerid, xp, yp, zp);
 if(GetDistanceBetweenTwoPoints(x,y, xp,yp) < 40)
 {
	 if(PlayerParameters[playerid][proparea]!=propid)

	 SetPlayerCheckpoint(playerid, x, y, z, size);
	 PlayerParameters[playerid][proparea]=propid;
	 }
 } else if(PlayerParameters[playerid][proparea]==propid)
	 {
		 PlayerParameters[playerid][proparea]=0;
		 DisablePlayerCheckpoint(playerid); //Regel 123
 }

 PropInfo[propid]=1;
 return 1;
 }

Als het goed is zul je nu geen warnings meer krijgen in deze codes... :)

Edit@Sandra:

Ik heb enkel gekeken naar de opgegeven lijntjes die de warning aangaven bij hem, voor de rest heb ik er niet naar gekeken... :7 Heb ondertussen ook al wat uitlijningen beter gemaakt... :)

Edited by Donwell

  • Author

oke bedankt.

vwo-er bedankt voor de uitleg

en donwell bedankt voor het script help

Als het goed is zul je nu geen warnings meer krijgen in deze codes... :)

Denk je?

Als het goed is zul je nu geen warnings meer krijgen in deze codes... :)

Denk je?

Heb hem een PB gestuurd of 'ie het wou doorsturen via de mail(ik had ook het vermoeden dat Donwells methode niet goed was), dus zal er even naar kijken :Y
  • Author
Als het goed is zul je nu geen warnings meer krijgen in deze codes... :)

Denk je?

Heb hem een PB gestuurd of 'ie het wou doorsturen via de mail(ik had ook het vermoeden dat Donwells methode niet goed was), dus zal er even naar kijken :Y

de warnings zijn weg.

alleen er zit nog een probleem in die staat er ook bij toen ik dit topic starte namelijk:

C:\Documents and Settings\Guido\Bureaublad\gta server\filterscripts\property.pwn(354) : error 025: function heading differs from prototype

}

//------------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[], text[])
{
   dcmd(sell,4,cmdtext);
   dcmd(buy,3,cmdtext);
   dcmd(unsell,6,cmdtext);
   dcmd(value,5,cmdtext);
return 0;
}

Probeer eens

public OnPlayerCommandText(playerid, cmdtext[])

  • Author

Probeer eens

public OnPlayerCommandText(playerid, cmdtext[])

hej bedankt sandra, nu doet hij het.

:tu::tu:

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Recently Browsing 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.