• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[Crash] Hashtable Problem!!!!

Status
Not open for further replies.
Level 6
Joined
Apr 23, 2011
Messages
182
Hi, i get this problem while trying to save this map Or any other that uses vjass ( The_Witcher 's - Bag System ).

Line 6: Undefined Type Of hashtable.
Line 6: Undeclared Funtion Init Haashtable.
and ....ect....ect

If i dont touch the map, just download and try it. It works perfect. But i just try to add a sigle item or unit and WTF.

Please help i am using : JassNewgenpack 2.0 also. Wc3 version 2.6 ... The last one.

Thanks.
 
Level 6
Joined
Apr 23, 2011
Messages
182
can u post the triggers that that corresponds to

Also 1.5e is the newest besides 2.0 which is in testing phase.

I try with 1.5 d , e and 2.0 not working. Just the same problem.

I post the triggers

JASS:
library BagSystem initializer Init       
//
// The_Witcher 's
//                 Bag System
//
// With this System you're able to give as many bags as you want to EVERY unit you want!
// The unit only needs to have the Inventory(hero) ability for an inventory with 6 slots
// you just need to create two useable items: one for next bag and one for previous bag
//
// you can add and remove bags whenever you want
//
//functions:
// InitBackpackForUnit takes unit u, integer maxbags  
//       if you want a unit to use bags, you need to init that with this function
//
// AddBagsToUnit takes unit towhich, integer bags
//      with this function you can higher or lower the amount of bags of a unit (add a negative number for the 'bags' value to lower it)
//      if there are items in the removed bag they will be dropped
//
// RemoveBackpack takes unit u
//     this function simply removes every bag from the unit
//     if you want the unit to use bags again, you have to use InitBackpackForUnit once again
//
//
// the SETUP part
globals
    // this is the rawcode of the item for next bag
    private constant integer NEXT_BAG_ID = 'I001'  
     
    // this is the rawcode of the item for previous bag
    private constant integer PREV_BAG_ID = 'I002'     
    
    //false= on previous bag is the number of the previous and on next bag the number of the next bag
    //true = on previous and next bag is the number of the current bag
    private constant boolean DISPLAY_CURRENT_BAG = true   
endglobals

//---------------------------------------------------------
//-----------Don't modify anything below this line---------
//---------------------------------------------------------

private struct data
    unit u
    integer array first[99]
    integer array firstc[99]
    integer array second[99]
    integer array secondc[99]
    integer array third[99]
    integer array thirdc[99]
    integer array fourth[99]
    integer array fourthc[99]
    integer max
    integer bag = 1
endstruct

globals
    private hashtable h = InitHashtable()
    private integer Key = StringHash("Data")
endglobals

private function BagChange takes nothing returns nothing
    local unit u = GetTriggerUnit()
    local data dat = LoadInteger(h,GetHandleId(u),Key)
    local item ite = GetManipulatedItem()
    local integer itemID = GetItemTypeId(ite)
    if (itemID == PREV_BAG_ID) or (itemID == NEXT_BAG_ID) then
        call RemoveItem(UnitItemInSlot(u,4))
        call RemoveItem(UnitItemInSlot(u,5))
        set dat.first[dat.bag] = GetItemTypeId(UnitItemInSlot(u, 0))
        set dat.firstc[dat.bag] = GetItemCharges(UnitItemInSlot(u, 0))
        call RemoveItem(UnitItemInSlot(u,0))
        set dat.second[dat.bag] = GetItemTypeId(UnitItemInSlot(u, 1))
        set dat.secondc[dat.bag] = GetItemCharges(UnitItemInSlot(u, 1))
        call RemoveItem(UnitItemInSlot(u,1))
        set dat.third[dat.bag] = GetItemTypeId(UnitItemInSlot(u, 2))
        set dat.thirdc[dat.bag] = GetItemCharges(UnitItemInSlot(u, 2))
        call RemoveItem(UnitItemInSlot(u,2))
        set dat.fourth[dat.bag] = GetItemTypeId(UnitItemInSlot(u, 3))
        set dat.fourthc[dat.bag] = GetItemCharges(UnitItemInSlot(u, 3))
        call RemoveItem(UnitItemInSlot(u,3))
        if itemID == PREV_BAG_ID then
            set dat.bag = dat.bag - 1
            if dat.bag <= 0 then
                set dat.bag = dat.max
            endif
        else
            set dat.bag = dat.bag + 1
            if dat.bag >= dat.max + 1 then
                set dat.bag = 1
            endif
        endif
        call UnitAddItemToSlotById(u,dat.first[dat.bag],0)
        call SetItemCharges(UnitItemInSlot(u, 0),dat.firstc[dat.bag])
        call UnitAddItemToSlotById(u,dat.second[dat.bag],1)
        call SetItemCharges(UnitItemInSlot(u, 1),dat.secondc[dat.bag])
        call UnitAddItemToSlotById(u,dat.third[dat.bag],2)
        call SetItemCharges(UnitItemInSlot(u, 2),dat.thirdc[dat.bag])
        call UnitAddItemToSlotById(u,dat.fourth[dat.bag],3)
        call SetItemCharges(UnitItemInSlot(u, 3),dat.fourthc[dat.bag])       
        call UnitAddItemToSlotById(u,PREV_BAG_ID,4)
        call UnitAddItemToSlotById(u,NEXT_BAG_ID,5)
        if DISPLAY_CURRENT_BAG then
            call SetItemCharges(UnitItemInSlot(u, 4),dat.bag)
            call SetItemCharges(UnitItemInSlot(u, 5),dat.bag)
        else
            if dat.bag == dat.max then
                call SetItemCharges(UnitItemInSlot(u, 4),dat.bag-1)
                call SetItemCharges(UnitItemInSlot(u, 5),1)
            elseif dat.bag == 1 then
                call SetItemCharges(UnitItemInSlot(u, 4),dat.max)
                call SetItemCharges(UnitItemInSlot(u, 5),dat.bag+1)
            else
                call SetItemCharges(UnitItemInSlot(u, 4),dat.bag-1)
                call SetItemCharges(UnitItemInSlot(u, 5),dat.bag+1)
            endif
        endif
    endif
    set u = null
    set ite = null
endfunction

function InitBackpackForUnit takes unit u, integer maxbags returns nothing
    local data dat = data.create()
    set dat.u = u
    set dat.max = maxbags
    call UnitRemoveItemFromSlot(u,4)
    call UnitRemoveItemFromSlot(u,5)
    call UnitAddItemToSlotById(u,PREV_BAG_ID,4)
    call UnitAddItemToSlotById(u,NEXT_BAG_ID,5)
    if DISPLAY_CURRENT_BAG then
        call SetItemCharges(UnitItemInSlot(u, 4),1)
        call SetItemCharges(UnitItemInSlot(u, 5),1)
    else
        call SetItemCharges(UnitItemInSlot(u, 4),dat.max)
        call SetItemCharges(UnitItemInSlot(u, 5),2)
    endif
    call SaveInteger(h,GetHandleId(u),Key,dat)
endfunction

function AddBagsToUnit takes unit towhich, integer bags returns nothing
    local data dat = LoadInteger(h,GetHandleId(towhich),Key)
    local integer s = dat.max + bags
    local item ite
    if s < 0 then
        set s = 0
    endif
    if bags < 0 then
        loop
            exitwhen dat.max == s
            set ite = CreateItem(dat.first[dat.max],GetUnitX(towhich),GetUnitY(towhich))
            call SetItemCharges(ite, dat.firstc[dat.max])
            set ite = CreateItem(dat.second[dat.max],GetUnitX(towhich),GetUnitY(towhich))
            call SetItemCharges(ite, dat.secondc[dat.max])
            set ite = CreateItem(dat.third[dat.max],GetUnitX(towhich),GetUnitY(towhich))
            call SetItemCharges(ite, dat.thirdc[dat.max])
            set ite = CreateItem(dat.fourth[dat.max],GetUnitX(towhich),GetUnitY(towhich))
            call SetItemCharges(ite, dat.fourthc[dat.max])
            set dat.first[dat.max] = 0
            set dat.second[dat.max] = 0
            set dat.third[dat.max] = 0
            set dat.fourth[dat.max] = 0
            set dat.firstc[dat.max] = 0
            set dat.secondc[dat.max] = 0
            set dat.thirdc[dat.max] = 0
            set dat.fourthc[dat.max] = 0
            set dat.max = dat.max - 1
        endloop
    else
        set dat.max = dat.max + bags
    endif
    set ite = null
endfunction

function RemoveBackpack takes unit u returns nothing
    local data dat = LoadInteger(h,GetHandleId(u),Key)
    local integer i = 0
    local integer ii = 0
    call RemoveItem(UnitItemInSlot(u, 4))
    call RemoveItem(UnitItemInSlot(u, 5))
    set ii = 0
    loop
        exitwhen i > 3
        call UnitRemoveItemFromSlot(dat.u,i)
        set i = i + 1
    endloop
    set i = 1
    loop
        exitwhen i > dat.max
        set i = i + 1
        call UnitAddItemToSlotById(u,dat.first[i],0)
        call SetItemCharges(UnitItemInSlot(u, 0),dat.firstc[i])
        call UnitAddItemToSlotById(u,dat.second[i],1)
        call SetItemCharges(UnitItemInSlot(u, 1),dat.secondc[i])
        call UnitAddItemToSlotById(u,dat.third[i],2)
        call SetItemCharges(UnitItemInSlot(u, 2),dat.thirdc[i])
        call UnitAddItemToSlotById(u,dat.fourth[i],3)
        call SetItemCharges(UnitItemInSlot(u, 3),dat.fourthc[i])
        set ii = 0
        loop
            exitwhen ii == 4
            call UnitRemoveItemFromSlot(dat.u,ii)
            set ii = ii + 1
        endloop
    endloop
    call dat.destroy()
endfunction

private function Init takes nothing returns nothing
    local trigger t = CreateTrigger(  )
    local integer i = 0
    loop
        call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_USE_ITEM, null)
        set i = i + 1
        exitwhen i == bj_MAX_PLAYER_SLOTS
    endloop
    call TriggerAddAction(t, function BagChange)
