Jump to content
Geplaatst:
comment_788535

Mocht je (kleine) problemen hebben met een SA:MP pawnscript, stel je vraag dan hier. Het is hier dus niet de bedoeling dat je om een script gaat vragen. Het gaat alleen om jouw eigen code.

Maar houdt met het volgende wel even rekening zodat het topic overzichtelijk blijft:

  • Toon altijd de volledige code van de functie waarin het probleem zich bevindt.
  • Gebruik om je pawnscript te tonen de BB-tags "code" of zet het even op Pastebin als het script te groot is.
  • Ga niet dubbelposten als er nog niemand op je vraag heeft gereageerd. Heb geduld.
  • En het belangrijkste gebruik eerst altijd de zoekfunctie, wellicht is jouw vraag al gesteld.

  • Reacties 838
  • Bezichtigingen 205.2k
  • Created
  • Laatste reactie

Top Posters In This Topic

Featured Replies

Geplaatst:
comment_844884

Ik heb in de standaard-script gekeken die meegeleverd word bij de server, staat een game-mode bij genaamd LS-parachute, daar zullen ze het wel goed hebben gedaan. (denk ik)

daar staatie als volgt:

AddStaticPickup(371, 15, X,Y,Z);

Dan is die 371 natuurlijk de parachute, en de 15 is het type.

Alle types die mogelijk zijn staan ook hier ergens in het script-forum, Als die nog vind zeg ik het wel.

Geplaatst:
comment_844952

heey :D

is het mogenlijk dat als ik /parachute typ, dat ik dan een parachute heb?

want ik vind daar geen command voor ^_^

ik weet wel dat je dat met een pickup kan doen, maar kan het dan ook zo dat je die parachute direct hebt? :?

Geplaatst:
comment_844961

Ja het is mogelijk. Heel simpel zelfs.

IK leg het even uit:

Eerst gaan we naar de callback:

public OnPlayerCommandText(playerid, cmdtext[])

