Skocz do zawartości
grasmanek94

[Inne][PAWN+AMX PLUGINS] dla GTA San Andreas Singleplayer

Rekomendowane odpowiedzi

Przedstawiam wam PAWN dla GTA San Andreas Singleplayer.

Pracuje nad tym od jakiegos czasu, terazniejsza wersja: "samod Beta v0.3".

Autorstwa oczywiscie mojego - Gamer_Z.

Download Link:

samod-beta v0.3

Instrukcje: wypakuj wszystko co w "GTA San Andreas" do folderu GTA na Twoim komputerze.

Zrob backupy plikow ktore ten mod przepisuje (vorbis.dll), chyba ze masz juz cleo zainstalowane (4+) to omin pliki vorbisfile.dll, vorbishooked.dll oraz vorbis.dll.

Glowny include to #include <a_singleplayer>.

Oto i on:


#if defined _singleplayer_included

    #endinput

#endif

#define _singleplayer_included

#pragma library PawnForSinglePlayer


#include <core>

#include <file>

#include <float>

#include <string>

#include <time>


#pragma tabsize 4


native GetGameVersion();

native GetBlurLevel();

native GetGameTime(&hour,&minute);

native Float:GetFPS();

native Float:GetGameSpeed();

native Float:GetGravity();

native GetBikeFrontWheelCounter();

native Float:GetBikeFrontWheelDist();

native GetBikeRearWheelCounter();

native Float:GetBikeRearWheelDist();

native GetCarLess3WheelCounter();

native GetCarTwoWheelCounter();

native Float:GetCarTwoWheelDist();

native bool:GetCrossHair(&Float:x,&Float:y);//return value - crosshair::enabled/disabled

native GetDoesNotGetTired();

native Float:GetFPSMoveHeading();

native GetLastTimeBigGunFired();

native GetLastTimeEaten();

native GetPlayerMoney();

native GetWantedLevel();

native SetMaximumWantedLevel(MaxWantedLevel);

native SetWantedLevel(WantedLevel);

native SetWantedLevelNoDrop(WantedLevel);

native SetWantedLevelNoFlash(WantedLevel);

native GivePlayerParachute();

native SetDoesNotGetTired(bool:DoesNotGetTired);

native SetLastTimeBigGunFired(time);

native SetLastTimeEaten(time);

native SetPlayerMoney(money);

native StreamParachuteWeapon(bool:AllowParachute);

native RemoveWeaponModel(model);

native RemoveAllWeapons();

native GetAreaCode();

native Float:GetArmor();

native bool:GetCanBeShotInVehicle();

native bool:GetCantBeKnockedOffBike();

native Float:GetCurrentRotation();

native Float:GetCurrentWeaponRange();

native GetCurrentWeaponSlot();

native Float:GetDistFromCentreOfMassToBase();

native Float:GetElasticity();

native GetFightingStyle();

native GetFootBlood();

native Float:GetHealth();

native Float:GetMass();

native GetModelIndex();

native GetMovementSpeed(&Float:x,&Float:y,&Float:z);

native GetOccupiedSeat();

native Float:GetOxygenLevel();

native GetPosition(&Float:x,&Float:y,&Float:z);

native GetRunState();

native bool:GetStayInSamePlace();

native Float:GetTargetRotation();

native bool:GetTestForShotInVehicle();

native Float:GetTurnMass();

native GetTurnSpeed(&Float:x,&Float:y,&Float:z);

native bool:GetUnderwater();

native GetType();

native GiveWeapon(WeaponType,Ammo,WeaponSkill);

native bool:IsBackfaceCulled();

native bool:IsDucking();

native bool:IsFullyVisible();

native bool:IsInWater();

native bool:IsOnFire();

native bool:IsOnScreen();

native IsStatic();

native bool:IsStaticWaitingForCollision();

native bool:IsVisible();

native bool:IsWearingGoggles();

native Respawn(Float:x,Float:y,Float:z,bool:CameraCut);

native SetAreaCode(areacode);