endfunction

endlibrary

JASS:
library AdvancedItemHandlingSystem initializer Init    
// The_Witcher's
//
// <<advanced item system>>
//
// This system improves the Warcraft III item engine
//
// If a unit gets an item which it already has it stacks (only if item has charges!)
// In addition this works even if the inventory is full!!!
//
// If you double-right-click an item with charges in your inventory it splits up
// and if you move a item onto an equal item and they are stackable they stack
//
// No Setup Part! Don't touch anything    fully automatic :)

private struct data
    unit u
    item ite
    integer index
    real x
    real y
endstruct

globals
    private data array DATAS
    private integer total = 0
    private hashtable h = InitHashtable()
    private timer tim = CreateTimer()
    private trigger trg = CreateTrigger(  )
endglobals

private function IsInventoryFull takes unit u returns boolean
    local integer i = 0
    loop
        exitwhen i == 6
        if UnitItemInSlot(u, i) == null then
            return false
        endif                                                             
        set i = i + 1
    endloop
    return true
endfunction

private function ItemWalk takes nothing returns boolean
    local integer i = 0
    local unit u = GetTriggerUnit()
    local item ite = GetOrderTargetItem()
    local data dat
    if IsInventoryFull(u) and GetItemCharges(ite)!= 0 then
        loop
            exitwhen i > 5
            if GetItemTypeId(ite) == GetItemTypeId(UnitItemInSlot(u, i)) and UnitHasItem(u,ite)== false  then
                call IssuePointOrder( u, "move", GetItemX(ite),GetItemY(ite) )
                if LoadInteger(h,GetHandleId(u),0) == 0 then
                    set dat = data.create()
                    set DATAS[total] = dat
                    set dat.index = total
                    set total = total + 1
                    set dat.u = u
                    set dat.ite = ite
                    set dat.x = GetItemX(ite)
                    set dat.y = GetItemY(ite)
                    call SaveInteger(h,GetHandleId(u),0,dat)
                else                    
                    set dat = LoadInteger(h,GetHandleId(u),0)
                    set dat.u = u
                    set dat.ite = ite
                    set dat.x = GetItemX(ite)
                    set dat.y = GetItemY(ite)
                endif
                set i = 100
            endif
            set i = i + 1
        endloop
        set dat = LoadInteger(h,GetHandleId(u),0)
        if i < 10 and dat != 0 then
            set total = total - 1
            set DATAS[dat.index] = DATAS[total]
            set DATAS[dat.index].index = dat.index
            call FlushChildHashtable(h,GetHandleId(dat.u))
            call dat.destroy()
        endif
    endif
    set u = null
    set ite = null
    return false
