Jump to content
  • 0

pomoc Pár porad s pawnem


Narco

Dotaz

Takže za 1.:

Kde a jak najdu nějaký program, abych mohl tvořit scripty nebo módy?

 

 

teď už takové helpy ohledně pawna...

 

 

co je %s a co je %d?

 

a jaký je rozdíl mezi (strcmp(cmd,´´/----´´ a dcmd_---- ?

Link to comment
Share on other sites

  • Answers 53
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0
  • Administrátor

sa-mp.com/downloads.html a tam si stahnes windows server

 

%s a %d je pro formatovani textu %s pro string %d a %i integer %f float

a posledni dotaz zadny pouze v zapisu

Link to comment
Share on other sites

  • 0

Errory...

 

 

C:\Documents and Settings\Narco\Plocha\samp03e_svr_win32\pawno\test.pwn(91) : error 017: undefined symbol "cmd"

C:\Documents and Settings\Narco\Plocha\samp03e_svr_win32\pawno\test.pwn(93) : error 017: undefined symbol "COLOR_YELLOW"

C:\Documents and Settings\Narco\Plocha\samp03e_svr_win32\pawno\test.pwn(93) : error 029: invalid expression, assumed zero

C:\Documents and Settings\Narco\Plocha\samp03e_svr_win32\pawno\test.pwn(93) : error 017: undefined symbol "Vzal"

C:\Documents and Settings\Narco\Plocha\samp03e_svr_win32\pawno\test.pwn(93) : fatal error 107: too many error messages on one line

 

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

5 Errors.

 

 

Kdyby něco skopíroval jsem New... takže je to tohle:

 

 

// This is a comment

// uncomment the line below if you want to write a filterscript

//#define FILTERSCRIPT

 

#include

 

#if defined FILTERSCRIPT

 

public OnFilterScriptInit()

{

print("\n--------------------------------------");

print(" Blank Filterscript by Narcotic");

print("--------------------------------------\n");

return 1;

}

 

public OnFilterScriptExit()

{

return 1;

}

 

#else

 

main()

{

print("\n----------------------------------");

print(" Blank Gamemode by Narcotic");

print("----------------------------------\n");

}

 

#endif

 

public OnGameModeInit()

{

// Don't use these lines if it's a filterscript

SetGameModeText("Blank Script");

AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

return 1;

}

 

public OnGameModeExit()

{

return 1;

}

 

public OnPlayerRequestClass(playerid, classid)

{

SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);

SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);

SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);

return 1;

}

 

public OnPlayerConnect(playerid)

{

return 1;

}

 

public OnPlayerDisconnect(playerid, reason)

{

return 1;

}

 

public OnPlayerSpawn(playerid)

{

return 1;

}

 

public OnPlayerDeath(playerid, killerid, reason)

{

return 1;

}

 

public OnVehicleSpawn(vehicleid)

{

return 1;

}

 

public OnVehicleDeath(vehicleid, killerid)

{

return 1;

}

 

public OnPlayerText(playerid, text[])

{

return 1;

}

 

public OnPlayerCommandText(playerid, cmdtext[])

{

if (strcmp(cmd, "/balicek", true)==0) {

{

SendClientMessage(playerid,COLOR_YELLOW,´´Vzal jste si balicek´´);

GivePlayerWeapon(playerid,31,400);

return 1;

}

return 0;

}

 

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

{

return 1;

}

 

public OnPlayerExitVehicle(playerid, vehicleid)

{

return 1;

}

 

public OnPlayerStateChange(playerid, newstate, oldstate)

{

return 1;

}

 

public OnPlayerEnterCheckpoint(playerid)

{

return 1;

}

 

public OnPlayerLeaveCheckpoint(playerid)

{

return 1;

}

 

public OnPlayerEnterRaceCheckpoint(playerid)

{

return 1;

}

 

public OnPlayerLeaveRaceCheckpoint(playerid)

{

return 1;

}

 

public OnRconCommand(cmd[])

{

return 1;

}

 

public OnPlayerRequestSpawn(playerid)

{

return 1;

}

 

public OnObjectMoved(objectid)

{

return 1;

}

 

public OnPlayerObjectMoved(playerid, objectid)

{

return 1;

}

 

public OnPlayerPickUpPickup(playerid, pickupid)

{

return 1;

}

 

public OnVehicleMod(playerid, vehicleid, componentid)

{

return 1;

}

 

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)

{

return 1;

}

 

public OnVehicleRespray(playerid, vehicleid, color1, color2)

