Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
- - - - -

Knife API v2.2Api do tworzenia własnych noży.


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 xenos

    Wszechobecny

  • Użytkownik

Reputacja: 216
Profesjonalista

  • Postów:467
  • GG:
  • Imię:Konrad
  • Lokalizacja:Rzeszów
Offline

Napisano 21.07.2014 15:49

Knife API v2.2
by Backstabnoob
tłumaczenie z oryginalnego tematu: https://forums.allie...ad.php?t=240304

opis.png
Moja pierwsza intencja tego pluginu była dla mojego nadchodzącego RPG.
Jednak nie mogłem znaleźć czegoś podobnego w pluginach, więc postanowiłem włożyć to w wersję wstępną (takią same jak baza danych ORM).
Knife API dodaje w nowych nożach wiatry/bryzy do noży.
Mechanizm odbioru / wyłącznika / upuszczania.
W ten sposób wszystkie noże są dodawane przez standardowy sposób.
W wersji 2.0 dodano wiele nowych możliwości.
Jeśli masz wiele noży, możesz przełączać się między nimi (lub wyświetlić menu jeśli masz cvar włączony) z R (+ przeładowanie) klawiszem.
UWAGA: Pluginy pisane przez Knife API <2.0 nie są kompatybilne z ostatnią wersjią. Musisz zamienić stary plugin. Przepraszam, mam nadzieję, że to się nie powtórzy!

Możliwości:
To jest na prawde bardzo dobre narzędzie dla pluginów, które zależy na nożu takim jak noż RPG jailbreak i serwerów takiego typu.Tworzenie takich noży, przez to staną sie bezproblemowe oprócz gry, zwłaszcza w połączeniu z niestandardową poświatą.


Co ten plugin może robić:
Przypisywanie podstawowych wartości, takich jak modele i dźwięki do nowo utworzonych noży.
Standardowy nóż z użyciem sprites patrz przykład.
Standardowy zasięg noży
Dodatkowe opóźnienie po rozpoczęciu animacji
Wyłapywanie Eventow takich jak atakowanie etc..



Co ten plugin nie może zrobić:
Choć  może to nie wiele, ale musisz jeszcze dodać trochę swojej pracy do tego pluginu.
Nie ma dużo rzeczy których nie zrobi, np nie zrobi ci kanapki:)

Wymagania są następujące:
Nie ma żadnych jak na razie !! :)
instalacja.png
Instalacja pluginu(api) jak u w innych pluginach, ściągnij skompiluj kod źródłowy i łącz go z innymi pluginami
http://amxx.pl/topic...-pluginow-amxx/

konfiguracja.png
Domyslny nóż z CS'a został usunięty i zastąpiony  przez ręce ( widać te na jailbreak).
Jeśli chcesz to zmienić zakomentuj #DEFAULT_HANDS w kodzie źródłowym w linii 59.

Jeśli to zrobisz, to też nie potrzeba plików resources.
Do skonfigurowania wartości domyslnego noża/rąk edytuj   __addDefaultKnife() jest to w kodzie źródłowym w lini 203

cvary.png

  • knifeapi_dropondeath (domyślnie:1) - czy noże wypadają po śmierci gracza ? niestety noże nie wypadają po zgonie gracza, musisz również użyć  knifeapi_lossondeath!
  • knifeapi_lossondeath (domyślnie:1) - Czt gracz straci wszystkie noże po śmierci ( z wyjątkiem noża podstawowego) ?
  • knifeapi_switchmenu (domyślnie:1) - po naciśnięciu klawisza R (RELOAD), chcesz, aby wyświetlić menu z nożami.
  • knifeapi_roundremoval (domyślnie:1)- noże które wypadły powinny być usunięte na koniec rundy ?




wymaganemoduly.png


#include <amxmodx>

#include <hamsandwich>

#include <fakemeta>

#include <engine>

#include <cstrike>

#include <fun>

#include <knifeapi>

#include <xs>

inneinformacje.png
Przykładowy plugin:

Spoiler

 

weapon_superknife.txt:

Spoiler




 

 

 

Załączone pliki


Użytkownik xenos edytował ten post 21.07.2014 16:09

  • +
  • -
  • 1
