Jump to content

Het Scripting Problemen Topic


Recommended Posts

Geplaatst:

En wat moet het ongeveer voor gaan stellen? Tevens zie ik niet echt het nut in van 30 maal een ~n~ te zetten als je ook gewoon de positie kan aanpassen. Je mag ook geen spaties gebruiken in TextDraws, elke spatie moet worden voorgesteld met een _ .

  • Reacties 838
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Sandra

    115

  • opacool6

    79

  • Big Boss

    57

  • Remi-X

    55

Top Posters In This Topic

Posted Images

Geplaatst:
En wat moet het ongeveer voor gaan stellen? Tevens zie ik niet echt het nut in van 30 maal een ~n~ te zetten als je ook gewoon de positie kan aanpassen. Je mag ook geen spaties gebruiken in TextDraws, elke spatie moet worden voorgesteld met een _ .

is dat nieuw?

want ik heb altijd gewoon de spatie balk ingedrukt.

  • 2 weken later...
Geplaatst: (bewerkt)

Mijn vraag:

is nog steeds niet opgelost....

waarom werkt dit niet ?:

include <a_samp>
include <WX_Phone>

new rand[MAX_PLAYERS];
new OnlinePlayers;
forward MaakTelefoonNummer(playerid);

public OnPlayerDisconnect(playerid)
{
OnlinePlayers--;
return 1;
}

public OnPlayerConnect(playerid)
{
OnlinePlayers++;
MaakTelefoonNummer(playerid);
return 1;
}

public OnPlayerSpawn(playerid)
{
new p = playerid;
if (rand[p] != WX_GetPlayerPhoneNumber(p);
{
rand[p] = 0;
MaakTelefoonNummer(playerid);
}
return 1;
}

public MaakTelefoonNummer(playerid)
{
new p = playerid;
new name[24],string[128];
GetPlayerName(p,name,24);
rand[p] = random(OnlinePlayers);
rand[p] += random(555);
rand[p] += 11111;
// als je nouw nog geen goeie mix hebt xD
printf("[%d] %s's telefoon nummer is: %d",name,p,rand[p]);
WX_SetPlayerPhoneNumber(p,rand[p]);
format(string,128,"Your Phone Number is: %d",rand[p]);
SendClientMessage(p,YLLW,string);
return 1;
}

Edit: Als jullie de commands moeten hebben zeg dat ff ;)

Bewerkt: door Crusher!!
Geplaatst: (bewerkt)

rand[p] = random(sizeof(OnlinePlayers);

Dat had ik ook al veel eerder moeten zien, je kan namelijk sizeof enkel gebruiken om de lengte of grootte van strings arrays te weten te komen.

rand[p] = random(OnlinePlayers);

Bewerkt: door Big Boss
Geplaatst:
rand[p] = random(OnlinePlayers);

Ag je ziet niet alles in 1x :)

Thnx het werkt nu..

Geplaatst: (bewerkt)

Ik probeer de /pm uit de base.pwn in mijn eigen script te krijgen maar ik krijg 2 errors...

error 017: undefined symbol "strrest"

error 033: array must be indexed (variable "gMessage")

public OnPlayerCommandText(playerid, cmdtext[])
{

new cmd[256], tmp[256], tmp2[256];
new idx;
new string[256];
cmd = strtok(cmdtext, idx);
GetPlayerName(playerid, playername, sizeof(playername));
new Message[256];
new gMessage[256];
new pName[MAX_PLAYER_NAME+1];
new iName[MAX_PLAYER_NAME+1];

//----------[PM]----------------------------------------------------------------
if (strcmp("/pm", cmd, true) == 0)
{
tmp = strtok(cmdtext,idx);
if (!strlen(tmp) || strlen(tmp) > 5) {
SendClientMessage(playerid,COLOR_RED,"Usage: /pm (id) (message)");
return 1;
}
new id = strval(tmp);
gMessage = strrest(cmdtext,idx);
if (!strlen(gMessage)) {
SendClientMessage(playerid,COLOR_RED,"Usage: /pm (id) (message)");
return 1;
}
if (!IsPlayerConnected(id)) {
SendClientMessage(playerid,COLOR_RED,"/pm : Bad player ID");
return 1;
}
if (playerid != id) {
GetPlayerName(id,iName,sizeof(iName));
GetPlayerName(playerid,pName,sizeof(pName));
format(Message,sizeof(Message),">> %s(%d): %s",iName,id,gMessage);
SendClientMessage(playerid,COLOR_RED,Message);
format(Message,sizeof(Message),"** %s(%d): %s",pName,playerid,gMessage);
SendClientMessage(id,COLOR_RED,Message);
PlayerPlaySound(id,1085,0.0,0.0,0.0);
printf("PM: %s",Message);
}
else {
SendClientMessage(playerid,COLOR_RED,"You cannot PM yourself");
}
return 1;
}

Bewerkt: door Scofield6
Geplaatst: (bewerkt)

Even een vraagje tussendoor, kan iemand me het verschil uitleggen (het liefst aan de hand van voorbeelden ^_^) tussen deze 4 soorten variabelen en waarvoor en wanneer ze gebruikt worden:

new variabele;
new variabele[5];
new variabele[MAX_PLAYERS];
new variabele[MAX_PLAYER_NAME];

Thnx! ;)

Bewerkt: door JayKay
Geplaatst:

new variabele;
new variabele[5];
new variabele[MAX_PLAYERS];
new variabele[MAX_PLAYER_NAME];

Maak integer aan