endfunction

private function ItemStack takes nothing returns boolean
    local integer i = 0
    local integer id
    local item k
    local item m = GetManipulatedItem()
    local unit u = GetTriggerUnit()
    local integer ite = GetItemTypeId(m)
    local integer c = GetItemCharges(m)
    local integer it 
    if GetItemCharges(GetManipulatedItem()) > 0 then
        loop
            exitwhen i > 6
            set it = GetItemTypeId(UnitItemInSlot(u, i - 1))
            set k = UnitItemInSlot(u, i - 1)
            if ( ( it == ite ) and( m != k ) ) then
                call SetItemCharges( k,  GetItemCharges(k) + c  )
                call RemoveItem( m )
                set i = 10
            endif
            set i = i + 1
        endloop
    endif
    set k = null
    set m = null
    set u = null
    return false
endfunction

private function ItemTake takes nothing returns nothing
    local real dx
    local real dy
    local item it
    local integer i
    local integer ii = 0
    local data dat
    loop
        exitwhen ii >= total
        set dat = DATAS[ii]
        set dx = GetItemX(dat.ite) - GetUnitX(dat.u)
        set dy = GetItemY(dat.ite) - GetUnitY(dat.u)
        if ( dx * dx + dy * dy < 10000 ) and IsItemOwned(dat.ite) == false then
            set i = 0
            loop
                exitwhen i > 5
                set it = UnitItemInSlot(dat.u,i)
                if GetItemTypeId(dat.ite) == GetItemTypeId(it) then
                    set i = 5
                endif
                set i = i + 1
            endloop
            call SetItemCharges( it,  GetItemCharges(it) + GetItemCharges(dat.ite) )
            call RemoveItem( dat.ite )
            set total = total - 1
            set DATAS[ii] = DATAS[total]
            set DATAS[ii].index = ii
            call FlushChildHashtable(h,GetHandleId(dat.u))
            call dat.destroy()        
            call IssueImmediateOrder(dat.u,"stop")        
        endif
        set ii = ii + 1
    endloop
    set it = null
endfunction

private function ItemWalkAbort1 takes nothing returns boolean
    local data dat = LoadInteger(h,GetHandleId(GetTriggerUnit()),0)
    if dat != 0 and( GetOrderPointX() != dat.x  or  GetOrderPointY() != dat.y )then
        set total = total - 1
        set DATAS[dat.index] = DATAS[total]
        set DATAS[dat.index].index = dat.index
        call FlushChildHashtable(h,GetHandleId(dat.u))
        call dat.destroy()
    endif
    return false
endfunction

private function ItemWalkAbort2 takes nothing returns boolean
    local data dat = LoadInteger(h,GetHandleId(GetTriggerUnit()),0)
    if dat != 0 then
        set total = total - 1
        set DATAS[dat.index] = DATAS[total]
        set DATAS[dat.index].index = dat.index
        call FlushChildHashtable(h,GetHandleId(dat.u))
        call dat.destroy()
    endif
    return false
endfunction

private function ItemSplit takes nothing returns boolean
    local integer i = GetItemCharges(GetOrderTargetItem())
    if GetIssuedOrderId() > 852001 and GetIssuedOrderId() < 852008 then
        if GetOrderTargetItem() == UnitItemInSlot(GetOrderedUnit(), GetIssuedOrderId()-852002) then
            if i > 1 then
                set i = i/2
                call SetItemCharges(GetOrderTargetItem(), GetItemCharges(GetOrderTargetItem()) - i)
                call DisableTrigger(trg)
                call UnitAddItemByIdSwapped(GetItemTypeId(GetOrderTargetItem()), GetTriggerUnit())
                call EnableTrigger(trg)
                call SetItemCharges(bj_lastCreatedItem, i)
            endif
        else
            if i > 0 and GetItemTypeId(GetOrderTargetItem()) == GetItemTypeId(UnitItemInSlot(GetOrderedUnit(), GetIssuedOrderId()-852002)) then
                call SetItemCharges(GetOrderTargetItem(), GetItemCharges(GetOrderTargetItem()) + GetItemCharges(UnitItemInSlot(GetOrderedUnit(), GetIssuedOrderId()-852002)))
                call RemoveItem(UnitItemInSlot(GetOrderedUnit(), GetIssuedOrderId()-852002))
            endif
        endif
    endif
    return false
endfunction