"Jeśli potrafię to pomogę, jeśli nie potrafię to wskaże drogę którą trzeba dążyć by znaleźć odpowiedz" 

Pluginy:
Szukanie Aktywnych Banów w AmxBansie
Drop After Death
Kto postawił mine

#2 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 21.07.2014 16:03

Poleciales z translatora....
  • +
  • -
  • 0

#3 xenos

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 216
Profesjonalista

  • Postów:467
  • GG:
  • Imię:Konrad
  • Lokalizacja:Rzeszów
Offline

Napisano 21.07.2014 16:15

Poleciales z translatora....

Nie zamierzam robić offtopu, więc zanim oskarzysz porównaj.



To jest przykład początku sprawdz resztę jak chcesz.
Lecz nie mówię że nie może być błedów gramatycznych czy językowych.
Gdyż tłumaczenie polegało na skopiowaniu oryginalnego tekstu i działaniu na "żywo na nim".
Więc nawet teraz wyłapałem kilka gramatycznych niesmaków do których nie jedna polonistka by przyłożyła mi swojego AK'cza , bo wyszły chyba 2 zdania typu "kali jeść kali pić".
Jak dziś dorwę Misq'a to podeśle mu poprawiony tekst gdyż wyżej powstały właśnie takie zdania kali jeść kali pić .


Użytkownik xenos edytował ten post 21.07.2014 16:22

  • +
  • -
  • 0
"Jeśli potrafię to pomogę, jeśli nie potrafię to wskaże drogę którą trzeba dążyć by znaleźć odpowiedz" 

Pluginy:
Szukanie Aktywnych Banów w AmxBansie
Drop After Death
Kto postawił mine

#4 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 21.07.2014 17:11


To jest na prawde bardzo dobre narzędzie dla pluginów, które zależy na nożu takim jak noż RPG jailbreak i serwerów takiego typu.Tworzenie takich noży, przez to staną sie bezproblemowe oprócz gry, zwłaszcza w połączeniu z niestandardową poświatą.

 

Może i nie zerżnięte w całościowo z translatora, ale nad tłumaczeniem mogłeś się bardziej postarać

@@ EDIT

 

Masz tutaj tłumaczenie. Jeśli chesz, popodmieniaj:

 

Możliwości topPoczątkowo plugin miał trafić do mojego nadchodzącego RolePlaying mod'a, jednak nie mogłem znaleźć żadnego pluginu podobnego do tego, więc zdecydowałem się na przedpremierowe wydanie go (tak, jak Database ORM).
Knife API makes adding new knives a breeze due to the knife pickup/switching/dropping mechanism it provides (tego nie rozumiem ). Tym sposobem, wszystkie noże są dodane standardową metodą. Wersja 2.0 dodaje wiele nowych możliwości i funckji do pluginu

Jeśli masz wiele noży, możesz przełączać się między nimi  (lub, w zależności od cvaru, używająć menu) klawiszem R (+reload).
UWAGA: Pluginy napisane na podstawie Knife API <2.0 NIE SĄ KOMPATYBILNE z nową wersją. Będziesz musiał przerobić Twój stary plugin. Przepraszam, mam nadzieję, że to się więcej nie powtórzy!

Wymagania    Jest to doskonałe narzędzie dla pluginów, które bazują na nożach (jak serwery z modami nożowymi, np. RolePlaying(tongue.gif), jailbreak etc.). Tworzenie noży przez ten plugin sprawi wrażenie zintegrowania pluginu z modem(?), szczególnie, kiedy będzie oparty na podstawowych sprite'ach (?).

Co plugin może robić:

  • Przydziela podstawowe dodatko (jak modele i dźwięki) do nowo utworzonego noża
  • Standardowe sprite'y noża, zobacz przykłady
  • Standardowy zasięg noża
  • Dodatkowy odstęp czasowy pomiędzy odtworzeniem animacji
  • Łapie eventy, takie jak atakowanie/wyciąganie broni z większą płynnością
  • Etc.

Co plugin nie może robić:

  • Mimo, iż plugin robi bardzo dużo, musisz włożyć trochę pracy w stworzenie czegoś
  • Niewiele rzeczy może nie zrobić. Nie może zmienić Cię w kanapkę

 