{

return 1;

}

 

public OnPlayerSelectedMenuRow(playerid, row)

{

return 1;

}

 

public OnPlayerExitedMenu(playerid)

{

return 1;

}

 

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)

{

return 1;

}

 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

{

return 1;

}

 

public OnRconLoginAttempt(ip[], password[], success)

{

return 1;

}

 

public OnPlayerUpdate(playerid)

{

return 1;

}

 

public OnPlayerStreamIn(playerid, forplayerid)

{

return 1;

}

 

public OnPlayerStreamOut(playerid, forplayerid)

{

return 1;

}

 

public OnVehicleStreamIn(vehicleid, forplayerid)

{

return 1;

}

 

public OnVehicleStreamOut(vehicleid, forplayerid)

{

return 1;

}

 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

return 1;

}

 

public OnPlayerClickPlayer(playerid, clickedplayerid, source)

{

return 1;

}

 

Link to comment
Share on other sites

  • 0

Ja Vás nechápem, ešte aj to posr*né SCM musíš skopírovať ?

Miesto COLOR_YELLOW musíš dať HEX alebo si to nadefinuj.

 

Nejaké farby:

 

#define FARBA_0 0xFF0000FF

#define FARBA_1 0xFF1100FF

#define FARBA_2 0xFF2200FF

#define FARBA_3 0xFF3300FF

#define FARBA_4 0xFF4400FF

#define FARBA_5 0xFF5500FF

#define FARBA_6 0xFF6600FF

#define FARBA_7 0xFF7700FF

#define FARBA_8 0xFF8800FF

#define FARBA_9 0xFF9900FF

#define FARBA_10 0xFFAA00FF

#define FARBA_11 0xFFBB00FF

#define FARBA_12 0xFFCC00FF

#define FARBA_13 0xFFDD00FF

#define FARBA_14 0xFFEE00FF

#define FARBA_15 0xFFFF00FF

#define FARBA_16 0xEEFF00FF

#define FARBA_17 0xDDFF00FF

#define FARBA_18 0xCCFF00FF

#define FARBA_19 0xBBFF00FF

#define FARBA_20 0xAAFF00FF

#define FARBA_21 0x99FF00FF

#define FARBA_22 0x88FF00FF

#define FARBA_23 0x77FF00FF

#define FARBA_24 0x66FF00FF

#define FARBA_25 0x55FF00FF

#define FARBA_26 0x44FF00FF

#define FARBA_27 0x33FF00FF

#define FARBA_28 0x22FF00FF

#define FARBA_29 0x11FF00FF

#define FARBA_30 0x00FF00FF

#define FARBA_31 0x00FF11FF

#define FARBA_32 0x00FF22FF

#define FARBA_33 0x00FF33FF

#define FARBA_34 0x00FF44FF

#define FARBA_35 0x00FF55FF

#define FARBA_36 0x00FF66FF

#define FARBA_34 0x00FF77FF

#define FARBA_35 0x00FF88FF

#define FARBA_36 0x00FF99FF

#define FARBA_37 0x00FFAAFF

#define FARBA_38 0x00FFBBFF

#define FARBA_39 0x00FFCCFF

#define FARBA_40 0x00FFDDFF

#define FARBA_41 0x00FFEEFF

#define FARBA_42 0x00FFFFFF

#define FARBA_43 0x00EEFFFF

#define FARBA_44 0x00DDFFFF

#define FARBA_45 0x00CCFFFF

#define FARBA_46 0x00BBFFFF

#define FARBA_47 0x00AAFFFF

#define FARBA_48 0x0099FFFF

#define FARBA_49 0x0088FFFF

#define FARBA_50 0x0077FFFF

#define FARBA_51 0x0066FFFF

#define FARBA_52 0x0055FFFF

#define FARBA_53 0x0044FFFF

#define FARBA_54 0x0033FFFF

#define FARBA_55 0x0022FFFF

#define FARBA_56 0x0011FFFF

#define FARBA_57 0x0000FFFF

#define FARBA_58 0x1100FFFF

#define FARBA_59 0x2200FFFF

#define FARBA_60 0x3300FFFF

#define FARBA_61 0x4400FFFF

#define FARBA_62 0x5500FFFF

#define FARBA_63 0x6600FFFF

#define FARBA_64 0x7700FFFF

#define FARBA_65 0x8800FFFF

#define FARBA_66 0x9900FFFF

#define FARBA_67 0xAA00FFFF

#define FARBA_68 0xBB00FFFF