private function Init takes nothing returns nothing
    local trigger a = CreateTrigger(  )
    local trigger b = CreateTrigger(  )
    local trigger c = CreateTrigger(  )
    local integer i = 0
    call TimerStart( tim, 0.05, true, function ItemTake )    
    loop
        call TriggerRegisterPlayerUnitEvent(a, Player(i), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER, null)
        call TriggerRegisterPlayerUnitEvent(b, Player(i), EVENT_PLAYER_UNIT_ISSUED_ORDER, null)
        call TriggerRegisterPlayerUnitEvent(c, Player(i), EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER, null)
        call TriggerRegisterPlayerUnitEvent(trg, Player(i), EVENT_PLAYER_UNIT_PICKUP_ITEM, null)
        set i = i + 1
        exitwhen i == bj_MAX_PLAYER_SLOTS
    endloop
    call TriggerAddCondition( a, Condition( function ItemWalkAbort1 ) )
    call TriggerAddCondition( a, Condition( function ItemWalkAbort2 ) )
    call TriggerAddCondition( c, Condition( function ItemWalk ) )
    call TriggerAddCondition( c, Condition( function ItemSplit ) )
    call TriggerAddCondition( trg, Condition( function ItemStack ) )
endfunction

endlibrary

JASS:
function Trig_init_Actions takes nothing returns nothing
    call FogEnableOff(  )
    call FogMaskEnableOff(  )
    set udg_u = gg_unit_Hpal_0000
    call InitBackpackForUnit(udg_u, 5)
    set udg_u = gg_unit_hfoo_0032
    call InitBackpackForUnit(udg_u, 2)
    call DisplayTimedTextToForce( GetPlayersAll(), 1000000000.00, "TRIGSTR_027" )
    call DisplayTimedTextToForce( GetPlayersAll(), 1000000000.00, "TRIGSTR_028" )
endfunction

//===========================================================================
function InitTrig_init takes nothing returns nothing
    set gg_trg_init = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_init, 0.00 )
    call TriggerAddAction( gg_trg_init, function Trig_init_Actions )
endfunction

JASS:
function Trig_New_bag_Conditions takes nothing returns boolean
    if ( not ( GetItemTypeId(GetManipulatedItem()) == 'I003' ) ) then
        return false
    endif
    return true
endfunction

function Trig_New_bag_Actions takes nothing returns nothing
    call RemoveItem( GetManipulatedItem() )
    call AddBagsToUnit(GetTriggerUnit(), 1)
endfunction

//===========================================================================
function InitTrig_New_bag takes nothing returns nothing
    set gg_trg_New_bag = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_New_bag, EVENT_PLAYER_UNIT_PICKUP_ITEM )
    call TriggerAddCondition( gg_trg_New_bag, Condition( function Trig_New_bag_Conditions ) )
    call TriggerAddAction( gg_trg_New_bag, function Trig_New_bag_Actions )
endfunction

Thats it. Is not just this system. Every system that uses hashtables it gives me the same error===

p.jass.exe - blizzard.j error ( 44 compile errors ).... this is just insane.
 
Level 6
Joined
Apr 23, 2011
Messages
182
See my signature. The JNPG + latest JASS Helper are there.

omg i have that. it keeps the same error.

It has to be something with the Hashtables because some maps that are a mix of GUI and jass go fine.

Maybe is the version ???

Because when i first open the map it says its not compatible with my version so it will update and some features will not go...... ( some seems to be the entire map ).

Please hep. Its giving me such a hard time....
 
Here is a list of things that might help us answer your question:

  • Do you have JassHelper enabled? (In the toolbar, JassHelper -> Enable JassHelper [checkmark it])
  • Does this happen in any map that is using hashtables? To test, open a new map, add a hashtable, initialize it on map initialization. Save it. See if it throws an error.
  • Can you post a screenshot of the error? Often times it may point to the wrong thing.
  • Do you have an anti-virus enabled? It may prevent certain executables from accessing the editor.
  • As a last resort, have you tried reinstalling Warcraft 3? (make sure you have your CD keys before you do this)
 
Thats it. Is not just this system. Every system that uses hashtables it gives me the same error===

p.jass.exe - blizzard.j error ( 44 compile errors ).... this is just insane.


--> Did you by accident modified the .j files... because if it happens for every system that uses hashtables, then its a problem with your files...

Also, when hashes started if I remembered correctly, we needed to download a fix to the .j files so that JNGP will accept hashtables...
 
Level 6
Joined
Apr 23, 2011
Messages
182
1-Yes it happens with all the maps that have hashtable and are in jass.
2- I think i didnt touch any file... Where i should have them?
3- Yes i have jass enable.


The error is like 44 code lines.... a lot of pages. I will need to print lots of images.


Its all the time saying the same thing:
Undeclared function get handledBJ
Undeclared function loaditemHandleDBJ
.... all the time like this.


Undefined type of Hashtable (i go to the line to see the error and it points me this line ::: =======================================

How is it posible that the first time i try the map and goes fine. And the try just to save it and i cant....

One thing for sure I dont have problems with Hashtables in GUI.

I cant say more...
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
lordsent, if you didn't change anything in the codes, it's related to the JNPG and the JassHelper and the Wc3 or with one of them. See your JassHelper "about" information and be sure that the version is JASSHelper 0.A.2.B, and that your JassHelper is v1.5e.

These codes work, else they wouldn't be approved. Have you enabled "UMSWE"? Try disabling it.
 
Level 6
Joined
Apr 23, 2011
Messages
182
lordsent, if you didn't change anything in the codes, it's related to the JNPG and the JassHelper and the Wc3 or with one of them. See your JassHelper "about" information and be sure that the version is JASSHelper 0.A.2.B, and that your JassHelper is v1.5e.

These codes work, else they wouldn't be approved. Have you enabled "UMSWE"? Try disabling it.

how the hell... i am going to change the codes. I didnt touch anything inside. And yes I have disable Unswe.

In version 1.5 e and version 2.0 I get the exact same code lines mistake.

my game is fine. My editor is fine. Maybe this helps :::

when i try : syntax check is says : pjass not found, make sure its in the same directory of Tesh.dll and try again.


But i dont know how can that code have syntax problems because i tested my self and works fine... And when i hit save it runs the syntax. Wtf is this.

Is just this Hastable jass thing.... cant undertand why...
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
Happened to me once. I just deleted everything and reinstalled the updated whole thing and worked. Also try to shorten the Newgen and Map and Warcraft directory to C:/Warcraft or something like that.

The JassHelper version thing is no the "2.0", but the "0.A.2.B"
 
Level 6
Joined
Apr 23, 2011
Messages
182
Happened to me once. I just deleted everything and reinstalled the updated whole thing and worked. Also try to shorten the Newgen and Map and Warcraft directory to C:/Warcraft or something like that.

The JassHelper version thing is no the "2.0", but the "0.A.2.B"


I did it and now everything is in warcraft III.

And just the same 44, 65 codes lines of errors.

Again Pjass not found make sure its in the same location that Tesh.dll

Cant believe this....
 
Level 6
Joined
Apr 23, 2011
Messages
182
In your NewGen editor disable cohadar's JassHelper (since it uses Pjass) and enable Vexorian's JassHelper.

um.... I understand you are trying to help... but... Already try both like 3 or 4 times.

And thats a lie. Vexorian also uses pjass because it gives me the same problem!!!

Is posible i have a corrupted file in wc3 ? My normal editor doesnt work. But never bother with my maps and GUI stuff.
Played dota and a lot of maps that use vjass and jass but cant save them... Just ironic ... is like they are protected because obviusly to play them i need to download them. ( know that dota is protect just saying about spell maps in hive ).
 
Level 20
Joined
Jul 14, 2011
Messages
3,213
If you downloaded the JNPG I have in my signature (which includes already the last of everything) and followed the install and configuration instructions, reinstalled Wc3 in a Shortest directory (C: Wc3), it should work, since it's exactly what I have, and i just tried your codes and works perfectly. Not a single error.

Here's my JNPG Folder as a RAR in the pastebin: http://www.hiveworkshop.com/forums/pastebin_data/dl22rq/_files/jassnewgenpack5e.rar
 
Level 6
Joined
Apr 23, 2011
Messages
182
If you downloaded the JNPG I have in my signature (which includes already the last of everything) and followed the install and configuration instructions, reinstalled Wc3 in a Shortest directory (C: Wc3), it should work, since it's exactly what I have, and i just tried your codes and works perfectly. Not a single error.

Here's my JNPG Folder as a RAR in the pastebin: http://www.hiveworkshop.com/forums/pastebin_data/dl22rq/_files/jassnewgenpack5e.rar


Finaly it work.... THANKS.
 
Status
Not open for further replies.
Top