native SetArmor(Float:armor);

native SetBackfaceCulled(bool:backfaceculled);

native Float:GetBuoyancyConstant();

native SetBuoyancyConstant(Float:constante);

native SetCanBeShotInVehicle(bool:Shot);

native SetCantBeKnockedOffBike(CantBeKnockedOffBike);

native SetCurrentRotation(Float:rot);

native SetCurrentWeaponSlot(slot);

native SetDucking(bool:Duck);

native SetElasticity(Float:elasticity);

native SetFightingStyle(ightingStyle);

native SetFootBlood(FootBlood);

native SetGogglesState(bool:IsWearingThem);

native SetHealth(Float:health);

native SetIsStanding(bool:standing);

native SetLighting(Float:lighting);

native Float:GetLighting();

native SetMass(Float:mass);

native SetModelIndex(index);

native SetMoveSpeed(Float:x,Float:y,Float:z);

native SetOccupiedSeat(seat);

native SetOnFire(bool:OnFire);

native SetOrientation(Float:x,Float:y,Float:z);

native SetOxygenLevel(Float:level);

native SetPosition(Float:x,Float:y,Float:z);

native SetStaticWaitingForCollision(bool:Static);

native SetStayInSamePlace(bool:Stay);

native SetTargetRotation(Float:rot);

native SetTestForShotInVehicle(bool:Test);

native SetTurnMass(Float:mass);

native SetTurnSpeed(Float:x,Float:y,Float:z);

native SetUnderwater(bool:UnderWater);

native SetUsesCollision(bool:UsesCollision);

native SetVisible(bool:Visible);

native Teleport(Float:x,Float:y,Float:z);

native SetGravity(Float:gravity);

native SetBlurLevel(blurlevel);

native SetGameSpeed(Float:gamespeed);//1.0 = 100%


forward OnScriptInit();

forward OnScriptExit();

forward ProcTick();

forward OnPlayerHealthChange(Float:oldHealth,Float:newHealth);

forward KeyBoardStateChange(wparam,lparam);


/*

if(wparam == KEY), NOT (wparam & KEY)

wParam->


Bits    Description

0-15    The repeat count. The value is the number of times the keystroke is repeated as a result of the user's holding down the key.

16-23    The scan code. The value depends on the OEM.

24        Indicates whether the key is an extended key, such as a function key or a key on the numeric keypad. The value is 1 if the key is an extended key; otherwise, it is 0.

25-28    Reserved.

29        The context code. The value is 1 if the ALT key is down; otherwise, it is 0.

30        The previous key state. The value is 1 if the key is down before the message is sent; it is 0 if the key is up.

31        The transition state. The value is 0 if the key is being pressed and 1 if it is being released.


/////////////////////////////////////////


Name    Numeric value    Description

VK_ABNT_C1    0xC1    Abnt C1

VK_ABNT_C2    0xC2    Abnt C2

VK_ADD    0x6B    Numpad +

VK_ATTN    0xF6    Attn

VK_BACK    0x08    Backspace

VK_CANCEL    0x03    Break

VK_CLEAR    0x0C    Clear

VK_CRSEL    0xF7    Cr Sel

VK_DECIMAL    0x6E    Numpad .

VK_DIVIDE    0x6F    Numpad /

VK_EREOF    0xF9    Er Eof

VK_ESCAPE    0x1B    Esc

VK_EXECUTE    0x2B    Execute

VK_EXSEL    0xF8    Ex Sel

VK_ICO_CLEAR    0xE6    IcoClr

VK_ICO_HELP    0xE3    IcoHlp

VK_KEY_0    0x30 ('0')    0

VK_KEY_1    0x31 ('1')    1

VK_KEY_2    0x32 ('2')    2

VK_KEY_3    0x33 ('3')    3

VK_KEY_4    0x34 ('4')    4

VK_KEY_5    0x35 ('5')    5

VK_KEY_6    0x36 ('6')    6

VK_KEY_7    0x37 ('7')    7

VK_KEY_8    0x38 ('8')    8

VK_KEY_9    0x39 ('9')    9

VK_KEY_A    0x41 ('A')    A

VK_KEY_B    0x42 ('B')    B

VK_KEY_C    0x43 ('C')    C

VK_KEY_D    0x44 ('D')    D

VK_KEY_E    0x45 ('E')    E

VK_KEY_F    0x46 ('F')    F

VK_KEY_G    0x47 ('G')    G

VK_KEY_H    0x48 ('H')    H

VK_KEY_I    0x49 ('I')    I

VK_KEY_J    0x4A ('J')    J

VK_KEY_K    0x4B ('K')    K

VK_KEY_L    0x4C ('L')    L

VK_KEY_M    0x4D ('M')    M

VK_KEY_N    0x4E ('N')    N

VK_KEY_O    0x4F ('O')    O

VK_KEY_P    0x50 ('P')    P

VK_KEY_Q    0x51 ('Q')    Q

VK_KEY_R    0x52 ('R')    R

VK_KEY_S    0x53 ('S')    S

VK_KEY_T    0x54 ('T')    T

VK_KEY_U    0x55 ('U')    U

VK_KEY_V    0x56 ('V')    V

VK_KEY_W    0x57 ('W')    W

VK_KEY_X    0x58 ('X')    X

VK_KEY_Y    0x59 ('Y')    Y

VK_KEY_Z    0x5A ('Z')    Z

VK_MULTIPLY    0x6A    Numpad *

VK_NONAME    0xFC    NoName

VK_NUMPAD0    0x60    Numpad 0

VK_NUMPAD1    0x61    Numpad 1

VK_NUMPAD2    0x62    Numpad 2

VK_NUMPAD3    0x63    Numpad 3

VK_NUMPAD4    0x64    Numpad 4

VK_NUMPAD5    0x65    Numpad 5

VK_NUMPAD6    0x66    Numpad 6

VK_NUMPAD7    0x67    Numpad 7

VK_NUMPAD8    0x68    Numpad 8

VK_NUMPAD9    0x69    Numpad 9

VK_OEM_1    0xBA    OEM_1 (: ;)

VK_OEM_102    0xE2    OEM_102 (> <)

VK_OEM_2    0xBF    OEM_2 (? /)

VK_OEM_3    0xC0    OEM_3 (~ `)

VK_OEM_4    0xDB    OEM_4 ({ [)

VK_OEM_5    0xDC    OEM_5 (| \)

VK_OEM_6    0xDD    OEM_6 (} ])

VK_OEM_7    0xDE    OEM_7 (" ')

VK_OEM_8    0xDF    OEM_8 (? !)

VK_OEM_ATTN    0xF0    Oem Attn

VK_OEM_AUTO    0xF3    Auto

VK_OEM_AX    0xE1    Ax

VK_OEM_BACKTAB    0xF5    Back Tab

VK_OEM_CLEAR    0xFE    OemClr

VK_OEM_COMMA    0xBC    OEM_COMMA (< ,)

VK_OEM_COPY    0xF2    Copy

VK_OEM_CUSEL    0xEF    Cu Sel

VK_OEM_ENLW    0xF4    Enlw

VK_OEM_FINISH    0xF1    Finish

VK_OEM_FJ_LOYA    0x95    Loya

VK_OEM_FJ_MASSHOU    0x93    Mashu

VK_OEM_FJ_ROYA    0x96    Roya

VK_OEM_FJ_TOUROKU    0x94    Touroku

VK_OEM_JUMP    0xEA    Jump

VK_OEM_MINUS    0xBD    OEM_MINUS (_ -)

VK_OEM_PA1    0xEB    OemPa1

VK_OEM_PA2    0xEC    OemPa2

VK_OEM_PA3    0xED    OemPa3

VK_OEM_PERIOD    0xBE    OEM_PERIOD (> .)

VK_OEM_PLUS    0xBB    OEM_PLUS (+ =)

VK_OEM_RESET    0xE9    Reset

VK_OEM_WSCTRL    0xEE    WsCtrl

VK_PA1    0xFD    Pa1

VK_PACKET    0xE7    Packet

VK_PLAY    0xFA    Play

VK_PROCESSKEY    0xE5    Process

VK_RETURN    0x0D    Enter

VK_SELECT    0x29    Select

VK_SEPARATOR    0x6C    Separator

VK_SPACE    0x20    Space

VK_SUBTRACT    0x6D    Num -

VK_TAB    0x09    Tab

VK_ZOOM    0xFB    Zoom

VK__none_    0xFF    no VK mapping

VK_ACCEPT    0x1E    Accept

VK_APPS    0x5D    Context Menu

VK_BROWSER_BACK    0xA6    Browser Back

VK_BROWSER_FAVORITES    0xAB    Browser Favorites

VK_BROWSER_FORWARD    0xA7    Browser Forward

VK_BROWSER_HOME    0xAC    Browser Home

VK_BROWSER_REFRESH    0xA8    Browser Refresh

VK_BROWSER_SEARCH    0xAA    Browser Search

VK_BROWSER_STOP    0xA9    Browser Stop

VK_CAPITAL    0x14    Caps Lock

VK_CONVERT    0x1C    Convert

VK_DELETE    0x2E    Delete

VK_DOWN    0x28    Arrow Down

VK_END    0x23    End

VK_F1    0x70    F1

VK_F10    0x79    F10

VK_F11    0x7A    F11

VK_F12    0x7B    F12

VK_F13    0x7C    F13

VK_F14    0x7D    F14

VK_F15    0x7E    F15

VK_F16    0x7F    F16

VK_F17    0x80    F17

VK_F18    0x81    F18

VK_F19    0x82    F19

VK_F2    0x71    F2

VK_F20    0x83    F20

VK_F21    0x84    F21

VK_F22    0x85    F22

VK_F23    0x86    F23

VK_F24    0x87    F24

VK_F3    0x72    F3

VK_F4    0x73    F4

VK_F5    0x74    F5

VK_F6    0x75    F6

VK_F7    0x76    F7

VK_F8    0x77    F8

VK_F9    0x78    F9

VK_FINAL    0x18    Final

VK_HELP    0x2F    Help

VK_HOME    0x24    Home

VK_ICO_00    0xE4    Ico00 *

VK_INSERT    0x2D    Insert

VK_JUNJA    0x17    Junja

VK_KANA    0x15    Kana

VK_KANJI    0x19    Kanji

VK_LAUNCH_APP1    0xB6    App1

VK_LAUNCH_APP2    0xB7    App2

VK_LAUNCH_MAIL    0xB4    Mail

VK_LAUNCH_MEDIA_SELECT    0xB5    Media

VK_LBUTTON    0x01    Left Button **

VK_LCONTROL    0xA2    Left Ctrl

VK_LEFT    0x25    Arrow Left

VK_LMENU    0xA4    Left Alt

VK_LSHIFT    0xA0    Left Shift

VK_LWIN    0x5B    Left Win

VK_MBUTTON    0x04    Middle Button **

VK_MEDIA_NEXT_TRACK    0xB0    Next Track

VK_MEDIA_PLAY_PAUSE    0xB3    Play / Pause

VK_MEDIA_PREV_TRACK    0xB1    Previous Track

VK_MEDIA_STOP    0xB2    Stop

VK_MODECHANGE    0x1F    Mode Change

VK_NEXT    0x22    Page Down

VK_NONCONVERT    0x1D    Non Convert

VK_NUMLOCK    0x90    Num Lock

VK_OEM_FJ_JISHO    0x92    Jisho

VK_PAUSE    0x13    Pause

VK_PRINT    0x2A    Print

VK_PRIOR    0x21    Page Up

VK_RBUTTON    0x02    Right Button **

VK_RCONTROL    0xA3    Right Ctrl

VK_RIGHT    0x27    Arrow Right

VK_RMENU    0xA5    Right Alt

VK_RSHIFT    0xA1    Right Shift

VK_RWIN    0x5C    Right Win

VK_SCROLL    0x91    Scrol Lock

VK_SLEEP    0x5F    Sleep

VK_SNAPSHOT    0x2C    Print Screen

VK_UP    0x26    Arrow Up

VK_VOLUME_DOWN    0xAE    Volume Down

VK_VOLUME_MUTE    0xAD    Volume Mute

VK_VOLUME_UP    0xAF    Volume Up

VK_XBUTTON1    0x05    X Button 1 **

VK_XBUTTON2    0x06    X Button 2 **


*/

Reszta sie mozecie pobawic ;)

Notes---

OnPlayerHealthChange nie jest jeszcze dodane

Duzo wiecej funkcji zostanie wkrotce dodanych

OnScriptInit sie uruchamia dopiero jak gracz sie pojawi na ekranie.

ProcTick jest uruchamiane co 30 ms (33 FPS)

Przy okazji dodam ze szukam wspolnika co by zemna oprogramowal ten projekt.

Edytowane przez grasmanek94

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Bardzo fajnie, że takie coś zrobiłeś/robisz. Czy mogę użyć twojego loadera w moim przyszłym projekcie (nie chce mi się pisać loadera chociaż to kilkanaście linijek kodu)?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Bardzo fajnie, że takie coś zrobiłeś/robisz. Czy mogę użyć twojego loadera w moim przyszłym projekcie (nie chce mi się pisać loadera chociaż to kilkanaście linijek kodu)?

no pewnie, wystarczy do \libraries\plugins.ini dodac jakis plik dll i juz xd (oddzielane spacjami) Edytowane przez grasmanek94

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

update 0.4:

kod odnowa napisany, o wiele mniej crashow, o wiele wiecej dziala, wiele wiecej funkcji, przykladowy script jest, itp itd..

ProcessTick jest uruchamiany wraz z kazdym FPSem GTA.

I nadal szukam wspolnika, w ciul kodowania jest (powiedzmy ze 0.4 to tylko 5%, mozna o wieleee wiecej dorobic) ;F

Src: https://gpb.googlecode.com/files/samod-rc-0.4.zip

Bin: https://gpb.googlecode.com/files/samod-rc-0.4-bin.zip

przykladowy script w akcji:

Edytowane przez grasmanek94

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Bardzo fajnie, że dalej rozwijasz ten projekt. Dla mnie wadą jest używanie PAWN do tego. Wolałbym już bardziej dynamiczny język np. Squirrel.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Bardzo fajnie, że dalej rozwijasz ten projekt. Dla mnie wadą jest używanie PAWN do tego. Wolałbym już bardziej dynamiczny język np. Squirrel.

projekt jest open source, ktos moze zrobic modul squirrel a ktos inny np lua, moze ktos jeszcze inny perl itp itd xD

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Propsy Gamer_Z za dobrą robotę.


P.S:Robimy powrót eXe24. Tęsknię za nim(miałem nick filip127)

P.S2:Dorób pisanie w HTML :)

 

<samp>
  <p style="GameTextStyle:3;">Test GameText</p>
</samp>
 

:)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Chyba ktos tutaj nie potrafi czytac ze zrozumieniem. :)

Wyraznie pisze w pierwszym poscie.

Instrukcje: wypakuj wszystko co w "GTA San Andreas" do folderu GTA na Twoim komputerze.

Zrob backupy plikow ktore ten mod przepisuje (vorbis.dll), chyba ze masz juz cleo zainstalowane (4+) to omin pliki vorbisfile.dll, vorbishooked.dll oraz vorbis.dll.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Kolejny co nie potrafi czytać. To jest tak jakby SA:MP na localu (serwerze domowym) tyle, że od razu jest w GTA to, a nie przez dodatkowe programy. Prościej: możesz pisać skrypty w pawn do GTA Singleplayer.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@SkyVoo, nie ma. Modyfikacja usuwa ludzi i zamienia możliwość grania Single Player w San Andreas na to, co jest w SA:MP.

Edytowane przez GT-R

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×