CAWTE POZRITE CO MI VYPISUJE
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(41) : warning 213: tag mismatch
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(41) : warning 202: number of arguments does not match definition
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(41) : warning 202: number of arguments does not match definition
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(41) : warning 202: number of arguments does not match definition
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(41) : warning 202: number of arguments does not match definition
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(47) : warning 217: loose indentation
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(68) : warning 217: loose indentation
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(105) : error 017: undefined symbol "IsPlayerInSphere"
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(108) : error 017: undefined symbol "string"
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(108) : error 017: undefined symbol "string"
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(108) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Marek\Pracovná plocha\samp2\ZIVOT2.pwn(108) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
toto je na to navod a urcite je tam chyba
Po prvé: Nadefinujeme povolanie
new povolanie[MAX_PLAYERS];
Ďalej musíme dať do publicu OnPlayerConnect
povolanie[playerid] = 0;
Samozrejme ak máte registráciu povolanie sa uloží. Ale ak nie, vždy keď sa pripojíte znovu budete nezamestnaný...
Do publicu OnPlayerCommandText si dáme samotný príkaz na povolanie
if(strcmp("/taxikar", cmdtext, true) == 0) { -Príkaz
if(IsPlayerInSphere(playerid,205.9575,-229.6653,1.7786,5) == 1) { -IsPlayerInSphere. Veľmi dôležite. Namiesto súradníc si dajte vaše. To 5 je radius čiže dosah.
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), " %s sa stal taxikárom!!", pname);
SendClientMessageToAll(COLOR_RED, string);
printf(string);
povolanie[playerid] = 1; -nastaví povolanie 1. Pri iných povolaniach to bude 2,3,4...
SetSpawnInfo(playerid,1,71,203.9847,-236.9536,1.6733,178.2899,0,0,0,0,0,0); -Tu sa bude hráč spawnovať
SetPlayerInterior(playerid,0); -Nastaví interiér 0 čo je vonku. Interiéri budov zistíte priamo v hre príkazom /interior
SpawnPlayer(playerid); -Spawne hráča
}
return 1;
}
Ďalej si musíme nadefinovať IsPlayerInSphere takže hocikde si dajte
IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)
{
if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){
return 1;
}
return 0;
}
GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)
{
new Float:x1,Float:y1,Float:z1;
new Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z1);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower
(floatabs(floatsub(z,z1)),2)); (tento riadok patrí k tomu hore, lenže pre šírku stránky sme ho museli oddeliť, vy si ho spojte)
return floatround(tmpdis);
}
Ďalej niečo nepotrebné, ale ak chcete, hodí sa to. Pickup. Takže napr takto:
new taxipickup;
Do OnGameModeInit si dajte
taxipickup = CreatePickup(1239,1,205.9575,-229.6653,1.7786);
No a naposledy do publicu OnPlayerPickUpPickup
if(pickupid == taxipickup)
{
GameTextForPlayer(playerid,"~r~Ak sa chces stat taxikarom napis ~g~/taxikar",3000,5);
}