#define FARBA_69 0xCC00FFFF

#define FARBA_70 0xDD00FFFF

#define FARBA_71 0xEE00FFFF

#define FARBA_72 0xFF00FFFF

#define FARBA_73 0xFF00EEFF

#define FARBA_74 0xFF00DDFF

#define FARBA_75 0xFF00CCFF

#define FARBA_76 0xFF00BBFF

#define FARBA_77 0xFF00AAFF

#define FARBA_78 0xFF0099FF

#define FARBA_79 0xFF0088FF

#define FARBA_80 0xFF0077FF

#define FARBA_81 0xFF0066FF

#define FARBA_82 0xFF0055FF

#define FARBA_83 0xFF0044FF

#define FARBA_84 0xFF0033FF

#define FARBA_85 0xFF0022FF

#define FARBA_86 0xFF0011FF

 

#define FARBA_87 0x000000FF

#define FARBA_88 0x111111FF

#define FARBA_89 0x222222FF

#define FARBA_90 0x333333FF

#define FARBA_91 0x444444FF

#define FARBA_92 0x555555FF

#define FARBA_93 0x666666FF

#define FARBA_94 0x777777FF

#define FARBA_95 0x888888FF

#define FARBA_96 0x999999FF

#define FARBA_97 0xAAAAAAFF

#define FARBA_98 0xBBBBBBFF

#define FARBA_99 0xCCCCCCFF

#define FARBA_100 0xDDDDDDFF

#define FARBA_101 0xEEEEEEFF

#define FARBA_102 0xFFFFFFFF

Zdroj: gta.cz

Link to comment
Share on other sites

  • 0

sak je to farbaaaaaaaa v hex kodeeeeee, co ine by to bolooooooo

(Az na to ze ta farba ma o cislo viac)

 

Priklad:

SendClientMessageToAll(0x00AA00FF, "Čaute ľudia !");

Link to comment
Share on other sites

  • 0

Panebože.

%s je formátování textu

%d, %i je formátování čísel

%f, %.1f, %.2f ... je formátování desetinných čísel

%c je formátování znaků

%x je formátování decimálního čísla na hexadecimální

%b je formátování z decimálního čísla na dvojkové

 

Všechno patří k funkci format().

Malý příklad:

new cislo = 14, text[5] = "ahoj", Float:desetinne = 75.3658, pro_znak = 36, retezec[128];
format(retezec,sizeof(retezec),"Číslo: %d, %i | Text: %s | Desetinné na 2 místa: %.2f | Znak: %c | Hex z %d je %x |", cislo, cislo, text, desetinne, pro_znak, cislo, cislo);

 

Barvy:

Skládají se z HEX čísla (čísla v 16kové soustavě).

Každé hex číslo v pawnu musí začínat znaky 0x ...hex číslo musí být 8mi místné. Příklad:

0xABCDEFAA ..

AB = oddíl pro červenou

CD = oddíl pro zelenou

EF = oddíl pro modrou

AA = oddíl pro průhlednost (ta funguje jen u barev, které mají hráči).

 

DCMD a strcmp:

Jsou to 2 odlišné funkce.

DCMD je dělané na příkazy.

funkce strcmp() je funkce, které porovnává 2 řetězce (textové). Tato funkce vrací číslo pozice, kde se začínají oba řetězce shodovat. Pokud máš porovnávat dva řetězce (stringy) "mm ahoj" a "ahoj", zapíšeš do do strcmp takto:

strcmp("mm ahoj", "ahoj")

Vrátí to číslo 3.

Kdybys porovnával řetězce "ahoj" a "ahoj" vrátí strcmp číslo 0, protože se shodují od začátku. Kdybys porovnával řetezce "ahoj" a "čau", tak strcmp vrátí -1, protože se řetězce neshodují. Další parametry v strcmp si najdeš.

Proč se to používá na příkazy?

Protože při zadání příkazu můžeš porovnat jestli se tvůj zadaný příkaz (řetězec) shoduje s nějakým příkazem (řetězcem) co máš napsaný v pawnu. Například takto:

public OnPlayerCommandText(playerid, cmdtext[])
{
 if(strcmp("/mujprikaz",cmdtext,true)==0) //to true značí, že ignoruješ velikost písmen (bude shodné /MUjPRIkaz když zadáš /mujprikaz)
 {
   //Tady se vykonal můj příkaz
   return 1; //dává se proto, aby ti nepsal server po zadání příkazu "SERVER: Unknown Command"
 }
 return 0; //U FilterScriptů dávej return 1; jinak return 0;, nebo vlastní zprávu (dočteš se jinde)
}

 

K errorům se nebudu vyjadřovat, s pawnem začínáš ze špatné části. Nauč se napřed co jsou proměnné, definice, vlastní funkce, jak poslat zprávu na obrazovku, jak do chatu, jak pro všechny a jak pro jednoho...

Link to comment
Share on other sites

  • 0

Dále bych se chtěl zeptat...

Mám takovou věc, že dám /ahoj a řekne to všem Pozdrav od hráče, rád bych tam nějak dal nick toho hráče. Dám Pozdrav od hráče %s ale na další řádek mam dát co aby mi to ukázalo nick toho kdo dal příkaz /ahoj. Děkuji

exirang tobě taky dík, já jsem teprve teď začal s pawnem..

Link to comment
Share on other sites

  • 0
AA = oddíl pro průhlednost (ta funguje jen u barev, které mají hráči)

Pekne napísané, ale odtieň funguje aj u 3DTextov, Gang Zón, Textdrawoch, ObjectMaterialoch... :d

Link to comment
Share on other sites

  • 0
Dále bych se chtěl zeptat...

Mám takovou věc, že dám /ahoj a řekne to všem Pozdrav od hráče, rád bych tam nějak dal nick toho hráče. Dám Pozdrav od hráče %s ale na další řádek mam dát co aby mi to ukázalo nick toho kdo dal příkaz /ahoj. Děkuji

exirang tobě taky dík, já jsem teprve teď začal s pawnem..

new nick[24]; //premenna pre meno hraca

GetPlayerName(playerid, nick, 24); //tento riadok nastavi premennu ako hracove meno

new sprava[128]; //vytvorime premennu ktoru naformatujeme a nasledne odosleme do chatu (128 = maximalne 128 znakov)

format(sprava, 128, "Pozdrav od hráča %s", nick); //tuto to dosadi miesto %s hracove meno (teda premennu ktora v sebe nesie hracove meno)

SendClientMessageToAll(0xFF0000FF, sprava); //odosle tu naformatovanu spravu

Link to comment
Share on other sites

  • 0
C:\Documents and Settings\Narco\Plocha\samp03e_svr_win32\pawno\atest.pwn(11) : error 017: undefined symbol "string"
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Link to comment
Share on other sites

  • 0
C:\Documents and Settings\Alan\Plocha\samp03e_svr_win32\pawno\atest.pwn(11) : error 017: undefined symbol "string"
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

jaj sory, preklep, zmeň to na sprava (to string) :d

Link to comment
Share on other sites

  • 0

Dále..

 

Háže to errory

C:\Documents and Settings\Narco\Plocha\samp03e_svr_win32\pawno\dialogg.pwn(8) : error 017: undefined symbol "dialogid"
C:\Documents and Settings\Narco\Plocha\samp03e_svr_win32\pawno\dialogg.pwn(10) : error 017: undefined symbol "response"
C:\Documents and Settings\Narco\Plocha\samp03e_svr_win32\pawno\dialogg.pwn(14) : error 017: undefined symbol "response"
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


3 Errors.

 

 

Když to dám podle návodu

 

 

#include

 

public OnPlayerCommandText(playerid, cmdtext[])

{

if(!strcmp("/ttestt", cmdtext, true))

{

ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Nadpis","Text,\nText\nText","OK","?");

if(dialogid == 1) //ID Dialógu

{

if(response == 1) // Tlačidlo 1 (Ľavé tlačidlo)

{

SendClientMessage(playerid,0xFFFFFFFF,"Stlačil si na ľavé tlačidlo (Prvé).");

}

else if(response == 0) //Tlačidlo 2 (Pravé tlačidlo)

{

SendClientMessage(playerid,0xFFFFFFFF,"Stlačil si na pravé tlačidlo (Druhé).");

}

}

 

return true;

}

return false;

}

 

 

co s nima?

Link to comment
Share on other sites

  • 0

toto:

 

if(dialogid == 1) //ID Dialógu

{

if(response == 1) // Tlačidlo 1 (Ľavé tlačidlo)

{

SendClientMessage(playerid,0xFFFFFFFF,"Stlačil si na ľavé tlačidlo (Prvé).");

}

else if(response == 0) //Tlačidlo 2 (Pravé tlačidlo)

{

SendClientMessage(playerid,0xFFFFFFFF,"Stlačil si na pravé tlačidlo (Druhé).");

}

}

 

musíš dať do OnDialogResponse

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...