Instalacja, konfiguracja topWymagane są:

  • OBECNIE NIC! YAAY! tongue.gif

 

Aby zainstalować: 
Zainstaluj jak każdy inny plugin. Pobierz sma, skompiluj i pozwól innym pluginom korzystać z jego możliwości

Aby skonfigurować:
Standardowo, nóż CS został usunięty i zastąpiony rękoma (jak na JailBreake'u). Jeśli chcesz to zmienić, zakomentuj #define DEFAULT_HANDS w sma w linijce nr. 59. Jeśli to zrobisz, nie będziesz musiał pobierać żadnych plików.

Żeby skonfigurować standardowe wartości noża/rąk , edytuj fukcję __addDefaultKnife() w sma w linijce  203.

Użyj następujących cvarów, aby zmienić podstawowe fukcje pluginu:
  • knifeapi_dropondeath (standardowo:1) - czy noże, które można wyrzucić, będą wyrzucane przy śmierci gracza? Nie usuwa to go graczom. Musisz także użyć knifeapi_lossondeath!
  • knifeapi_lossondeath (standardowo:1) - czy po śmierci gracze gubią wszystkie noże (wszystkie noże z wyjątkiem podstawowego)?
  • knifeapi_switchmenu (standardowo:1) - czy po kliknieciu R ma pokazać się menu z wyborem noży, czy mają się zmieniać po kolei?
  • knifeapi_roundremoval (standardowo:1) - czy wyrzucone noże mają zostać usunięte na końcu rundy?

API (Natywy i forwardy) top

Natywy i forwardy będą wyjaśnione w pliku .inc. Nie powie Ci to nic, jeśli chodzi o pisanie pluginów, w tym celu powinieneś obejrzeć przykłady. 
// Nie wiem dokładnie co to robi.

#pragma library "knifeapi"



/**************************************************

 ************ API ENUMS AND STRUCTURES ************

 *************************************************/



enum KnifeProperties

{

    KN_STR_WeaponName,          // nazwa broni, pokazana w menu

    KN_STR_VModel,              // ścieżka do modelu v_  (models/....)

    KN_STR_PModel,              // ścieżka do modelu p_  (models/....)

    KN_STR_WModel,              // ścieżka do modelu w_  (models/....)

    KN_STR_DeploySound,         // ścieżka do dźwięku wyciągania noża

    KN_STR_SlashSound,          // ścieżka do dźwięku cięcia nożem

    KN_STR_StabSound,           // ścieżka do dźwięku ataku nożem

    KN_STR_WhiffSound,          // ścieżka do dźwięku ataku nożem (pudło)

    KN_STR_WallSound,           // ścieżka do dźwięku po ścianie

    KN_STR_SpriteName,          // jeśli używasz standardowego, zmień to na nazwę pliku .txt (np. weapon_custom) - NIE ZMIEINAJ TEGO, JEŚLI NIE UŻYWASZ STANDARDOWEGO SPRITE'A!!!

    KN_CLL_Droppable,           // czy da się go wyrzucić?

    KN_CLL_PrimaryDamage,       // mnożnik DMG z LPM (1.0 - standardowe obrażenia, 2.0 - podwojne obrazenia etc.)

    KN_CLL_SecondaryDamage,     // mnożnik DMG z PPM (1.0 - standardowe obrażenia, 2.0 - podwojne obrazenia etc.)

    KN_CLL_PrimaryNextAttack,   // czas pomiędzy atakami z LPM

    KN_CLL_SecondaryNextAttack, // czas pomiędzy atakami z PPM

    KN_CLL_PrimaryRange,        // zasięg ataku LPM

    KN_CLL_SecondaryRange,      // zasięg ataku PPM

    KN_CLL_PrimaryDamageDelay,  // odstep pomiędzy naciśnięciem klawisza, a atakiem aktualnego noża z LPM

    KN_CLL_SecondaryDamageDelay,// odstep pomiędzy naciśnięciem klawisza, a atakiem aktualnego noża z PPM

    KN_CLL_PrimaryDmgBits,      // tak jak DMG_BULLET | DMG_ALWAYSGIB (ustawiają wybuch gracza), DMG_BULLET | DMG_NEVERGIB standardowo dla LPM

    KN_CLL_SecondaryDmgBits,    // tak jak DMG_BULLET | DMG_ALWAYSGIB (ustawiają wybuch gracza), DMG_BULLET | DMG_NEVERGIB standardowo dla PPM

    KN_CLL_TeamLock,            // jeśli 0, przeciwna drużyna nie będzie mogła podnieść noża

    KN_CLL_NextAttackDependency,// jeśli true, LPM również zmienia następny atak PPM na tą samą wartośc (i na odwrót); standardowo true

    KN_CLL_IgnoreFriendlyFire   // ignorowac friendly fire?

};



enum _:ForwardReturns

{

    KnifeAction_Block = 5,

    KnifeAction_DoNothing

};



/****************************************

 ************ PLUGIN NATIVES ************

 ***************************************/



/* Knife_Register(): rejestruje noz.



 * @params: zobacz KnifeProperties, są takie same

 * @info: możesz uzyć dodatkowych ustawieć z Knife_SetProperty

 * @return: (Int) wskaźnik noża

*/

native Knife_Register(

    const WeaponName[] = "New Knife",             

    const VModel[],                                     

    const PModel[] = "",

    const WModel[] = "",

    const DeploySound[] = "weapons/knife_deploy1.wav",

    const SlashSound[] = "weapons/knife_hit1.wav",

    const StabSound[] = "weapons/knife_stab.wav",

    const WhiffSound[] = "weapons/knife_slash1.wav",

    const WallSound[] = "weapons/knife_hitwall1.wav",

    Float:PrimaryDamage = 1.0, 

    Float:SecondaryDamage = 1.0

);



/* Knife_GetTotal(): zwraca ilość zarejestrowanych noży.



 * @info: prosta pętla: for(new i=1; i<=Knife_GetTotal(); i++)

 

 * @return: (Int) wartośc noży zarejestrowanych

*/

native Knife_GetTotal();



/* Knife_GetProperty(): zwraca właściciela noża z enuma KnifeProperties.



 * @param (Int) Knife: index noża

 * @param (Int) Value: wartość z enuma KnifeProperties

 * @params (any...): Jeśli używasz wartości KN_STR_X, następne 2 parametry są tablicą i jej rozmiarem,

        w innym razie jest to tylko tablica cell, do ktorej dane są zapisywane przez referencje

 

 * @return: (Int) 1 - poprawnie, 0 - error

*/

native Knife_GetProperty(Knife, KnifeProperties:Value, any:...);



/* Knife_SetProperty(): Ustawia właściciela noża z enuma KnifeProperties.



 * @param (Int) Knife: index noża

 * @param (Int) Value: wartość z enuma KnifeProperties

 * @params (any...): String/cell z wartością

 

 * @return: (Int) 1 - poprawnie, 0, error

*/

native Knife_SetProperty(Knife, KnifeProperties:Value, any:...);



/* Knife_PlayerGive(): Daje nóż graczowi.



 * @param (Int) Player: Index gracza

 * @param (Int) Knife: index noża

 * @param (bool) Set: jeśli true, gracz dostanie nóż do ręki

 

 * @return: (Int) 1 - poprawnie, 0 - error

*/

native Knife_PlayerGive(Player, Knife, bool:Set = true);



/* Knife_PlayerGetCurrent(): zwraca aktualny nóż trzymany przez gracza.



 * @param (Int) Player: index gracza

 

 * @return: (Int) 0 - standardowy nóż, X - ID noża, -1 - error/niepowodzenie

*/

native Knife_PlayerGetCurrent(Player);



/* Knife_PlayerSetCurrent(): Wyciąga nóż graczowi. Musi on go posiadać



 * @param (Int) Player: Index graczam któremu ma się wyciągnąć nóż

 * @param (Int) Knife: index noża

 

 * @return: (Int) 1 - poprawnie, 0 - error

*/

native Knife_PlayerSetCurrent(Player, Knife);



/* Knife_PlayerHas(): sprawdza, czy gracz ma nóż



 * @param (Int) Player: Index gracza

 * @param (Int) Knife: index noża

 

 * @return: (Int) 1 - posiada, 0  - niepowodzenie/error/nie posiada

*/

native Knife_PlayerHas(Player, Knife);



/* Knife_PlayerSetLock(): Nie pozwala graczowi na zmianę noża



 * @param (Int) Player: Index gracza

 * @param (Bool) Locked: Status blokady - true: zablokowany, false: odblokowany

 

 * @return: nic

*/

native Knife_PlayerSetLock(Player, bool:Locked);



/* Knife_PlayerGetLock(): Sprawdza, czy gracz ma zablokowaną zmianę noża



 * @param (Int) Player: Index gracza

 

 * @return: (Bool) true: zablokowany, false: odblokowany

*/

native bool:Knife_PlayerGetLock(Player);



/* Knife_PlayerRemoveAll(): zabiera graczowy wszystkie noże, z wyjątkiem standardowego.



 * @param (Int) Player: Index gracza

 

 * @return: nothing

*/

native Knife_PlayerRemoveAll(Player);



/**********************************

 ************ FORWARDS ************

 *********************************/ 



/* KnifeAction_ProcessAttack_Pre(): Wywoływany, kiedy atak się wywoła.

        Pre hook: Wywoływany przed odstępem animacji, jeśli takowa istnieje.

        Możesz zablokować tę akcję przez KnifeAction_Block.

 * @param (Int) Player: Index gracza (atakujacy)

 * @param (Int) Knife: index noża

 * @param (bool) PrimaryAttack: true: tak, false: nie

*/

forward KnifeAction_ProcessAttack_Pre(Player, Knife, bool:PrimaryAttack);



/* KnifeAction_ProcessAttack_Post(): Wywoływany, gdy gracz zaatakować drugiego.

        Post hook: Wywoływany po odstępie animacji, jeśli takowa istnieje.

        Nie możesz zablokować tego forwardu. Zamiast tego zablokuj KnifeAction_DealDamage.

 * @param (Int) Player: Index gracza (atakujacy)

 * @param (Int) Victim: Gracz otrzymujacy obrazenia. Jeśli nie było ofiary (ściana/powietrze), index ma wartość 0.

 * @param (Int) Knife: index noża

 * @param (bool) PrimaryAttack: true: tak, false: nie

 * @param (Vector) EndPoint: Końcowy punkt zasięgu noża. Jest to origin, gdzie obrażenie się dokonało.

        Zalecam używania standardowych sprite'ów przy używaniu tego.

 * @param (Vector) AimVector: kierunek patrzenia gracza

*/

forward KnifeAction_ProcessAttack_Post(Player, Victim, Knife, bool:PrimaryAttack, Float:EndPoint[3], Float:AimVector[3]);



/* KnifeAction_DealDamage(): Wywoływany tuż przez zadaniem obrażeń

        Pre hook: Możesz zablokować tę akcję przez KnifeAction_Block.

 * @param (Int) Attacker: index gracza (ataklujacy)

 * @param (Int) Victim: gracz otrzymujacy obrazenia

 * @param (Int) Knife: index noża

 * @param (Float) Damage: obrażenia zadane z uwzględnieniem: hitboxów/ciosu w plecy/standardowy mnożnik obrażeń

 * @param (bool) PrimaryAttack: true: tak, false: nie

 * @param (Vector) EndPoint: Końcowy punkt ataku noża - origin, gdzie obrażenia są wysyłane

        Zalecam używanie standardowych sprite'ów podczas używania tego

 * @param (Vector) AimVector: Kierunek patrzenia gracza

 * @param (Int) Hitzone: Hitzone, np. HIT_HEAD.

*/

forward KnifeAction_DealDamage(Attacker, Victim, Knife, Float:Damage, bool:PrimaryAttack, DamageBits, bool:Backstab, 

    Float:EndPoint[3], Float:AimVector[3], Hitzone

);



/* KnifeAction_Deploy(): Wywoływane, kiedy gracz wyciągnie nóż.

        Post hook: nie możesz zablokować tego forwardu.

 * @param (Int) Attacker: index gracza

 * @param (Int) Knife: index noża

*/

forward KnifeAction_Deploy(Player, Knife);



/* KnifeAction_SoundPlay(): Wywoływany, kiedy dźwięki noża mają zostać odtworzone.

        Pre hook: Możesz zablokować ta akcję przez KnifeAction_Block.

 * @param (Int) Player: Index gracza

 * @param (Int) Knife: index noża

 * @param (String) Sound: odtwarzany dźwięk

*/

forward KnifeAction_SoundPlay(Player, Knife, const Sound[]);  

  • +
  • -
  • 0

#5 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 21.07.2014 18:39

Przykładowy kod:

#include <amxmodx>
#include <knifeapi>
#include <cstrike>

new g_Knife

new const VMODEL[] = "models/v_knife.mdl"
new const PMODEL[] = "models/p_knife.mdl"

const KNIFE_PRICE = 300

public plugin_precache()
{
    precache_model(VMODEL)
    precache_model(PMODEL)
    
    // precachujemy standardowe pliki sprite'a -  .txt i .spr
    precache_generic("sprites/weapon_superknife.txt")
    precache_generic("sprites/superknife.spr")
    
    // ZAWSZE precachuj pliki. Jesli tego nie zrobisz, serwer sie zcrashuje. Serwer nie zrobi tego za Ciebie
}

public plugin_init()
{
    register_plugin("Knife API example", "1.0", "idiotstrike")
    
    
    g_Knife = Knife_Register(
        .WeaponName =  "Default Knife",
        .VModel =      VMODEL,
        .PModel =      PMODEL
    )
    
    // dodatkowe właściwości (aby zobaczyć pełną listę, odwiedź plik knifeapi.inc):
    
    // sprawiamy, że nóż będzie można wyrzucić
    Knife_SetProperty(g_Knife, KN_CLL_Droppable, true)
    
    // jeśli chcemy użyć standardowego sprite'a, ustawiamy to na nazwę pliku .txt bez dodatków.
    // jeśli nie chcesz używać standardowego sprite'a. nie zmieniaj wartości parametru KN_STR_SpriteName!
    Knife_SetProperty(g_Knife, KN_STR_SpriteName, "weapon_superknife")
    
    // możemy również zmienić zasięg broni z LPM na 60.0, aby stała się bardziej nierealistyczna
    //Knife_SetProperty(g_Knife, KN_CLL_PrimaryRange, 60.0)
    
    register_clcmd("say /buyknife", "CmdBuyKnife")
}

public CmdBuyKnife(id)
{
    if(!is_user_alive(id))
    {
        client_print(id, print_chat, "Musisz byc zywy.")
    }
    else if(Knife_PlayerHas(id, g_Knife))
    {
        client_print(id, print_chat, "Masz juz ten noz. Zmien bron na noz i nacisnij R, aby sie przekonac.")
    }
    else
    {
        new Money = cs_get_user_money(id)
        
        if(Money < KNIFE_PRICE)
        {
            client_print(id, print_center, "Masz za malo pieniedzy.")
        }
        else
        {
            Knife_PlayerGive(id, g_Knife)
            cs_set_user_money(id, Money - KNIFE_PRICE)
        }
    }
    
    return PLUGIN_HANDLED
}  

  • +
  • -
  • 0

#6 sNH.

    Czy MisieQ ukradł ciasteczko?

  • Power User

Reputacja: 299
Wszechwidzący

  • Postów:1 070
  • Steam:steam
  • Imię:Bartek
  • Lokalizacja:Ełk
Offline

Napisano 21.07.2014 19:35

Do kosza z tym -.^, to nawet do czytania się nie nadaje.


  • +
  • -
  • 0

#7 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 21.07.2014 19:57

O Ty! Ja tu sie natlumaczylem a Ty mi wyskakujesz z tematem do kosza?

Plugin po prostu umozliwia stworzenie nowych nozy. Wszystko regulowane forwardami I cvarami. Przykladowy plugin juz podany.
  • +
  • -
  • 1

#8 skorpius

    Wszechpomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:322
  • Imię:Damian
  • Lokalizacja:Dębica
Offline

Napisano 14.11.2014 23:33

eh sugerujac sie przykladem jest mozliwosc zrobienia fajnej kosy?
  • +
  • -
  • 0

4680134.png


#9 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 15.11.2014 08:41

Eh tak
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych