Dlaczego kod funkcji nie działa?

0

Prosze sie nie smiac, zaczynam skryptowanie i nie wiem co tak naprawde robie xD
ten skrypt nie dziala, baka admin pisze: -> [Error] (6:1): Identifier expected
co to jest ten : Indentifier ???

Const
Text='/pre';

begin
if Text = '/pre' then begin
procedure GiveBonus(ID: 1; Bonus: 1);
end;
Result := false;
end;

dodanie znacznika <code class="pascal"> - Furious Programming

0

no bo tak się nie wywołuje funkcji?

GiveBonus(1,1);
0

Zacznij od kursu/książki niestety ten kod nie ma w ogóle sensu.

0

to jak ma wygladac calosc?? zmienilem na GiveBonus(1,1) ale dalej ten sam error...

0

Nie wiemy co chcesz osiągnąć ani jak wygląda twój kod w całości.

0

to co dalem to calosc :P
tu jest nowy:

Const
Text='/pre';

function OnCommand(ID: Byte; Text: string): boolean;

begin
if Text = '/pre' then begin
procedure GiveBonus(1,1);
end;
Result := false;
end;

-> [Error] (8:1): Identifier expected

dodanie znacznika <code class="pascal"> i <code> - Furious Programming

0

Niestety programowanie nie polega na przypadkowym wklejaniu "komend" w byle jakie miejsce. Musisz nauczyć się choć podstaw języka aby móc programować.

0

Po 1: pisz normalnie po polsku, a nie jakimś dialektem a'la gimbus++.
Po 2: Pascal to nie język skryptowy, więc nie może być tutaj mowy o żadnym skrypcie.
Po 3: Słowo kluczowe procedure to deklaracja procedury i nie można ją sobie od tak byle gdzie wkleić w kod.
Po 4: Procedura nie zwraca wyniku przez Result, chyba że tak nazwał byś jeden z jej paramerów poprzedzony var lub out. Normalnie jednak w ten sposób rezultat pod Delphi zwraca tylko funkcja. Także ogarnij podstawy i dopiero bierz się za kodzenie.

0

1- nie wiem o co ci chodzi
4- zrobilem podstawy ale nie pisalo nic o tym co napisales

function OnCommand(ID: Byte; Text: string): boolean;
begin
	if (LowerCase(Text) = '/pre') then begin
		GiveBonus(ID,1);
	end;
	Result := false;
end;

teraz dziala, tylko nie rozumiem co to jest to LowerCase,

dodanie znacznika <code class="pascal"> - Furious Programming

0

O to pierwsze chodziło mi o zdanie z adminem, brzmiało dla mnie jak bełkot i skojarzyło się z gimbusami. Poza tym temat był jakby pisał to "Kali z Afryka". Ok, nieważne. Co do LowerCaase to zmienia ona podany string na małe litery. Ale bezpieczniej użyć AnsiLowerCase. Jeżeli w tekstcie miały by być zawarte w przyszłości znaki diakrytyczne. Poza tym, w obecnej postaci przy spełnieniu warunku if'a, rezultat Twojej funkcji będzie niezdefiniowany. A to jest niewskazane.

0

zmieniles temat tak? ja chyba dawalem: Dlaczego to nie dzialac? tak? bo jak tak to celowo taki dalem ;p

nie czytaj tego powyzej, zle napisalem. btw czemu to forum nie ma opcji edytuj post???

0

Bo nie jesteś zalogowany, chcesz aby każdy mógł edytować twój post?

0

a to czemu nie dziala? jak to naprawic?

procedure OnPlayerKill(Killer, Victim: byte; Weapon: string);
begin
OnPlayerKill(1,2,1);
end;

-> [Error] (13:20): Type mismatch

dodanie znacznika <code class="pascal"> - Furious Programming

0

Próbujesz przekazać liczbę zamiast napisu.

0

From the Scripting Manual
procedure OnPlayerKill(Killer, Victim: byte; Weapon: string);

Parameter Info:
Killer (Byte): Player ID of the player who killed the Victim
Victim (Byte): Player ID of the Victim.
Weapon (String): Name of the weapon used to kill the Victim.

Description:
This procedure will be called every time a player dies.

a co powinienem dac?

dodanie znacznika <quote> - Furious Programming

0

Powinieneś przeczytać jakieś podstwy.
OnPlayerKill(1,2,'to jest jakiś napis czyli string');

0

dzieki, morze jeszcze pozniej cos napisze,,, tzn na pewno ;p

1 użytkowników online, w tym zalogowanych: 0, gości: 1