(is ie er niet? Dan maak je hem gewoon zelf aan en zet je hem onderaan het script.

Dan pak je dit stukje code:

 if(strcmp(cmdtext, "/parachutte", true) == 0)
      {

Dat staat nu onder aan die callback dus er staat nu:

public OnPlayerCommandText(playerid, cmdtext[])

if(strcmp(cmdtext, "/parachutte", true) == 0)

      {

Nu moeten we onder de accolade wat toevoegen wat we willen. Dit doen we met dit stukje:

GivePlayerWeapon(playerid, 46, 1);

playerid, dat moet er standaard in staan, en dan die 46. Dat is de ID van de parachutte. Voor een lijst met ID's van wapens: Klik Hier!. Je neemt de ID die ervoor staat. Zorg wel(als je gaat werken met /m4... Dat je niet twee wapens pakt die uit hetzelfde slot komen(geen M4 en AK-57 samen nemen ofzo.)

Zo, nu het tweede cijfer, dit is de munitie. Ik heb hier 1 gepakt omdat je ook maar 1 parachutte nodig hebt. Maar als je een andere gun pakt. Dan kan je beter 50 of 100 nemen.

Dus, je sluit dan nog eens met een accolade. Dit is je commando nu:

public OnPlayerCommandText(playerid, cmdtext[])

if(strcmp(cmdtext, "/parachutte", true) == 0)
      {
 GivePlayerWeapon(playerid, 46, 1);
 }

Je kan er nu ook nog wat andere dingen aan toevogen zoals een bericht van: Hey, veel plezier. Dus. Stuur maar een PB als ik je wil dat ik je dat ook uitleg.

Ik hoop dat je er iets aan had!

Rivel

@ Ymoske Ach, je was me voor.

Bewerkt: door Rivel

Geplaatst:
comment_844963

bedankt ;)

Ymosky:

(Ik heb wel is een heel script gehad met alleen maar test-commands :D )

met wat anders dan?

bij deze command zou die tekst normaal 4000 milliseconden moeten

verschijnen, maar hij blijft gewoon staan...

totdat ik eens sterf :{

public OnPlayerConnect(playerid) //Connectmessege
{
   new pName[MAX_PLAYER_NAME];
   new string[48];
   GetPlayerName(playerid, pName, sizeof(pName));
   format(string, sizeof(string), "%s has joined the server.", pName);
   SendClientMessageToAll(0xFF6600AA, string);

GameTextForPlayer(playerid,"~g~Welcome!",4000,2);
   return 1;
}

en hier, komt die text er niet op (degene die in het midden moet staan;

want de andere komt er wel op)

public OnPlayerDeath(playerid, killerid, reason)
{
GameTextForPlayer(playerid,"~w~WASTED!",4000,2);
	GameTextForPlayer(playerid,"~w~lol, you died.",4000,1);
   SendDeathMessage(killerid, playerid, reason);
   return 1;
}

>>> Door Azer: Posts samengevoegd.<<<

Bewerkt: door Azer

Geplaatst:
comment_844967

Jongen, ik ben geen Mod. Maar waarom al die dubbelposts?

Ok, ik heb nu dit stukje:

  if(strcmp(cmdtext, "/cardive", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
	new Float:x;
	new Float:y;
	new Float:z;
	GetVehiclePos(GetPlayerVehicleID(playerid), x , y, z);
	SetVehiclePos(GetPlayerVehicleID(playerid), x , y, z+500);
	SetVehiceZAngle(GetPlayerVehicleID(playerid), hoek);
	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
}
else
{
	new Float:x;
	new Float:y;
	new Float:z;
	GetPlayerPos(playerid,x,y,z);
	SetPlayerPos(playerid, x, y, z+500);
	SetPlayerFacingAngle(playerid, kijkrichting);
	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
}

}

En cardive dus. Maar ik krijg dit hier asl fouten!:

C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(103) : warning 219: local variable "x" shadows a variable at a preceding level
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(104) : warning 219: local variable "y" shadows a variable at a preceding level
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(105) : warning 219: local variable "z" shadows a variable at a preceding level
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(126) : warning 219: local variable "x" shadows a variable at a preceding level
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(127) : warning 219: local variable "y" shadows a variable at a preceding level
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(128) : warning 219: local variable "z" shadows a variable at a preceding level
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(134) : error 010: invalid function or declaration
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(136) : error 010: invalid function or declaration
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(141) : error 021: symbol already defined: "GetVehiclePos"
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(143) : error 010: invalid function or declaration
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(143 -- 146) : error 010: invalid function or declaration
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(143 -- 148) : error 021: symbol already defined: "x"
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(143 -- 148) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


7 Errors.

Ik zie het echt niet!

Bewerkt: door Rivel

Geplaatst:
comment_844969

misschien werkt het zo:

if(strcmp(cmdtext, "/cardive", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
		new Float:x;
       	new Float:y;
       	new Float:z;
       	GetVehiclePos(GetPlayerVehicleID(playerid), x , y, z);
       	SetVehiclePos(GetPlayerVehicleID(playerid), x , y, z+500);
       	SetVehiceZAngle(GetPlayerVehicleID(playerid), hoek);
       	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
	}
   	else
   	{
       	new Float:x;
       	new Float:y;
       	new Float:z;
       	GetPlayerPos(playerid,x,y,z);
       	SetPlayerPos(playerid, x, y, z+500);
       	SetPlayerFacingAngle(playerid, kijkrichting);
       	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
return 1
}

}

en die "hoek" en "kijkrichting" moet je ook nog invullen

Bewerkt: door [wwg] Pulverizer_Be [ldr]

Geplaatst:
comment_845002

bij deze command zou die tekst normaal 4000 milliseconden moeten

verschijnen, maar hij blijft gewoon staan...

totdat ik eens sterf :{

public OnPlayerConnect(playerid) //Connectmessege
{
   new pName[MAX_PLAYER_NAME];
   new string[48];
   GetPlayerName(playerid, pName, sizeof(pName));
   format(string, sizeof(string), "%s has joined the server.", pName);
   SendClientMessageToAll(0xFF6600AA, string);

GameTextForPlayer(playerid,"~g~Welcome!",4000,2);
   return 1;
}

en hier, komt die text er niet op (degene die in het midden moet staan;

want de andere komt er wel op)

public OnPlayerDeath(playerid, killerid, reason)
{
GameTextForPlayer(playerid,"~w~WASTED!",4000,2);
	GameTextForPlayer(playerid,"~w~lol, you died.",4000,1);
   SendDeathMessage(killerid, playerid, reason);
   return 1;
}

>>> Door Azer: Posts samengevoegd.<<<

Het feit dat "Wasted" net zo lang in beeld blijft staan totdat je doodgaat heeft te maken met dat je gametext lettertype '2' gebruikt.

GameTextForPlayer(playerid,"~w~WASTED!",4000,2);

En dat er maar 1 text verschijnt, komt omdat je maar 1 gametext tegelijkertijd kan zien.

Geplaatst:
comment_845022

misschien werkt het zo:

if(strcmp(cmdtext, "/cardive", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
		new Float:x;
       	new Float:y;
       	new Float:z;
       	GetVehiclePos(GetPlayerVehicleID(playerid), x , y, z);
       	SetVehiclePos(GetPlayerVehicleID(playerid), x , y, z+500);
       	SetVehiceZAngle(GetPlayerVehicleID(playerid), hoek);
       	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
	}
   	else
   	{
       	new Float:x;
       	new Float:y;
       	new Float:z;
       	GetPlayerPos(playerid,x,y,z);
       	SetPlayerPos(playerid, x, y, z+500);
       	SetPlayerFacingAngle(playerid, kijkrichting);
       	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
return 1
}

}

en die "hoek" en "kijkrichting" moet je ook nog invullen

Nee nog altijd.

Geplaatst:
comment_845064

misschien werkt het zo:

if(strcmp(cmdtext, "/cardive", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
		new Float:x;
       	new Float:y;
       	new Float:z;
       	GetVehiclePos(GetPlayerVehicleID(playerid), x , y, z);
       	SetVehiclePos(GetPlayerVehicleID(playerid), x , y, z+500);
       	SetVehiceZAngle(GetPlayerVehicleID(playerid), hoek);
       	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
	}
   	else
   	{
       	new Float:x;
       	new Float:y;
       	new Float:z;
       	GetPlayerPos(playerid,x,y,z);
       	SetPlayerPos(playerid, x, y, z+500);
       	SetPlayerFacingAngle(playerid, kijkrichting);
       	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
return 1
}

}

en die "hoek" en "kijkrichting" moet je ook nog invullen

Nee nog altijd.

ok :{

dan weet ik het ook niet ...

Geplaatst:
comment_845265

Een type-foutje in "SetVehiceZAngle" dit moet zijn SetVehicleZAngle

Verder ontbreekt achter Return 1 de ;

En volgens mij moet onder het eerste stukje code ook nog een Return 1; (maar dat weet ik nie 100% zeker)

Zoals hieronder kan ikzelf hem gewoon compilen, ik had ff willekeurige getallen ingevuld bij die hoek en kijkrichting

	if(strcmp(cmdtext, "/cardive", true) == 0)
{
	if(IsPlayerInAnyVehicle(playerid))
	{
		new Float:x;
		new Float:y;
		new Float:z;
		GetVehiclePos(GetPlayerVehicleID(playerid), x , y, z);
		SetVehiclePos(GetPlayerVehicleID(playerid), x , y, z+500);
		SetVehicleZAngle(GetPlayerVehicleID(playerid), 90);
		SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
		return 1;
	}
	else
	{
		new Float:x;
		new Float:y;
		new Float:z;
		GetPlayerPos(playerid,x,y,z);
		SetPlayerPos(playerid, x, y, z+500);
		SetPlayerFacingAngle(playerid, 50);
		SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
		return 1;
	}

}

Bewerkt: door Ymosky

Geplaatst:
comment_845311

Nee, en nog iets. Ik kan het precies niet meer een simpele teleport:

	if(strcmp(cmdtext,"/hydrafun", 10, true) == 0)
{
SetPlayerPos(playerid, 4959.405273, -1077.881592, 1.000477);
SendClientMessage(playerid, 0xFF6600AA, "Hydra Fun Started. Get A Hydra And Chill!");

return 1;
}

En dit is de error

C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(137) : error 010: invalid function or declaration
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(142) : error 010: invalid function or declaration
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

Ik word er echt gek van! :schater:

@ Azer Thx

Bewerkt: door Rivel

Geplaatst:
  • Auteur
comment_845511
	if(strcmp(cmdtext,"/hydrafun", 10, true) == 0)
{
SetPlayerPos(playerid, 4959.405273, -1077.881592, 1.000477);
SendClientMessage(playerid, 0xFF6600AA, "Hydra Fun Started. Get A Hydra And Chill!");

return 1;
}

En dit is de error

C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(137) : error 010: invalid function or declaration
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\SAMP Server\gamemodes\ServerTestjes.pwn(142) : error 010: invalid function or declaration
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

public OnPlayerCommandText(playerid, cmdtext[])
{
  if(strcmp(cmdtext,"/hydrafun", true) == 0)
{
SetPlayerPos(playerid, 4959.405273, -1077.881592, 1.000477);
SendClientMessage(playerid, 0xFF6600AA, "Hydra Fun Started. Get A Hydra And Chill!");
return 1;
}
  return 0;
}

Geplaatst:
comment_845573

ik had zo een teleport gemaak, dat als ik te voet ben, ik ergens naartoe kan,

en als ik in een wagen zit, dat ik dan niet kan teleporteren.

maar is het dan ook mogelijk om het wel mogenlijk te maken om je met een wagen

te teleporteren, als die wagen een pcj 600 is :?

(sorry voor rare zinsbouw, maar ik kan het niet beter uitleggen ^_^ )

dus te voet of met een pcj 600 (id 461) kan je er wel naartoe, maar met een andere

wagen niet :)

deze script had ik al:

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/buildingjump", true) == 0)
{
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        SendClientMessage(playerid, 0xAA3333AA, "Vehicles may not be teleported to BuildingJump.");
		SendClientMessage(playerid, 0xAA3333AA, "Please leave your vehicle here.");
    }
    else
    {
        SetPlayerPos(playerid,-2882.8174,-3074.8611,79.6127);
        SetPlayerFacingAngle(playerid,270.0000);
        SetCameraBehindPlayer(playerid);
        SendClientMessage(playerid, 0xFF6600AA, "You have been teleportated to -BuildingJump-");
	}
	return 1;
}

ik heb het al eens proberen te maken, maar die command werkt niet juist: ik kon namelijk toch met

gewone auto's er naartoe gaan :muur:

alvast bedankt! :puh:

Bewerkt: door [wwg] Pulverizer_Be [ldr]

Gast
Dit onderwerp is gesloten.

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.