Maak array aan met grootte 5

Maak array aan met grootte 500

Maak array aan met grootte 20

MAX_PLAYERS = 500

MAX_PLAYER_NAME = 20

In een array worden veelal strings (tekst) opgeslagen, maar je kan ook individuele integers op slaan in elke 'cel' van de array. Even een voorbeeldje van Wikipedia geript:

Voorbeeld van een array van integers in de programmeertaal C:

int array[2]; // Een array met 2 integers (geen van de elementen hebben (nog) een waarde)

array[0] = 1; // Geeft het allereerste element in de array waarde 1

array[1] = 3; // Geeft het tweede element in de array waarde 3

Hierbij is de naam van de array "array" en de opgeslagen waarden in de array zijn 1 en 3. Deze waarden zijn nu te gebruiken met behulp van array[0] en array[1]. In sommige programmeertalen (bijvoorbeeld C of PHP) is 0 de index van de eerste waarde in de array, in andere programmeertalen is dit 1. Er zijn ook talen waar men zelf de ondergrens kan bepalen (bijvoorbeeld Perl).

Geplaatst:

new variabele;
new variabele[5];
new variabele[MAX_PLAYERS];
new variabele[MAX_PLAYER_NAME];

Maak integer aan

Maak array aan met grootte 5

Maak array aan met grootte 500

Maak array aan met grootte 20

MAX_PLAYERS = 500

MAX_PLAYER_NAME = 20

In een array worden veelal strings (tekst) opgeslagen, maar je kan ook individuele integers op slaan in elke 'cel' van de array. Even een voorbeeldje van Wikipedia geript:

Voorbeeld van een array van integers in de programmeertaal C:

int array[2]; // Een array met 2 integers (geen van de elementen hebben (nog) een waarde)

array[0] = 1; // Geeft het allereerste element in de array waarde 1

array[1] = 3; // Geeft het tweede element in de array waarde 3

Hierbij is de naam van de array "array" en de opgeslagen waarden in de array zijn 1 en 3. Deze waarden zijn nu te gebruiken met behulp van array[0] en array[1]. In sommige programmeertalen (bijvoorbeeld C of PHP) is 0 de index van de eerste waarde in de array, in andere programmeertalen is dit 1. Er zijn ook talen waar men zelf de ondergrens kan bepalen (bijvoorbeeld Perl).

Ah ok, dat verklaart al een hoop maar waarom zet je bij MAX_PLAYERS niet gewoon 500 neer dan, is toch een stuk korter? :puh:

En hoe zit het met array's met 2 argumenten (new variabele[4] [16] zie ik bijv. staan)?

Kan je tot slot misschien nog even uitleggen hoe je array's moet gebruiken, dat is namelijk 1 van de onderdelen uit pawno wat ik nog niet snap :)

Geplaatst:

Ah ok, dat verklaart al een hoop maar waarom zet je bij MAX_PLAYERS niet gewoon 500 neer dan, is toch een stuk korter? :puh:

Ga je gang. Maar weet wel dat als de MAX_PLAYERS verandert, je alles handmatig zal moeten veranderen.

En hoe zit het met array's met 2 argumenten (new variabele[4] [16] zie ik bijv. staan)?

Dit zijn multi-dimensional arrays en worden vaak gebruikt voor enums (enumeration)

bv.

#define MAX_PROPERTY 10

enum PROPERTY_INFO {
   Float:x,
   Float:y,
   Float:z
};

new PropInfo[MAX_PROPERTY][PROPERTY_INFO];

PropInfo[0][x] = 1852.5156;
PropInfo[0][y] = 2597.1525;
PropInfo[0][z] = 25.1684;

Kan je tot slot misschien nog even uitleggen hoe je array's moet gebruiken, dat is namelijk 1 van de onderdelen uit pawno wat ik nog niet snap :)

// Als string
new string[128];

string = "Hello World";
print(string);
// of
format(string, sizeof(string), "This %s has %d characters", "string", 29);
print(string);

// Als opslag voor meerdere integers
new array[5];
array[0] = CreateObject(...); // voeg object id 0 toe aan de array
array[1] = CreateObject(...);
array[2] = CreateObject(...);
array[3] = CreateObject(...); 
array[4] = CreateObject(...);

  • 3 weken later...
Geplaatst:

new spawnlist[] = "1\tBanshee\n2\tBMX\n3\tBloodring\n4\tBullet\n5\tCheetah\n6\tComet\n7\tDinghy\n8\tElegy\n9\tFCR-900\n10\tFreeway\n11\tHotring 1\n12\tHotring 2\n13\tHotring 3\n14\tInfernus\n15\tJester\n16\tMonster\n17\tNRG\n18\tPacker\n19\tPhoenix\n20\tQuad\n21\tSanchez\n22\tSquallo\n23\tStallion\n24\t\Sultan\n25\tTurismo\n26\tVortex\n27\tWindsor\n28\tZR-350";

Geeft error:

C:\Documents and Settings\Hidde\Bureaublad\scripting new\gamemodes\martinsnew.pwn(687) : error 027: invalid character constant
C:\Documents and Settings\Hidde\Bureaublad\scripting new\gamemodes\martinsnew.pwn(687) : error 027: invalid character constant
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

Geplaatst:

Ergens heb je dan een backslash zonder onderdeel staan. Gewoonlijk heb je \n en \t, maar ergens in jouw stukje moet enkel een \ staan. Dat is wat je moet verbeteren.

Gast
Dit onderwerp is gesloten.
  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...